From e0dba75b8181b5b1625344ee77f05642f7a8c1b4 Mon Sep 17 00:00:00 2001 From: Andrew Rumble Date: Mon, 14 Oct 2024 11:41:11 +0100 Subject: [PATCH] Convert top level acceptance tests to ES module GitOrigin-RevId: ab45010ec557d62576c470d2e024549e67261c66 --- .../history-v1/test/acceptance/src/Init.mjs | 4 +-- ...ricTests.js => ActiveUsersMetricTests.mjs} | 16 +++++++----- ...ailTests.js => AddSecondaryEmailTests.mjs} | 14 +++++----- ...AdminEmailTests.js => AdminEmailTests.mjs} | 8 +++--- ...yLoginTests.js => AdminOnlyLoginTests.mjs} | 8 +++--- ...ts.js => AdminPrivilegeAvailableTests.mjs} | 12 ++++----- ...cationTests.js => AuthenticationTests.mjs} | 12 ++++++--- ...izationTests.js => AuthorizationTests.mjs} | 15 +++++------ ...Tests.js => BackFillDeletedFilesTests.mjs} | 14 +++++----- ...=> BackFillDocNameForDeletedDocsTests.mjs} | 14 +++++----- ...DocRevTests.js => BackFillDocRevTests.mjs} | 10 +++---- ...Tests.js => BackFillDummyDocMetaTests.mjs} | 12 ++++----- ...dUpdateTests.js => BatchedUpdateTests.mjs} | 6 ++--- ...taProgramTests.js => BetaProgramTests.mjs} | 4 +-- ...ErrorsTest.js => BodyParserErrorsTest.mjs} | 4 +-- ...igrationTests.js => CDNMigrationTests.mjs} | 12 +++++---- .../src/{CaptchaTests.js => CaptchaTests.mjs} | 12 +++++---- .../{CloseSiteTests.js => CloseSiteTests.mjs} | 5 ++-- ...js => CollectPayPalPastDueInvoiceTest.mjs} | 21 +++++++-------- ...hivedState.js => ConvertArchivedState.mjs} | 11 +++++--- ...MetricsTests.js => CookieMetricsTests.mjs} | 19 ++++++++------ ...=> DeleteOrphanedDocsOnlineCheckTests.mjs} | 12 ++++----- .../{DeletionTests.js => DeletionTests.mjs} | 24 ++++++++--------- .../{DocUpdateTests.js => DocUpdateTests.mjs} | 12 +++++---- ...Tests.js => EditorHttpControllerTests.mjs} | 4 +-- ...ApiTests.js => HaveIBeenPwnedApiTests.mjs} | 22 +++++++++------- ...ests.js => HealthCheckControllerTests.mjs} | 8 +++--- ...ests.js => HttpPermissionsPolicyTests.mjs} | 6 ++--- services/web/test/acceptance/src/Init.mjs | 16 ++++++------ .../src/{LearnTest.js => LearnTest.mjs} | 8 +++--- ...nkedFilesTests.js => LinkedFilesTests.mjs} | 19 +++++++------- .../src/{ModelTests.js => ModelTests.mjs} | 7 +++-- .../src/{MongoHelper.js => MongoHelper.mjs} | 23 +++++++++------- ...rdResetTests.js => PasswordResetTests.mjs} | 6 ++--- ...UpdateTests.js => PasswordUpdateTests.mjs} | 6 ++--- ...eckTests.js => PrimaryEmailCheckTests.mjs} | 14 +++++----- ...ojectCRUDTests.js => ProjectCRUDTests.mjs} | 18 ++++++++----- ...Tests.js => ProjectDuplicateNameTests.mjs} | 22 +++++++++------- ...turesTests.js => ProjectFeaturesTests.mjs} | 11 ++++---- ...tInviteTests.js => ProjectInviteTests.mjs} | 18 ++++++------- ...s.js => ProjectOwnershipTransferTests.mjs} | 6 +++-- ...t.js => ProjectStructureMongoLockTest.mjs} | 14 +++++----- ...tureTests.js => ProjectStructureTests.mjs} | 23 +++++++++------- ...rectUrlsTests.js => RedirectUrlsTests.mjs} | 5 ++-- ...> RegenerateDuplicateReferralIdsTests.mjs} | 12 ++++----- ...strationTests.js => RegistrationTests.mjs} | 15 ++++++----- ...eDeletedUsersFromTokenAccessRefsTests.mjs} | 10 +++---- ...adersTests.js => SecurityHeadersTests.mjs} | 11 ++++---- ...rverCrashTests.js => ServerCrashTests.mjs} | 16 +++++++----- .../src/{SessionTests.js => SessionTests.mjs} | 26 +++++++++---------- .../{SettingsTests.js => SettingsTests.mjs} | 9 ++++--- .../src/{SharingTests.js => SharingTests.mjs} | 6 +++-- .../src/{TagsTests.js => TagsTests.mjs} | 13 +++++----- ...kenAccessTests.js => TokenAccessTests.mjs} | 18 ++++++------- ...TpdsUpdateTests.js => TpdsUpdateTests.mjs} | 8 +++--- ...erTests.js => UnsupportedBrowserTests.mjs} | 4 +-- ...UserHelperTests.js => UserHelperTests.mjs} | 8 +++--- ...s => UserMembershipAuthorizationTests.mjs} | 12 ++++----- ...confirmTests.js => UserReconfirmTests.mjs} | 7 ++--- ...ubscription.js => DeletedSubscription.mjs} | 14 +++++----- .../test/acceptance/src/helpers/InitApp.mjs | 8 +++--- .../{MongoHelper.js => MongoHelper.mjs} | 10 +++---- .../{RedisHelper.js => RedisHelper.mjs} | 4 +-- .../{injectRoute.js => injectRoute.mjs} | 4 +-- .../src/helpers/{redis.js => redis.mjs} | 10 +++---- .../src/helpers/{settings.js => settings.mjs} | 4 +-- ...ckAnalyticsApi.js => MockAnalyticsApi.mjs} | 4 +-- .../mocks/{MockChatApi.js => MockChatApi.mjs} | 4 +-- .../mocks/{MockClsiApi.js => MockClsiApi.mjs} | 8 +++--- ...ckGitBridgeApi.js => MockGitBridgeApi.mjs} | 4 +-- ...nPwnedApi.js => MockHaveIBeenPwnedApi.mjs} | 8 +++--- ...cationsApi.js => MockNotificationsApi.mjs} | 4 +-- ...ckReCaptchaApi.js => MockReCaptchaApi.mjs} | 4 +-- ...MockSpellingApi.js => MockSpellingApi.mjs} | 4 +-- ...eApi.js => MockThirdPartyDataStoreApi.mjs} | 4 +-- 75 files changed, 430 insertions(+), 380 deletions(-) rename services/web/test/acceptance/src/{ActiveUsersMetricTests.js => ActiveUsersMetricTests.mjs} (70%) rename services/web/test/acceptance/src/{AddSecondaryEmailTests.js => AddSecondaryEmailTests.mjs} (94%) rename services/web/test/acceptance/src/{AdminEmailTests.js => AdminEmailTests.mjs} (91%) rename services/web/test/acceptance/src/{AdminOnlyLoginTests.js => AdminOnlyLoginTests.mjs} (92%) rename services/web/test/acceptance/src/{AdminPrivilegeAvailableTests.js => AdminPrivilegeAvailableTests.mjs} (95%) rename services/web/test/acceptance/src/{AuthenticationTests.js => AuthenticationTests.mjs} (95%) rename services/web/test/acceptance/src/{AuthorizationTests.js => AuthorizationTests.mjs} (98%) rename services/web/test/acceptance/src/{BackFillDeletedFilesTests.js => BackFillDeletedFilesTests.mjs} (95%) rename services/web/test/acceptance/src/{BackFillDocNameForDeletedDocsTests.js => BackFillDocNameForDeletedDocsTests.mjs} (92%) rename services/web/test/acceptance/src/{BackFillDocRevTests.js => BackFillDocRevTests.mjs} (88%) rename services/web/test/acceptance/src/{BackFillDummyDocMetaTests.js => BackFillDummyDocMetaTests.mjs} (96%) rename services/web/test/acceptance/src/{BatchedUpdateTests.js => BatchedUpdateTests.mjs} (86%) rename services/web/test/acceptance/src/{BetaProgramTests.js => BetaProgramTests.mjs} (92%) rename services/web/test/acceptance/src/{BodyParserErrorsTest.js => BodyParserErrorsTest.mjs} (95%) rename services/web/test/acceptance/src/{CDNMigrationTests.js => CDNMigrationTests.mjs} (93%) rename services/web/test/acceptance/src/{CaptchaTests.js => CaptchaTests.mjs} (96%) rename services/web/test/acceptance/src/{CloseSiteTests.js => CloseSiteTests.mjs} (95%) rename services/web/test/acceptance/src/{CollectPayPalPastDueInvoiceTest.js => CollectPayPalPastDueInvoiceTest.mjs} (95%) rename services/web/test/acceptance/src/{ConvertArchivedState.js => ConvertArchivedState.mjs} (96%) rename services/web/test/acceptance/src/{CookieMetricsTests.js => CookieMetricsTests.mjs} (95%) rename services/web/test/acceptance/src/{DeleteOrphanedDocsOnlineCheckTests.js => DeleteOrphanedDocsOnlineCheckTests.mjs} (97%) rename services/web/test/acceptance/src/{DeletionTests.js => DeletionTests.mjs} (95%) rename services/web/test/acceptance/src/{DocUpdateTests.js => DocUpdateTests.mjs} (94%) rename services/web/test/acceptance/src/{EditorHttpControllerTests.js => EditorHttpControllerTests.mjs} (95%) rename services/web/test/acceptance/src/{HaveIBeenPwnedApiTests.js => HaveIBeenPwnedApiTests.mjs} (93%) rename services/web/test/acceptance/src/{HealthCheckControllerTests.js => HealthCheckControllerTests.mjs} (95%) rename services/web/test/acceptance/src/{HttpPermissionsPolicyTests.js => HttpPermissionsPolicyTests.mjs} (92%) rename services/web/test/acceptance/src/{LearnTest.js => LearnTest.mjs} (91%) rename services/web/test/acceptance/src/{LinkedFilesTests.js => LinkedFilesTests.mjs} (98%) rename services/web/test/acceptance/src/{ModelTests.js => ModelTests.mjs} (93%) rename services/web/test/acceptance/src/{MongoHelper.js => MongoHelper.mjs} (93%) rename services/web/test/acceptance/src/{PasswordResetTests.js => PasswordResetTests.mjs} (99%) rename services/web/test/acceptance/src/{PasswordUpdateTests.js => PasswordUpdateTests.mjs} (97%) rename services/web/test/acceptance/src/{PrimaryEmailCheckTests.js => PrimaryEmailCheckTests.mjs} (97%) rename services/web/test/acceptance/src/{ProjectCRUDTests.js => ProjectCRUDTests.mjs} (93%) rename services/web/test/acceptance/src/{ProjectDuplicateNameTests.js => ProjectDuplicateNameTests.mjs} (97%) rename services/web/test/acceptance/src/{ProjectFeaturesTests.js => ProjectFeaturesTests.mjs} (92%) rename services/web/test/acceptance/src/{ProjectInviteTests.js => ProjectInviteTests.mjs} (97%) rename services/web/test/acceptance/src/{ProjectOwnershipTransferTests.js => ProjectOwnershipTransferTests.mjs} (97%) rename services/web/test/acceptance/src/{ProjectStructureMongoLockTest.js => ProjectStructureMongoLockTest.mjs} (91%) rename services/web/test/acceptance/src/{ProjectStructureTests.js => ProjectStructureTests.mjs} (92%) rename services/web/test/acceptance/src/{RedirectUrlsTests.js => RedirectUrlsTests.mjs} (94%) rename services/web/test/acceptance/src/{RegenerateDuplicateReferralIdsTests.js => RegenerateDuplicateReferralIdsTests.mjs} (93%) rename services/web/test/acceptance/src/{RegistrationTests.js => RegistrationTests.mjs} (97%) rename services/web/test/acceptance/src/{RemoveDeletedUsersFromTokenAccessRefsTests.js => RemoveDeletedUsersFromTokenAccessRefsTests.mjs} (96%) rename services/web/test/acceptance/src/{SecurityHeadersTests.js => SecurityHeadersTests.mjs} (95%) rename services/web/test/acceptance/src/{ServerCrashTests.js => ServerCrashTests.mjs} (75%) rename services/web/test/acceptance/src/{SessionTests.js => SessionTests.mjs} (96%) rename services/web/test/acceptance/src/{SettingsTests.js => SettingsTests.mjs} (90%) rename services/web/test/acceptance/src/{SharingTests.js => SharingTests.mjs} (96%) rename services/web/test/acceptance/src/{TagsTests.js => TagsTests.mjs} (98%) rename services/web/test/acceptance/src/{TokenAccessTests.js => TokenAccessTests.mjs} (99%) rename services/web/test/acceptance/src/{TpdsUpdateTests.js => TpdsUpdateTests.mjs} (96%) rename services/web/test/acceptance/src/{UnsupportedBrowserTests.js => UnsupportedBrowserTests.mjs} (98%) rename services/web/test/acceptance/src/{UserHelperTests.js => UserHelperTests.mjs} (96%) rename services/web/test/acceptance/src/{UserMembershipAuthorizationTests.js => UserMembershipAuthorizationTests.mjs} (94%) rename services/web/test/acceptance/src/{UserReconfirmTests.js => UserReconfirmTests.mjs} (94%) rename services/web/test/acceptance/src/helpers/{DeletedSubscription.js => DeletedSubscription.mjs} (70%) rename services/web/test/acceptance/src/helpers/{MongoHelper.js => MongoHelper.mjs} (83%) rename services/web/test/acceptance/src/helpers/{RedisHelper.js => RedisHelper.mjs} (61%) rename services/web/test/acceptance/src/helpers/{injectRoute.js => injectRoute.mjs} (91%) rename services/web/test/acceptance/src/helpers/{redis.js => redis.mjs} (86%) rename services/web/test/acceptance/src/helpers/{settings.js => settings.mjs} (77%) rename services/web/test/acceptance/src/mocks/{MockAnalyticsApi.js => MockAnalyticsApi.mjs} (88%) rename services/web/test/acceptance/src/mocks/{MockChatApi.js => MockChatApi.mjs} (93%) rename services/web/test/acceptance/src/mocks/{MockClsiApi.js => MockClsiApi.mjs} (90%) rename services/web/test/acceptance/src/mocks/{MockGitBridgeApi.js => MockGitBridgeApi.mjs} (80%) rename services/web/test/acceptance/src/mocks/{MockHaveIBeenPwnedApi.js => MockHaveIBeenPwnedApi.mjs} (86%) rename services/web/test/acceptance/src/mocks/{MockNotificationsApi.js => MockNotificationsApi.mjs} (86%) rename services/web/test/acceptance/src/mocks/{MockReCaptchaApi.js => MockReCaptchaApi.mjs} (81%) rename services/web/test/acceptance/src/mocks/{MockSpellingApi.js => MockSpellingApi.mjs} (93%) rename services/web/test/acceptance/src/mocks/{MockThirdPartyDataStoreApi.js => MockThirdPartyDataStoreApi.mjs} (85%) diff --git a/services/web/modules/history-v1/test/acceptance/src/Init.mjs b/services/web/modules/history-v1/test/acceptance/src/Init.mjs index b79a9f6a3c..2a4d0d05f6 100644 --- a/services/web/modules/history-v1/test/acceptance/src/Init.mjs +++ b/services/web/modules/history-v1/test/acceptance/src/Init.mjs @@ -2,9 +2,9 @@ import '../../../../../test/acceptance/src/helpers/InitApp.mjs' import MockDocstoreApi from '../../../../../test/acceptance/src/mocks/MockDocstoreApi.js' import MockDocUpdaterApi from '../../../../../test/acceptance/src/mocks/MockDocUpdaterApi.js' import MockFilestoreApi from '../../../../../test/acceptance/src/mocks/MockFilestoreApi.js' -import MockNotificationsApi from '../../../../../test/acceptance/src/mocks/MockNotificationsApi.js' +import MockNotificationsApi from '../../../../../test/acceptance/src/mocks/MockNotificationsApi.mjs' import MockProjectHistoryApi from '../../../../../test/acceptance/src/mocks/MockProjectHistoryApi.js' -import MockSpellingApi from '../../../../../test/acceptance/src/mocks/MockSpellingApi.js' +import MockSpellingApi from '../../../../../test/acceptance/src/mocks/MockSpellingApi.mjs' import MockV1Api from '../../../../../test/acceptance/src/mocks/MockV1Api.js' import MockV1HistoryApi from '../../../../../test/acceptance/src/mocks/MockV1HistoryApi.js' diff --git a/services/web/test/acceptance/src/ActiveUsersMetricTests.js b/services/web/test/acceptance/src/ActiveUsersMetricTests.mjs similarity index 70% rename from services/web/test/acceptance/src/ActiveUsersMetricTests.js rename to services/web/test/acceptance/src/ActiveUsersMetricTests.mjs index b06a132329..99148904ff 100644 --- a/services/web/test/acceptance/src/ActiveUsersMetricTests.js +++ b/services/web/test/acceptance/src/ActiveUsersMetricTests.mjs @@ -1,12 +1,14 @@ -const { promisify } = require('util') -const { expect } = require('chai') -const Features = require('../../../app/src/infrastructure/Features') -const { - promises: { getMetric }, -} = require('./helpers/metrics') -const User = require('./helpers/User').promises +import { promisify } from 'util' +import { expect } from 'chai' +import Features from '../../../app/src/infrastructure/Features.js' +import MetricsHelper from './helpers/metrics.js' +import UserHelper from './helpers/User.js' const sleep = promisify(setTimeout) +const User = UserHelper.promises + +const getMetric = MetricsHelper.promises.getMetric + async function getActiveUsersMetric() { return getMetric(line => line.startsWith('num_active_users')) } diff --git a/services/web/test/acceptance/src/AddSecondaryEmailTests.js b/services/web/test/acceptance/src/AddSecondaryEmailTests.mjs similarity index 94% rename from services/web/test/acceptance/src/AddSecondaryEmailTests.js rename to services/web/test/acceptance/src/AddSecondaryEmailTests.mjs index 28fb69e20a..858cd43e4c 100644 --- a/services/web/test/acceptance/src/AddSecondaryEmailTests.js +++ b/services/web/test/acceptance/src/AddSecondaryEmailTests.mjs @@ -1,9 +1,11 @@ -const { expect } = require('chai') -const User = require('./helpers/User').promises -const logger = require('@overleaf/logger') -const sinon = require('sinon') -const { db } = require('../../../app/src/infrastructure/mongodb') -const Features = require('../../../app/src/infrastructure/Features') +import { expect } from 'chai' +import UserHelper from './helpers/User.js' +import logger from '@overleaf/logger' +import sinon from 'sinon' +import { db } from '../../../app/src/infrastructure/mongodb.js' +import Features from '../../../app/src/infrastructure/Features.js' + +const User = UserHelper.promises describe('Add secondary email address confirmation code email', function () { let spy diff --git a/services/web/test/acceptance/src/AdminEmailTests.js b/services/web/test/acceptance/src/AdminEmailTests.mjs similarity index 91% rename from services/web/test/acceptance/src/AdminEmailTests.js rename to services/web/test/acceptance/src/AdminEmailTests.mjs index 5e8a182ced..89e36c75c4 100644 --- a/services/web/test/acceptance/src/AdminEmailTests.js +++ b/services/web/test/acceptance/src/AdminEmailTests.mjs @@ -1,7 +1,7 @@ -const OError = require('@overleaf/o-error') -const { expect } = require('chai') -const async = require('async') -const User = require('./helpers/User') +import OError from '@overleaf/o-error' +import { expect } from 'chai' +import async from 'async' +import User from './helpers/User.js' describe('AdminEmails', function () { beforeEach(function (done) { diff --git a/services/web/test/acceptance/src/AdminOnlyLoginTests.js b/services/web/test/acceptance/src/AdminOnlyLoginTests.mjs similarity index 92% rename from services/web/test/acceptance/src/AdminOnlyLoginTests.js rename to services/web/test/acceptance/src/AdminOnlyLoginTests.mjs index 1a4558214b..c080b119dd 100644 --- a/services/web/test/acceptance/src/AdminOnlyLoginTests.js +++ b/services/web/test/acceptance/src/AdminOnlyLoginTests.mjs @@ -1,6 +1,8 @@ -const Settings = require('@overleaf/settings') -const { expect } = require('chai') -const User = require('./helpers/User').promises +import Settings from '@overleaf/settings' +import { expect } from 'chai' +import UserHelper from './helpers/User.js' + +const User = UserHelper.promises describe('AdminOnlyLogin', function () { let adminUser, regularUser diff --git a/services/web/test/acceptance/src/AdminPrivilegeAvailableTests.js b/services/web/test/acceptance/src/AdminPrivilegeAvailableTests.mjs similarity index 95% rename from services/web/test/acceptance/src/AdminPrivilegeAvailableTests.js rename to services/web/test/acceptance/src/AdminPrivilegeAvailableTests.mjs index 7c7ce052bb..a48f7248cc 100644 --- a/services/web/test/acceptance/src/AdminPrivilegeAvailableTests.js +++ b/services/web/test/acceptance/src/AdminPrivilegeAvailableTests.mjs @@ -1,9 +1,9 @@ -const Settings = require('@overleaf/settings') -const { expect } = require('chai') -const User = require('./helpers/User').promises -const { - getSafeAdminDomainRedirect, -} = require('../../../app/src/Features/Helpers/UrlHelper') +import Settings from '@overleaf/settings' +import { expect } from 'chai' +import UserHelper from './helpers/User.js' +import { getSafeAdminDomainRedirect } from '../../../app/src/Features/Helpers/UrlHelper.js' + +const User = UserHelper.promises describe('AdminPrivilegeAvailable', function () { let adminUser, otherUser diff --git a/services/web/test/acceptance/src/AuthenticationTests.js b/services/web/test/acceptance/src/AuthenticationTests.mjs similarity index 95% rename from services/web/test/acceptance/src/AuthenticationTests.js rename to services/web/test/acceptance/src/AuthenticationTests.mjs index 4015b44fa2..dfa6e9c9cf 100644 --- a/services/web/test/acceptance/src/AuthenticationTests.js +++ b/services/web/test/acceptance/src/AuthenticationTests.mjs @@ -1,7 +1,11 @@ -const { expect } = require('chai') -const { ObjectId } = require('mongodb-legacy') -const Settings = require('@overleaf/settings') -const User = require('./helpers/User').promises +import { expect } from 'chai' +import mongodb from 'mongodb-legacy' +import Settings from '@overleaf/settings' +import UserHelper from './helpers/User.js' + +const ObjectId = mongodb.ObjectId + +const User = UserHelper.promises describe('Authentication', function () { let user diff --git a/services/web/test/acceptance/src/AuthorizationTests.js b/services/web/test/acceptance/src/AuthorizationTests.mjs similarity index 98% rename from services/web/test/acceptance/src/AuthorizationTests.js rename to services/web/test/acceptance/src/AuthorizationTests.mjs index a8a584fd33..da9eb23e67 100644 --- a/services/web/test/acceptance/src/AuthorizationTests.js +++ b/services/web/test/acceptance/src/AuthorizationTests.mjs @@ -1,11 +1,10 @@ -const { expect } = require('chai') -const async = require('async') -const User = require('./helpers/User') -const request = require('./helpers/request') -const settings = require('@overleaf/settings') -const Features = require('../../../app/src/infrastructure/Features') - -const expectErrorResponse = require('./helpers/expectErrorResponse') +import { expect } from 'chai' +import async from 'async' +import User from './helpers/User.js' +import request from './helpers/request.js' +import settings from '@overleaf/settings' +import Features from '../../../app/src/infrastructure/Features.js' +import expectErrorResponse from './helpers/expectErrorResponse.js' function tryReadAccess(user, projectId, test, callback) { async.series( diff --git a/services/web/test/acceptance/src/BackFillDeletedFilesTests.js b/services/web/test/acceptance/src/BackFillDeletedFilesTests.mjs similarity index 95% rename from services/web/test/acceptance/src/BackFillDeletedFilesTests.js rename to services/web/test/acceptance/src/BackFillDeletedFilesTests.mjs index aba9b8ed99..7a65efb9c8 100644 --- a/services/web/test/acceptance/src/BackFillDeletedFilesTests.js +++ b/services/web/test/acceptance/src/BackFillDeletedFilesTests.mjs @@ -1,9 +1,11 @@ -const { exec } = require('child_process') -const { promisify } = require('util') -const { expect } = require('chai') -const logger = require('@overleaf/logger') -const { db, ObjectId } = require('../../../app/src/infrastructure/mongodb') -const User = require('./helpers/User').promises +import { exec } from 'child_process' +import { promisify } from 'util' +import { expect } from 'chai' +import logger from '@overleaf/logger' +import { db, ObjectId } from '../../../app/src/infrastructure/mongodb.js' +import UserHelper from './helpers/User.js' + +const User = UserHelper.promises async function getDeletedFiles(projectId) { return (await db.projects.findOne({ _id: projectId })).deletedFiles diff --git a/services/web/test/acceptance/src/BackFillDocNameForDeletedDocsTests.js b/services/web/test/acceptance/src/BackFillDocNameForDeletedDocsTests.mjs similarity index 92% rename from services/web/test/acceptance/src/BackFillDocNameForDeletedDocsTests.js rename to services/web/test/acceptance/src/BackFillDocNameForDeletedDocsTests.mjs index 99e8e63a60..46ba520727 100644 --- a/services/web/test/acceptance/src/BackFillDocNameForDeletedDocsTests.js +++ b/services/web/test/acceptance/src/BackFillDocNameForDeletedDocsTests.mjs @@ -1,9 +1,11 @@ -const { exec } = require('child_process') -const { promisify } = require('util') -const { expect } = require('chai') -const logger = require('@overleaf/logger') -const { db, ObjectId } = require('../../../app/src/infrastructure/mongodb') -const User = require('./helpers/User').promises +import { exec } from 'child_process' +import { promisify } from 'util' +import { expect } from 'chai' +import logger from '@overleaf/logger' +import { db, ObjectId } from '../../../app/src/infrastructure/mongodb.js' +import UserHelper from './helpers/User.js' + +const User = UserHelper.promises async function getDeletedDocs(projectId) { return (await db.projects.findOne({ _id: projectId })).deletedDocs diff --git a/services/web/test/acceptance/src/BackFillDocRevTests.js b/services/web/test/acceptance/src/BackFillDocRevTests.mjs similarity index 88% rename from services/web/test/acceptance/src/BackFillDocRevTests.js rename to services/web/test/acceptance/src/BackFillDocRevTests.mjs index a551f21fa3..684aa57d60 100644 --- a/services/web/test/acceptance/src/BackFillDocRevTests.js +++ b/services/web/test/acceptance/src/BackFillDocRevTests.mjs @@ -1,8 +1,8 @@ -const { db, ObjectId } = require('../../../app/src/infrastructure/mongodb') -const { promisify } = require('util') -const { exec } = require('child_process') -const logger = require('@overleaf/logger/logging-manager') -const { expect } = require('chai') +import { db, ObjectId } from '../../../app/src/infrastructure/mongodb.js' +import { promisify } from 'util' +import { exec } from 'child_process' +import logger from '@overleaf/logger' +import { expect } from 'chai' describe('BackFillDocRevTests', function () { const docId1 = new ObjectId() diff --git a/services/web/test/acceptance/src/BackFillDummyDocMetaTests.js b/services/web/test/acceptance/src/BackFillDummyDocMetaTests.mjs similarity index 96% rename from services/web/test/acceptance/src/BackFillDummyDocMetaTests.js rename to services/web/test/acceptance/src/BackFillDummyDocMetaTests.mjs index 1018c47b16..1d0c597d2b 100644 --- a/services/web/test/acceptance/src/BackFillDummyDocMetaTests.js +++ b/services/web/test/acceptance/src/BackFillDummyDocMetaTests.mjs @@ -1,9 +1,9 @@ -const { exec } = require('child_process') -const { promisify } = require('util') -const { expect } = require('chai') -const logger = require('@overleaf/logger') -const { filterOutput } = require('./helpers/settings') -const { db, ObjectId } = require('../../../app/src/infrastructure/mongodb') +import { exec } from 'child_process' +import { promisify } from 'util' +import { expect } from 'chai' +import logger from '@overleaf/logger' +import { filterOutput } from './helpers/settings.mjs' +import { db, ObjectId } from '../../../app/src/infrastructure/mongodb.js' const DUMMY_NAME = 'unknown.tex' const DUMMY_TIME = new Date('2021-04-12T00:00:00.000Z') diff --git a/services/web/test/acceptance/src/BatchedUpdateTests.js b/services/web/test/acceptance/src/BatchedUpdateTests.mjs similarity index 86% rename from services/web/test/acceptance/src/BatchedUpdateTests.js rename to services/web/test/acceptance/src/BatchedUpdateTests.mjs index 504802ca57..77f6548901 100644 --- a/services/web/test/acceptance/src/BatchedUpdateTests.js +++ b/services/web/test/acceptance/src/BatchedUpdateTests.mjs @@ -1,6 +1,6 @@ -const { spawnSync } = require('child_process') -const { expect } = require('chai') -const { db, ObjectId } = require('../../../app/src/infrastructure/mongodb') +import { spawnSync } from 'child_process' +import { expect } from 'chai' +import { db, ObjectId } from '../../../app/src/infrastructure/mongodb.js' describe('BatchedUpdateTests', function () { it('can handle non linear insert order', async function () { diff --git a/services/web/test/acceptance/src/BetaProgramTests.js b/services/web/test/acceptance/src/BetaProgramTests.mjs similarity index 92% rename from services/web/test/acceptance/src/BetaProgramTests.js rename to services/web/test/acceptance/src/BetaProgramTests.mjs index b1122bf628..b780ce976f 100644 --- a/services/web/test/acceptance/src/BetaProgramTests.js +++ b/services/web/test/acceptance/src/BetaProgramTests.mjs @@ -1,5 +1,5 @@ -const { expect } = require('chai') -const UserHelper = require('../src/helpers/UserHelper') +import { expect } from 'chai' +import UserHelper from '../src/helpers/UserHelper.js' describe('BetaProgram', function () { let email, userHelper diff --git a/services/web/test/acceptance/src/BodyParserErrorsTest.js b/services/web/test/acceptance/src/BodyParserErrorsTest.mjs similarity index 95% rename from services/web/test/acceptance/src/BodyParserErrorsTest.js rename to services/web/test/acceptance/src/BodyParserErrorsTest.mjs index 5601c200af..6134a894b3 100644 --- a/services/web/test/acceptance/src/BodyParserErrorsTest.js +++ b/services/web/test/acceptance/src/BodyParserErrorsTest.mjs @@ -1,5 +1,5 @@ -const Settings = require('@overleaf/settings') -const request = require('./helpers/request') +import Settings from '@overleaf/settings' +import request from './helpers/request.js' // create a string that is longer than the max allowed (as defined in Server.js) const wayTooLongString = 'a'.repeat(Settings.max_json_request_size + 1) diff --git a/services/web/test/acceptance/src/CDNMigrationTests.js b/services/web/test/acceptance/src/CDNMigrationTests.mjs similarity index 93% rename from services/web/test/acceptance/src/CDNMigrationTests.js rename to services/web/test/acceptance/src/CDNMigrationTests.mjs index 3d44412ce6..60e3ecdc1e 100644 --- a/services/web/test/acceptance/src/CDNMigrationTests.js +++ b/services/web/test/acceptance/src/CDNMigrationTests.mjs @@ -1,8 +1,10 @@ -const { expect } = require('chai') -const User = require('./helpers/User').promises -const { - promises: { getMetric }, -} = require('./helpers/metrics') +import { expect } from 'chai' +import UserHelper from './helpers/User.js' +import MetricsHelper from './helpers/metrics.js' + +const User = UserHelper.promises + +const getMetric = MetricsHelper.promises.getMetric describe('CDNMigration', function () { let anon, user diff --git a/services/web/test/acceptance/src/CaptchaTests.js b/services/web/test/acceptance/src/CaptchaTests.mjs similarity index 96% rename from services/web/test/acceptance/src/CaptchaTests.js rename to services/web/test/acceptance/src/CaptchaTests.mjs index a7282aa9fc..9a647b2a45 100644 --- a/services/web/test/acceptance/src/CaptchaTests.js +++ b/services/web/test/acceptance/src/CaptchaTests.mjs @@ -1,8 +1,10 @@ -const { db } = require('../../../app/src/infrastructure/mongodb') -const { expect } = require('chai') -const Settings = require('@overleaf/settings') -const User = require('./helpers/User').promises -const MockHaveIBeenPwnedApiClass = require('./mocks/MockHaveIBeenPwnedApi') +import { db } from '../../../app/src/infrastructure/mongodb.js' +import { expect } from 'chai' +import Settings from '@overleaf/settings' +import UserHelper from './helpers/User.js' +import MockHaveIBeenPwnedApiClass from './mocks/MockHaveIBeenPwnedApi.mjs' + +const User = UserHelper.promises let MockHaveIBeenPwnedApi before(function () { diff --git a/services/web/test/acceptance/src/CloseSiteTests.js b/services/web/test/acceptance/src/CloseSiteTests.mjs similarity index 95% rename from services/web/test/acceptance/src/CloseSiteTests.js rename to services/web/test/acceptance/src/CloseSiteTests.mjs index 4f2add8052..62a6461441 100644 --- a/services/web/test/acceptance/src/CloseSiteTests.js +++ b/services/web/test/acceptance/src/CloseSiteTests.mjs @@ -10,8 +10,9 @@ * DS102: Remove unnecessary code created because of implicit returns * Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md */ -const Settings = require('@overleaf/settings') -const request = require('./helpers/request') +import Settings from '@overleaf/settings' + +import request from './helpers/request.js' describe('siteIsOpen', function () { describe('when siteIsOpen is default (true)', function () { diff --git a/services/web/test/acceptance/src/CollectPayPalPastDueInvoiceTest.js b/services/web/test/acceptance/src/CollectPayPalPastDueInvoiceTest.mjs similarity index 95% rename from services/web/test/acceptance/src/CollectPayPalPastDueInvoiceTest.js rename to services/web/test/acceptance/src/CollectPayPalPastDueInvoiceTest.mjs index 14b9f41352..a6256ae860 100644 --- a/services/web/test/acceptance/src/CollectPayPalPastDueInvoiceTest.js +++ b/services/web/test/acceptance/src/CollectPayPalPastDueInvoiceTest.mjs @@ -1,16 +1,13 @@ -const sinon = require('sinon') -const chai = require('chai') -const { expect } = require('chai') +import sinon from 'sinon' +import chai, { expect } from 'chai' +import chaiAsPromised from 'chai-as-promised' +import sinonChai from 'sinon-chai' +import { main } from '../../../scripts/recurly/collect_paypal_past_due_invoice.js' +import RecurlyWrapper from '../../../app/src/Features/Subscription/RecurlyWrapper.js' +import OError from '@overleaf/o-error' -chai.use(require('chai-as-promised')) -chai.use(require('sinon-chai')) - -const { - main, -} = require('../../../scripts/recurly/collect_paypal_past_due_invoice') - -const RecurlyWrapper = require('../../../app/src/Features/Subscription/RecurlyWrapper') -const OError = require('@overleaf/o-error') +chai.use(chaiAsPromised) +chai.use(sinonChai) // from https://recurly.com/developers/api-v2/v2.21/#operation/listInvoices const invoicesXml = invoiceIds => ` diff --git a/services/web/test/acceptance/src/ConvertArchivedState.js b/services/web/test/acceptance/src/ConvertArchivedState.mjs similarity index 96% rename from services/web/test/acceptance/src/ConvertArchivedState.js rename to services/web/test/acceptance/src/ConvertArchivedState.mjs index 23c61913d0..7ea977ddca 100644 --- a/services/web/test/acceptance/src/ConvertArchivedState.js +++ b/services/web/test/acceptance/src/ConvertArchivedState.mjs @@ -1,8 +1,11 @@ -const { expect } = require('chai') -const { exec } = require('child_process') -const { ObjectId } = require('mongodb-legacy') +import { expect } from 'chai' +import { exec } from 'child_process' +import mongodb from 'mongodb-legacy' +import UserHelper from './helpers/User.js' -const User = require('./helpers/User').promises +const User = UserHelper.promises + +const ObjectId = mongodb.ObjectId describe('ConvertArchivedState', function () { let userOne, userTwo, userThree, userFour diff --git a/services/web/test/acceptance/src/CookieMetricsTests.js b/services/web/test/acceptance/src/CookieMetricsTests.mjs similarity index 95% rename from services/web/test/acceptance/src/CookieMetricsTests.js rename to services/web/test/acceptance/src/CookieMetricsTests.mjs index 40e0a1a513..ca1d1ddcbc 100644 --- a/services/web/test/acceptance/src/CookieMetricsTests.js +++ b/services/web/test/acceptance/src/CookieMetricsTests.mjs @@ -1,11 +1,14 @@ -const Settings = require('@overleaf/settings') -const { expect } = require('chai') -const User = require('./helpers/User').promises -const { - promises: { getMetric }, - resetMetrics, -} = require('./helpers/metrics') -const cookieSignature = require('cookie-signature') +import Settings from '@overleaf/settings' +import { expect } from 'chai' +import UserHelper from './helpers/User.js' +import MetricsHelper from './helpers/metrics.js' +import cookieSignature from 'cookie-signature' + +const User = UserHelper.promises + +const getMetric = MetricsHelper.promises.getMetric + +const resetMetrics = MetricsHelper.resetMetrics async function getSessionCookieMetric(status) { return getMetric( diff --git a/services/web/test/acceptance/src/DeleteOrphanedDocsOnlineCheckTests.js b/services/web/test/acceptance/src/DeleteOrphanedDocsOnlineCheckTests.mjs similarity index 97% rename from services/web/test/acceptance/src/DeleteOrphanedDocsOnlineCheckTests.js rename to services/web/test/acceptance/src/DeleteOrphanedDocsOnlineCheckTests.mjs index 05db8e066e..729524af64 100644 --- a/services/web/test/acceptance/src/DeleteOrphanedDocsOnlineCheckTests.js +++ b/services/web/test/acceptance/src/DeleteOrphanedDocsOnlineCheckTests.mjs @@ -1,9 +1,9 @@ -const { exec } = require('child_process') -const { promisify } = require('util') -const { expect } = require('chai') -const logger = require('@overleaf/logger') -const { filterOutput } = require('./helpers/settings') -const { db, ObjectId } = require('../../../app/src/infrastructure/mongodb') +import { exec } from 'child_process' +import { promisify } from 'util' +import { expect } from 'chai' +import logger from '@overleaf/logger' +import { filterOutput } from './helpers/settings.mjs' +import { db, ObjectId } from '../../../app/src/infrastructure/mongodb.js' const ONE_DAY_IN_S = 60 * 60 * 24 const BATCH_SIZE = 3 diff --git a/services/web/test/acceptance/src/DeletionTests.js b/services/web/test/acceptance/src/DeletionTests.mjs similarity index 95% rename from services/web/test/acceptance/src/DeletionTests.js rename to services/web/test/acceptance/src/DeletionTests.mjs index 5ba61467a9..95591b0f1c 100644 --- a/services/web/test/acceptance/src/DeletionTests.js +++ b/services/web/test/acceptance/src/DeletionTests.mjs @@ -1,15 +1,15 @@ -const User = require('./helpers/User') -const Subscription = require('./helpers/Subscription') -const request = require('./helpers/request') -const async = require('async') -const { expect } = require('chai') -const settings = require('@overleaf/settings') -const { db, ObjectId } = require('../../../app/src/infrastructure/mongodb') -const Features = require('../../../app/src/infrastructure/Features') -const MockDocstoreApiClass = require('./mocks/MockDocstoreApi') -const MockFilestoreApiClass = require('./mocks/MockFilestoreApi') -const MockChatApiClass = require('./mocks/MockChatApi') -const MockGitBridgeApiClass = require('./mocks/MockGitBridgeApi') +import User from './helpers/User.js' +import Subscription from './helpers/Subscription.js' +import request from './helpers/request.js' +import async from 'async' +import { expect } from 'chai' +import settings from '@overleaf/settings' +import { db, ObjectId } from '../../../app/src/infrastructure/mongodb.js' +import Features from '../../../app/src/infrastructure/Features.js' +import MockDocstoreApiClass from './mocks/MockDocstoreApi.js' +import MockFilestoreApiClass from './mocks/MockFilestoreApi.js' +import MockChatApiClass from './mocks/MockChatApi.mjs' +import MockGitBridgeApiClass from './mocks/MockGitBridgeApi.mjs' let MockDocstoreApi, MockFilestoreApi, MockChatApi, MockGitBridgeApi diff --git a/services/web/test/acceptance/src/DocUpdateTests.js b/services/web/test/acceptance/src/DocUpdateTests.mjs similarity index 94% rename from services/web/test/acceptance/src/DocUpdateTests.js rename to services/web/test/acceptance/src/DocUpdateTests.mjs index 62a6e48088..b6b161cf62 100644 --- a/services/web/test/acceptance/src/DocUpdateTests.js +++ b/services/web/test/acceptance/src/DocUpdateTests.mjs @@ -1,8 +1,10 @@ -const User = require('./helpers/User') -const request = require('./helpers/request') -const { expect } = require('chai') -const settings = require('@overleaf/settings') -const { ObjectId } = require('mongodb-legacy') +import User from './helpers/User.js' +import request from './helpers/request.js' +import { expect } from 'chai' +import settings from '@overleaf/settings' +import mongodb from 'mongodb-legacy' + +const ObjectId = mongodb.ObjectId describe('DocUpdate', function () { beforeEach(function (done) { diff --git a/services/web/test/acceptance/src/EditorHttpControllerTests.js b/services/web/test/acceptance/src/EditorHttpControllerTests.mjs similarity index 95% rename from services/web/test/acceptance/src/EditorHttpControllerTests.js rename to services/web/test/acceptance/src/EditorHttpControllerTests.mjs index e2b8424215..651b644643 100644 --- a/services/web/test/acceptance/src/EditorHttpControllerTests.js +++ b/services/web/test/acceptance/src/EditorHttpControllerTests.mjs @@ -1,5 +1,5 @@ -const User = require('./helpers/User') -const { expect } = require('chai') +import User from './helpers/User.js' +import { expect } from 'chai' describe('EditorHttpController', function () { beforeEach('login', function (done) { diff --git a/services/web/test/acceptance/src/HaveIBeenPwnedApiTests.js b/services/web/test/acceptance/src/HaveIBeenPwnedApiTests.mjs similarity index 93% rename from services/web/test/acceptance/src/HaveIBeenPwnedApiTests.js rename to services/web/test/acceptance/src/HaveIBeenPwnedApiTests.mjs index 54113712f9..3db3ed6681 100644 --- a/services/web/test/acceptance/src/HaveIBeenPwnedApiTests.js +++ b/services/web/test/acceptance/src/HaveIBeenPwnedApiTests.mjs @@ -1,9 +1,13 @@ -const Settings = require('@overleaf/settings') -const { expect } = require('chai') -const User = require('./helpers/User').promises -const MockHaveIBeenPwnedApiClass = require('./mocks/MockHaveIBeenPwnedApi') -const { db } = require('../../../app/src/infrastructure/mongodb') -const { getMetric } = require('./helpers/metrics').promises +import Settings from '@overleaf/settings' +import { expect } from 'chai' +import UserHelper from './helpers/User.js' +import MockHaveIBeenPwnedApiClass from './mocks/MockHaveIBeenPwnedApi.mjs' +import { db } from '../../../app/src/infrastructure/mongodb.js' +import MetricsHelper from './helpers/metrics.js' + +const User = UserHelper.promises + +const getMetric = MetricsHelper.promises.getMetric let MockHaveIBeenPwnedApi before(function () { @@ -11,19 +15,19 @@ before(function () { }) async function getMetricReUsed() { - return getMetric( + return await getMetric( line => line.includes('password_re_use') && line.includes('re-used') ) } async function getMetricUnique() { - return getMetric( + return await getMetric( line => line.includes('password_re_use') && line.includes('unique') ) } async function getMetricFailure() { - return getMetric( + return await getMetric( line => line.includes('password_re_use') && line.includes('failure') ) } diff --git a/services/web/test/acceptance/src/HealthCheckControllerTests.js b/services/web/test/acceptance/src/HealthCheckControllerTests.mjs similarity index 95% rename from services/web/test/acceptance/src/HealthCheckControllerTests.js rename to services/web/test/acceptance/src/HealthCheckControllerTests.mjs index 4275d0068a..fd677caa0d 100644 --- a/services/web/test/acceptance/src/HealthCheckControllerTests.js +++ b/services/web/test/acceptance/src/HealthCheckControllerTests.mjs @@ -1,6 +1,8 @@ -const { expect } = require('chai') -const Settings = require('@overleaf/settings') -const User = require('./helpers/User').promises +import { expect } from 'chai' +import Settings from '@overleaf/settings' +import UserHelper from './helpers/User.js' + +const User = UserHelper.promises describe('HealthCheckController', function () { describe('SmokeTests', function () { diff --git a/services/web/test/acceptance/src/HttpPermissionsPolicyTests.js b/services/web/test/acceptance/src/HttpPermissionsPolicyTests.mjs similarity index 92% rename from services/web/test/acceptance/src/HttpPermissionsPolicyTests.js rename to services/web/test/acceptance/src/HttpPermissionsPolicyTests.mjs index 7d8f22bf92..77c628e2ea 100644 --- a/services/web/test/acceptance/src/HttpPermissionsPolicyTests.js +++ b/services/web/test/acceptance/src/HttpPermissionsPolicyTests.mjs @@ -1,6 +1,6 @@ -const { expect } = require('chai') -const fetch = require('node-fetch') -const Settings = require('@overleaf/settings') +import { expect } from 'chai' +import fetch from 'node-fetch' +import Settings from '@overleaf/settings' const BASE_URL = `http://${process.env.HTTP_TEST_HOST || '127.0.0.1'}:23000` diff --git a/services/web/test/acceptance/src/Init.mjs b/services/web/test/acceptance/src/Init.mjs index 6681ed6d2f..65a0c6d990 100644 --- a/services/web/test/acceptance/src/Init.mjs +++ b/services/web/test/acceptance/src/Init.mjs @@ -1,20 +1,20 @@ import './helpers/InitApp.mjs' import Features from '../../../app/src/infrastructure/Features.js' -import MockAnalyticsApi from './mocks/MockAnalyticsApi.js' -import MockChatApi from './mocks/MockChatApi.js' -import MockClsiApi from './mocks/MockClsiApi.js' +import MockAnalyticsApi from './mocks/MockAnalyticsApi.mjs' +import MockChatApi from './mocks/MockChatApi.mjs' +import MockClsiApi from './mocks/MockClsiApi.mjs' import MockDocstoreApi from './mocks/MockDocstoreApi.js' import MockDocUpdaterApi from './mocks/MockDocUpdaterApi.js' import MockFilestoreApi from './mocks/MockFilestoreApi.js' -import MockGitBridgeApi from './mocks/MockGitBridgeApi.js' -import MockNotificationsApi from './mocks/MockNotificationsApi.js' +import MockGitBridgeApi from './mocks/MockGitBridgeApi.mjs' +import MockNotificationsApi from './mocks/MockNotificationsApi.mjs' import MockProjectHistoryApi from './mocks/MockProjectHistoryApi.js' -import MockSpellingApi from './mocks/MockSpellingApi.js' +import MockSpellingApi from './mocks/MockSpellingApi.mjs' import MockV1Api from './mocks/MockV1Api.js' import MockV1HistoryApi from './mocks/MockV1HistoryApi.js' -import MockHaveIBeenPwnedApi from './mocks/MockHaveIBeenPwnedApi.js' -import MockThirdPartyDataStoreApi from './mocks/MockThirdPartyDataStoreApi.js' +import MockHaveIBeenPwnedApi from './mocks/MockHaveIBeenPwnedApi.mjs' +import MockThirdPartyDataStoreApi from './mocks/MockThirdPartyDataStoreApi.mjs' const mockOpts = { debug: ['1', 'true', 'TRUE'].includes(process.env.DEBUG_MOCKS), diff --git a/services/web/test/acceptance/src/LearnTest.js b/services/web/test/acceptance/src/LearnTest.mjs similarity index 91% rename from services/web/test/acceptance/src/LearnTest.js rename to services/web/test/acceptance/src/LearnTest.mjs index 92a920b5af..aca991739b 100644 --- a/services/web/test/acceptance/src/LearnTest.js +++ b/services/web/test/acceptance/src/LearnTest.mjs @@ -1,6 +1,8 @@ -const { expect } = require('chai') -const cheerio = require('cheerio') -const User = require('./helpers/User').promises +import { expect } from 'chai' +import cheerio from 'cheerio' +import UserHelper from './helpers/User.js' + +const User = UserHelper.promises describe('Spelling', function () { let user, projectId diff --git a/services/web/test/acceptance/src/LinkedFilesTests.js b/services/web/test/acceptance/src/LinkedFilesTests.mjs similarity index 98% rename from services/web/test/acceptance/src/LinkedFilesTests.js rename to services/web/test/acceptance/src/LinkedFilesTests.mjs index 8185d66eeb..a66d3b8eaa 100644 --- a/services/web/test/acceptance/src/LinkedFilesTests.js +++ b/services/web/test/acceptance/src/LinkedFilesTests.mjs @@ -1,15 +1,14 @@ -const { expect } = require('chai') -const _ = require('lodash') -const fs = require('fs') -const timekeeper = require('timekeeper') +import { expect } from 'chai' +import _ from 'lodash' +import fs from 'fs' +import timekeeper from 'timekeeper' +import Settings from '@overleaf/settings' +import UserHelper from './helpers/User.js' +import express from 'express' +import { plainTextResponse } from '../../../app/src/infrastructure/Response.js' -const Settings = require('@overleaf/settings') -const User = require('./helpers/User').promises +const User = UserHelper.promises -const express = require('express') -const { - plainTextResponse, -} = require('../../../app/src/infrastructure/Response') const LinkedUrlProxy = express() LinkedUrlProxy.get('/', (req, res, next) => { if (req.query.url === 'http://example.com/foo') { diff --git a/services/web/test/acceptance/src/ModelTests.js b/services/web/test/acceptance/src/ModelTests.mjs similarity index 93% rename from services/web/test/acceptance/src/ModelTests.js rename to services/web/test/acceptance/src/ModelTests.mjs index 0f1e01e6a1..7a58cf0a53 100644 --- a/services/web/test/acceptance/src/ModelTests.js +++ b/services/web/test/acceptance/src/ModelTests.mjs @@ -1,7 +1,6 @@ -const { expect } = require('chai') - -const { User } = require('../../../app/src/models/User') -const { Subscription } = require('../../../app/src/models/Subscription') +import { expect } from 'chai' +import { User } from '../../../app/src/models/User.js' +import { Subscription } from '../../../app/src/models/Subscription.js' describe('mongoose', function () { describe('User', function () { diff --git a/services/web/test/acceptance/src/MongoHelper.js b/services/web/test/acceptance/src/MongoHelper.mjs similarity index 93% rename from services/web/test/acceptance/src/MongoHelper.js rename to services/web/test/acceptance/src/MongoHelper.mjs index c91869634f..d737fe9c7c 100644 --- a/services/web/test/acceptance/src/MongoHelper.js +++ b/services/web/test/acceptance/src/MongoHelper.mjs @@ -1,16 +1,19 @@ -const { expect } = require('chai') - -const { ObjectId: NativeObjectId } = require('mongodb-legacy') -const { ObjectId: MongooseObjectId } = require('mongoose').mongo - -const { User: UserModel } = require('../../../app/src/models/User') -const { db } = require('../../../app/src/infrastructure/mongodb') -const { +import { expect } from 'chai' +import mongodb from 'mongodb-legacy' +import mongoose from 'mongoose' +import { User as UserModel } from '../../../app/src/models/User.js' +import { db } from '../../../app/src/infrastructure/mongodb.js' +import { normalizeQuery, normalizeMultiQuery, -} = require('../../../app/src/Features/Helpers/Mongo') +} from '../../../app/src/Features/Helpers/Mongo.js' +import UserHelper from './helpers/User.js' -const User = require('./helpers/User').promises +const User = UserHelper.promises + +const NativeObjectId = mongodb.ObjectId + +const MongooseObjectId = mongoose.Types.ObjectId describe('MongoTests', function () { let userIdAsString, userEmail, userIds diff --git a/services/web/test/acceptance/src/PasswordResetTests.js b/services/web/test/acceptance/src/PasswordResetTests.mjs similarity index 99% rename from services/web/test/acceptance/src/PasswordResetTests.js rename to services/web/test/acceptance/src/PasswordResetTests.mjs index 18555488d2..aa99ef6f98 100644 --- a/services/web/test/acceptance/src/PasswordResetTests.js +++ b/services/web/test/acceptance/src/PasswordResetTests.mjs @@ -1,6 +1,6 @@ -const { expect } = require('chai') -const UserHelper = require('./helpers/UserHelper') -const { db } = require('../../../app/src/infrastructure/mongodb') +import { expect } from 'chai' +import UserHelper from './helpers/UserHelper.js' +import { db } from '../../../app/src/infrastructure/mongodb.js' describe('PasswordReset', function () { let email, response, user, userHelper, token, emailQuery diff --git a/services/web/test/acceptance/src/PasswordUpdateTests.js b/services/web/test/acceptance/src/PasswordUpdateTests.mjs similarity index 97% rename from services/web/test/acceptance/src/PasswordUpdateTests.js rename to services/web/test/acceptance/src/PasswordUpdateTests.mjs index 727c43f036..09bd7db7d1 100644 --- a/services/web/test/acceptance/src/PasswordUpdateTests.js +++ b/services/web/test/acceptance/src/PasswordUpdateTests.mjs @@ -1,6 +1,6 @@ -const { expect } = require('chai') -const PasswordResetRouter = require('../../../app/src/Features/PasswordReset/PasswordResetRouter') -const UserHelper = require('./helpers/UserHelper') +import { expect } from 'chai' +import PasswordResetRouter from '../../../app/src/Features/PasswordReset/PasswordResetRouter.js' +import UserHelper from './helpers/UserHelper.js' describe('PasswordUpdate', function () { let email, password, response, user, userHelper diff --git a/services/web/test/acceptance/src/PrimaryEmailCheckTests.js b/services/web/test/acceptance/src/PrimaryEmailCheckTests.mjs similarity index 97% rename from services/web/test/acceptance/src/PrimaryEmailCheckTests.js rename to services/web/test/acceptance/src/PrimaryEmailCheckTests.mjs index 813c838de3..6e58ceffe2 100644 --- a/services/web/test/acceptance/src/PrimaryEmailCheckTests.js +++ b/services/web/test/acceptance/src/PrimaryEmailCheckTests.mjs @@ -1,9 +1,11 @@ -const UserHelper = require('./helpers/UserHelper') -const Settings = require('@overleaf/settings') -const { expect } = require('chai') -const Features = require('../../../app/src/infrastructure/Features') -const MockV1ApiClass = require('./mocks/MockV1Api') -const Subscription = require('./helpers/Subscription').promises +import UserHelper from './helpers/UserHelper.js' +import Settings from '@overleaf/settings' +import { expect } from 'chai' +import Features from '../../../app/src/infrastructure/Features.js' +import MockV1ApiClass from './mocks/MockV1Api.js' +import SubscriptionHelper from './helpers/Subscription.js' + +const Subscription = SubscriptionHelper.promises describe('PrimaryEmailCheck', function () { let userHelper diff --git a/services/web/test/acceptance/src/ProjectCRUDTests.js b/services/web/test/acceptance/src/ProjectCRUDTests.mjs similarity index 93% rename from services/web/test/acceptance/src/ProjectCRUDTests.js rename to services/web/test/acceptance/src/ProjectCRUDTests.mjs index caa8b12b01..6eba6acaf6 100644 --- a/services/web/test/acceptance/src/ProjectCRUDTests.js +++ b/services/web/test/acceptance/src/ProjectCRUDTests.mjs @@ -1,10 +1,14 @@ -const { expect } = require('chai') -const User = require('./helpers/User').promises -const { Project } = require('../../../app/src/models/Project') -const { ObjectId } = require('mongodb-legacy') -const cheerio = require('cheerio') -const { Subscription } = require('../../../app/src/models/Subscription') -const Features = require('../../../app/src/infrastructure/Features') +import { expect } from 'chai' +import UserHelper from './helpers/User.js' +import { Project } from '../../../app/src/models/Project.js' +import mongodb from 'mongodb-legacy' +import cheerio from 'cheerio' +import { Subscription } from '../../../app/src/models/Subscription.js' +import Features from '../../../app/src/infrastructure/Features.js' + +const ObjectId = mongodb.ObjectId + +const User = UserHelper.promises describe('Project CRUD', function () { beforeEach(async function () { diff --git a/services/web/test/acceptance/src/ProjectDuplicateNameTests.js b/services/web/test/acceptance/src/ProjectDuplicateNameTests.mjs similarity index 97% rename from services/web/test/acceptance/src/ProjectDuplicateNameTests.js rename to services/web/test/acceptance/src/ProjectDuplicateNameTests.mjs index 1738c71256..61828963ab 100644 --- a/services/web/test/acceptance/src/ProjectDuplicateNameTests.js +++ b/services/web/test/acceptance/src/ProjectDuplicateNameTests.mjs @@ -1,16 +1,18 @@ -const { expect } = require('chai') -const sinon = require('sinon') -const Path = require('path') -const fs = require('fs') -const _ = require('lodash') -const User = require('./helpers/User') -const UserHelper = require('./helpers/UserHelper') - -const MockDocstoreApiClass = require('./mocks/MockDocstoreApi') -const MockFilestoreApiClass = require('./mocks/MockFilestoreApi') +import { expect } from 'chai' +import sinon from 'sinon' +import Path from 'node:path' +import fs from 'node:fs' +import _ from 'lodash' +import User from './helpers/User.js' +import UserHelper from './helpers/UserHelper.js' +import MockDocstoreApiClass from './mocks/MockDocstoreApi.js' +import MockFilestoreApiClass from './mocks/MockFilestoreApi.js' +import { fileURLToPath } from 'node:url' let MockDocstoreApi, MockFilestoreApi +const __dirname = fileURLToPath(new URL('.', import.meta.url)) + before(function () { MockDocstoreApi = MockDocstoreApiClass.instance() MockFilestoreApi = MockFilestoreApiClass.instance() diff --git a/services/web/test/acceptance/src/ProjectFeaturesTests.js b/services/web/test/acceptance/src/ProjectFeaturesTests.mjs similarity index 92% rename from services/web/test/acceptance/src/ProjectFeaturesTests.js rename to services/web/test/acceptance/src/ProjectFeaturesTests.mjs index 7d2f836ae3..1f65bf2203 100644 --- a/services/web/test/acceptance/src/ProjectFeaturesTests.js +++ b/services/web/test/acceptance/src/ProjectFeaturesTests.mjs @@ -10,11 +10,12 @@ * DS207: Consider shorter variations of null checks * Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md */ -const { expect } = require('chai') -const async = require('async') -const User = require('./helpers/User') -const request = require('./helpers/request') -const settings = require('@overleaf/settings') +import { expect } from 'chai' + +import async from 'async' +import User from './helpers/User.js' +import request from './helpers/request.js' +import settings from '@overleaf/settings' const joinProject = (userId, projectId, callback) => request.post( diff --git a/services/web/test/acceptance/src/ProjectInviteTests.js b/services/web/test/acceptance/src/ProjectInviteTests.mjs similarity index 97% rename from services/web/test/acceptance/src/ProjectInviteTests.js rename to services/web/test/acceptance/src/ProjectInviteTests.mjs index ee34021e6f..fb1de2f582 100644 --- a/services/web/test/acceptance/src/ProjectInviteTests.js +++ b/services/web/test/acceptance/src/ProjectInviteTests.mjs @@ -1,12 +1,12 @@ -const { expect } = require('chai') -const Async = require('async') -const User = require('./helpers/User') -const settings = require('@overleaf/settings') -const CollaboratorsEmailHandler = require('../../../app/src/Features/Collaborators/CollaboratorsEmailHandler') -const CollaboratorsInviteHelper = require('../../../app/src/Features/Collaborators/CollaboratorsInviteHelper') -const Features = require('../../../app/src/infrastructure/Features') -const cheerio = require('cheerio') -const sinon = require('sinon') +import { expect } from 'chai' +import Async from 'async' +import User from './helpers/User.js' +import settings from '@overleaf/settings' +import CollaboratorsEmailHandler from '../../../app/src/Features/Collaborators/CollaboratorsEmailHandler.js' +import CollaboratorsInviteHelper from '../../../app/src/Features/Collaborators/CollaboratorsInviteHelper.js' +import Features from '../../../app/src/infrastructure/Features.js' +import cheerio from 'cheerio' +import sinon from 'sinon' let generateTokenSpy diff --git a/services/web/test/acceptance/src/ProjectOwnershipTransferTests.js b/services/web/test/acceptance/src/ProjectOwnershipTransferTests.mjs similarity index 97% rename from services/web/test/acceptance/src/ProjectOwnershipTransferTests.js rename to services/web/test/acceptance/src/ProjectOwnershipTransferTests.mjs index ae6f1db425..6256221dfe 100644 --- a/services/web/test/acceptance/src/ProjectOwnershipTransferTests.js +++ b/services/web/test/acceptance/src/ProjectOwnershipTransferTests.mjs @@ -1,5 +1,7 @@ -const { expect } = require('chai') -const User = require('./helpers/User').promises +import { expect } from 'chai' +import UserHelper from './helpers/User.js' + +const User = UserHelper.promises describe('Project ownership transfer', function () { beforeEach(async function () { diff --git a/services/web/test/acceptance/src/ProjectStructureMongoLockTest.js b/services/web/test/acceptance/src/ProjectStructureMongoLockTest.mjs similarity index 91% rename from services/web/test/acceptance/src/ProjectStructureMongoLockTest.js rename to services/web/test/acceptance/src/ProjectStructureMongoLockTest.mjs index 741fa00b44..8517432e9d 100644 --- a/services/web/test/acceptance/src/ProjectStructureMongoLockTest.js +++ b/services/web/test/acceptance/src/ProjectStructureMongoLockTest.mjs @@ -12,14 +12,14 @@ * Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md */ -const LockManager = require('../../../app/src/infrastructure/LockManager') -const ProjectCreationHandler = require('../../../app/src/Features/Project/ProjectCreationHandler') -const ProjectGetter = require('../../../app/src/Features/Project/ProjectGetter') -const ProjectEntityMongoUpdateHandler = require('../../../app/src/Features/Project/ProjectEntityMongoUpdateHandler') -const UserCreator = require('../../../app/src/Features/User/UserCreator') +import LockManager from '../../../app/src/infrastructure/LockManager.js' -const { expect } = require('chai') -const _ = require('lodash') +import ProjectCreationHandler from '../../../app/src/Features/Project/ProjectCreationHandler.js' +import ProjectGetter from '../../../app/src/Features/Project/ProjectGetter.js' +import ProjectEntityMongoUpdateHandler from '../../../app/src/Features/Project/ProjectEntityMongoUpdateHandler.js' +import UserCreator from '../../../app/src/Features/User/UserCreator.js' +import { expect } from 'chai' +import _ from 'lodash' // These tests are neither acceptance tests nor unit tests. It's difficult to // test/verify that our locking is doing what we hope. diff --git a/services/web/test/acceptance/src/ProjectStructureTests.js b/services/web/test/acceptance/src/ProjectStructureTests.mjs similarity index 92% rename from services/web/test/acceptance/src/ProjectStructureTests.js rename to services/web/test/acceptance/src/ProjectStructureTests.mjs index e30fae0b48..6f6f89ce86 100644 --- a/services/web/test/acceptance/src/ProjectStructureTests.js +++ b/services/web/test/acceptance/src/ProjectStructureTests.mjs @@ -1,14 +1,19 @@ -const { expect } = require('chai') -const { ObjectId } = require('mongodb-legacy') -const Path = require('path') -const fs = require('fs') +import { expect } from 'chai' +import mongodb from 'mongodb-legacy' +import Path from 'node:path' +import fs from 'node:fs' +import { Project } from '../../../app/src/models/Project.js' +import ProjectGetter from '../../../app/src/Features/Project/ProjectGetter.js' +import UserHelper from './helpers/User.js' +import MockDocStoreApiClass from './mocks/MockDocstoreApi.js' +import MockDocUpdaterApiClass from './mocks/MockDocUpdaterApi.js' +import { fileURLToPath } from 'node:url' -const { Project } = require('../../../app/src/models/Project') -const ProjectGetter = require('../../../app/src/Features/Project/ProjectGetter') +const User = UserHelper.promises -const User = require('./helpers/User').promises -const MockDocStoreApiClass = require('./mocks/MockDocstoreApi') -const MockDocUpdaterApiClass = require('./mocks/MockDocUpdaterApi') +const ObjectId = mongodb.ObjectId + +const __dirname = fileURLToPath(new URL('.', import.meta.url)) let MockDocStoreApi, MockDocUpdaterApi diff --git a/services/web/test/acceptance/src/RedirectUrlsTests.js b/services/web/test/acceptance/src/RedirectUrlsTests.mjs similarity index 94% rename from services/web/test/acceptance/src/RedirectUrlsTests.js rename to services/web/test/acceptance/src/RedirectUrlsTests.mjs index 258c83d4a1..7ebc89df1d 100644 --- a/services/web/test/acceptance/src/RedirectUrlsTests.js +++ b/services/web/test/acceptance/src/RedirectUrlsTests.mjs @@ -9,9 +9,8 @@ * DS102: Remove unnecessary code created because of implicit returns * Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md */ -const { assert, expect } = require('chai') -const async = require('async') -const request = require('./helpers/request') +import { expect } from 'chai' +import request from './helpers/request.js' const assertRedirect = (method, path, expectedStatusCode, destination, cb) => request[method](path, (error, response) => { diff --git a/services/web/test/acceptance/src/RegenerateDuplicateReferralIdsTests.js b/services/web/test/acceptance/src/RegenerateDuplicateReferralIdsTests.mjs similarity index 93% rename from services/web/test/acceptance/src/RegenerateDuplicateReferralIdsTests.js rename to services/web/test/acceptance/src/RegenerateDuplicateReferralIdsTests.mjs index a493bd09a8..cb6386a9b4 100644 --- a/services/web/test/acceptance/src/RegenerateDuplicateReferralIdsTests.js +++ b/services/web/test/acceptance/src/RegenerateDuplicateReferralIdsTests.mjs @@ -1,9 +1,9 @@ -const { exec } = require('child_process') -const { promisify } = require('util') -const { expect } = require('chai') -const logger = require('@overleaf/logger') -const { filterOutput } = require('./helpers/settings') -const { db } = require('../../../app/src/infrastructure/mongodb') +import { exec } from 'child_process' +import { promisify } from 'util' +import { expect } from 'chai' +import logger from '@overleaf/logger' +import { filterOutput } from './helpers/settings.mjs' +import { db } from '../../../app/src/infrastructure/mongodb.js' const BATCH_SIZE = 100 let n = 0 diff --git a/services/web/test/acceptance/src/RegistrationTests.js b/services/web/test/acceptance/src/RegistrationTests.mjs similarity index 97% rename from services/web/test/acceptance/src/RegistrationTests.js rename to services/web/test/acceptance/src/RegistrationTests.mjs index e71fb6d331..bbbe21c3b3 100644 --- a/services/web/test/acceptance/src/RegistrationTests.js +++ b/services/web/test/acceptance/src/RegistrationTests.mjs @@ -1,10 +1,11 @@ -const { expect } = require('chai') -const async = require('async') -const metrics = require('./helpers/metrics') -const User = require('./helpers/User') -const UserPromises = require('./helpers/User').promises -const redis = require('./helpers/redis') -const Features = require('../../../app/src/infrastructure/Features') +import { expect } from 'chai' +import async from 'async' +import metrics from './helpers/metrics.js' +import User from './helpers/User.js' +import redis from './helpers/redis.mjs' +import Features from '../../../app/src/infrastructure/Features.js' + +const UserPromises = User.promises // Expectations const expectProjectAccess = function (user, projectId, callback) { diff --git a/services/web/test/acceptance/src/RemoveDeletedUsersFromTokenAccessRefsTests.js b/services/web/test/acceptance/src/RemoveDeletedUsersFromTokenAccessRefsTests.mjs similarity index 96% rename from services/web/test/acceptance/src/RemoveDeletedUsersFromTokenAccessRefsTests.js rename to services/web/test/acceptance/src/RemoveDeletedUsersFromTokenAccessRefsTests.mjs index 5c2b4180ea..ed4b062c36 100644 --- a/services/web/test/acceptance/src/RemoveDeletedUsersFromTokenAccessRefsTests.js +++ b/services/web/test/acceptance/src/RemoveDeletedUsersFromTokenAccessRefsTests.mjs @@ -1,8 +1,8 @@ -const { db, ObjectId } = require('../../../app/src/infrastructure/mongodb') -const { promisify } = require('util') -const { exec } = require('child_process') -const logger = require('@overleaf/logger/logging-manager') -const { expect } = require('chai') +import { db, ObjectId } from '../../../app/src/infrastructure/mongodb.js' +import { promisify } from 'util' +import { exec } from 'child_process' +import logger from '@overleaf/logger' +import { expect } from 'chai' describe('RemoveDeletedUsersFromTokenAccessRefsTests', function () { const userId1 = new ObjectId() diff --git a/services/web/test/acceptance/src/SecurityHeadersTests.js b/services/web/test/acceptance/src/SecurityHeadersTests.mjs similarity index 95% rename from services/web/test/acceptance/src/SecurityHeadersTests.js rename to services/web/test/acceptance/src/SecurityHeadersTests.mjs index 3a9e67bdb6..fe0b1135cd 100644 --- a/services/web/test/acceptance/src/SecurityHeadersTests.js +++ b/services/web/test/acceptance/src/SecurityHeadersTests.mjs @@ -11,11 +11,12 @@ * DS207: Consider shorter variations of null checks * Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md */ -const { assert } = require('chai') -const async = require('async') -const User = require('./helpers/User') -const request = require('./helpers/request') -const ProjectGetter = require('../../../app/src/Features/Project/ProjectGetter') +import { assert } from 'chai' + +import async from 'async' +import User from './helpers/User.js' +import request from './helpers/request.js' +import ProjectGetter from '../../../app/src/Features/Project/ProjectGetter.js' const assertHasCommonHeaders = function (response) { const { headers } = response diff --git a/services/web/test/acceptance/src/ServerCrashTests.js b/services/web/test/acceptance/src/ServerCrashTests.mjs similarity index 75% rename from services/web/test/acceptance/src/ServerCrashTests.js rename to services/web/test/acceptance/src/ServerCrashTests.mjs index 1587e2d8aa..fb89c416d5 100644 --- a/services/web/test/acceptance/src/ServerCrashTests.js +++ b/services/web/test/acceptance/src/ServerCrashTests.mjs @@ -1,10 +1,14 @@ -const { expect } = require('chai') -const fs = require('fs') -const Path = require('path') -const fetch = require('node-fetch') -const UserHelper = require('./helpers/UserHelper') +import { expect } from 'chai' +import fs from 'fs' +import Path from 'path' +import fetch from 'node-fetch' +import UserHelper from './helpers/UserHelper.js' +import glob from 'glob' +import { fileURLToPath } from 'url' + const BASE_URL = UserHelper.baseUrl() -const glob = require('glob') + +const __dirname = fileURLToPath(new URL('.', import.meta.url)) // Test all files in the crash_test_urls directory const CRASH_TEST_FILES = glob.sync( diff --git a/services/web/test/acceptance/src/SessionTests.js b/services/web/test/acceptance/src/SessionTests.mjs similarity index 96% rename from services/web/test/acceptance/src/SessionTests.js rename to services/web/test/acceptance/src/SessionTests.mjs index 9109ccb444..09ddeda0d6 100644 --- a/services/web/test/acceptance/src/SessionTests.js +++ b/services/web/test/acceptance/src/SessionTests.mjs @@ -1,15 +1,15 @@ -const { expect } = require('chai') -const async = require('async') -const User = require('./helpers/User') -const redis = require('./helpers/redis') -const UserSessionsRedis = require('../../../app/src/Features/User/UserSessionsRedis') +import { expect } from 'chai' +import async from 'async' +import UserHelper from './helpers/User.js' +import redis from './helpers/redis.mjs' +import UserSessionsRedis from '../../../app/src/Features/User/UserSessionsRedis.js' const rclient = UserSessionsRedis.client() describe('Sessions', function () { beforeEach(function (done) { this.timeout(20000) - this.user1 = new User() - this.site_admin = new User({ email: 'admin@example.com' }) + this.user1 = new UserHelper() + this.site_admin = new UserHelper({ email: 'admin@example.com' }) async.series( [cb => this.user1.login(cb), cb => this.user1.logout(cb)], done @@ -73,7 +73,7 @@ describe('Sessions', function () { describe('two sessions', function () { beforeEach(function () { // set up second session for this user - this.user2 = new User() + this.user2 = new UserHelper() this.user2.email = this.user1.email this.user2.emails = this.user1.emails this.user2.password = this.user1.password @@ -198,11 +198,11 @@ describe('Sessions', function () { describe('three sessions, password reset', function () { beforeEach(function () { // set up second session for this user - this.user2 = new User() + this.user2 = new UserHelper() this.user2.email = this.user1.email this.user2.emails = this.user1.emails this.user2.password = this.user1.password - this.user3 = new User() + this.user3 = new UserHelper() this.user3.email = this.user1.email this.user3.emails = this.user1.emails this.user3.password = this.user1.password @@ -324,11 +324,11 @@ describe('Sessions', function () { describe('three sessions, sessions page', function () { beforeEach(function (done) { // set up second session for this user - this.user2 = new User() + this.user2 = new UserHelper() this.user2.email = this.user1.email this.user2.emails = this.user1.emails this.user2.password = this.user1.password - this.user3 = new User() + this.user3 = new UserHelper() this.user3.email = this.user1.email this.user3.emails = this.user1.emails this.user3.password = this.user1.password @@ -485,7 +485,7 @@ describe('Sessions', function () { }) describe('validationToken', function () { - const User = require('./helpers/User').promises + const User = UserHelper.promises async function tryWithValidationToken(validationToken) { const user = new User() diff --git a/services/web/test/acceptance/src/SettingsTests.js b/services/web/test/acceptance/src/SettingsTests.mjs similarity index 90% rename from services/web/test/acceptance/src/SettingsTests.js rename to services/web/test/acceptance/src/SettingsTests.mjs index 84c9b2186d..87a425fb9b 100644 --- a/services/web/test/acceptance/src/SettingsTests.js +++ b/services/web/test/acceptance/src/SettingsTests.mjs @@ -8,10 +8,11 @@ * DS102: Remove unnecessary code created because of implicit returns * Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md */ -const { expect } = require('chai') -const async = require('async') -const User = require('./helpers/User') -const Features = require('../../../app/src/infrastructure/Features') +import { expect } from 'chai' + +import async from 'async' +import User from './helpers/User.js' +import Features from '../../../app/src/infrastructure/Features.js' describe('SettingsPage', function () { beforeEach(function (done) { diff --git a/services/web/test/acceptance/src/SharingTests.js b/services/web/test/acceptance/src/SharingTests.mjs similarity index 96% rename from services/web/test/acceptance/src/SharingTests.js rename to services/web/test/acceptance/src/SharingTests.mjs index 06f0f75e4d..aa537d76b6 100644 --- a/services/web/test/acceptance/src/SharingTests.js +++ b/services/web/test/acceptance/src/SharingTests.mjs @@ -1,5 +1,7 @@ -const { expect } = require('chai') -const User = require('./helpers/User').promises +import { expect } from 'chai' +import UserHelper from './helpers/User.js' + +const User = UserHelper.promises describe('Sharing', function () { beforeEach(async function () { diff --git a/services/web/test/acceptance/src/TagsTests.js b/services/web/test/acceptance/src/TagsTests.mjs similarity index 98% rename from services/web/test/acceptance/src/TagsTests.js rename to services/web/test/acceptance/src/TagsTests.mjs index 731a06c643..a2c99ba23d 100644 --- a/services/web/test/acceptance/src/TagsTests.js +++ b/services/web/test/acceptance/src/TagsTests.mjs @@ -1,10 +1,9 @@ -const User = require('./helpers/User') -const async = require('async') -const { expect } = require('chai') -const _ = require('lodash') -const request = require('./helpers/request') - -const expectErrorResponse = require('./helpers/expectErrorResponse') +import User from './helpers/User.js' +import async from 'async' +import { expect } from 'chai' +import _ from 'lodash' +import request from './helpers/request.js' +import expectErrorResponse from './helpers/expectErrorResponse.js' const _initUser = (user, callback) => { async.series([cb => user.login(cb), cb => user.getCsrfToken(cb)], callback) diff --git a/services/web/test/acceptance/src/TokenAccessTests.js b/services/web/test/acceptance/src/TokenAccessTests.mjs similarity index 99% rename from services/web/test/acceptance/src/TokenAccessTests.js rename to services/web/test/acceptance/src/TokenAccessTests.mjs index 65adf25bbb..ba4d2c09d0 100644 --- a/services/web/test/acceptance/src/TokenAccessTests.js +++ b/services/web/test/acceptance/src/TokenAccessTests.mjs @@ -1,12 +1,12 @@ -const { expect } = require('chai') -const async = require('async') -const User = require('./helpers/User') -const request = require('./helpers/request') -const settings = require('@overleaf/settings') -const { db } = require('../../../app/src/infrastructure/mongodb') -const expectErrorResponse = require('./helpers/expectErrorResponse') -const SplitTestHandler = require('../../../app/src/Features/SplitTests/SplitTestHandler') -const sinon = require('sinon') +import { expect } from 'chai' +import async from 'async' +import User from './helpers/User.js' +import request from './helpers/request.js' +import settings from '@overleaf/settings' +import { db } from '../../../app/src/infrastructure/mongodb.js' +import expectErrorResponse from './helpers/expectErrorResponse.js' +import SplitTestHandler from '../../../app/src/Features/SplitTests/SplitTestHandler.js' +import sinon from 'sinon' const tryEditorAccess = (user, projectId, test, callback) => async.series( diff --git a/services/web/test/acceptance/src/TpdsUpdateTests.js b/services/web/test/acceptance/src/TpdsUpdateTests.mjs similarity index 96% rename from services/web/test/acceptance/src/TpdsUpdateTests.js rename to services/web/test/acceptance/src/TpdsUpdateTests.mjs index 4cd2ebd235..4f1307a208 100644 --- a/services/web/test/acceptance/src/TpdsUpdateTests.js +++ b/services/web/test/acceptance/src/TpdsUpdateTests.mjs @@ -1,7 +1,7 @@ -const { expect } = require('chai') -const ProjectGetter = require('../../../app/src/Features/Project/ProjectGetter') -const request = require('./helpers/request') -const User = require('./helpers/User') +import { expect } from 'chai' +import ProjectGetter from '../../../app/src/Features/Project/ProjectGetter.js' +import request from './helpers/request.js' +import User from './helpers/User.js' describe('TpdsUpdateTests', function () { beforeEach(function (done) { diff --git a/services/web/test/acceptance/src/UnsupportedBrowserTests.js b/services/web/test/acceptance/src/UnsupportedBrowserTests.mjs similarity index 98% rename from services/web/test/acceptance/src/UnsupportedBrowserTests.js rename to services/web/test/acceptance/src/UnsupportedBrowserTests.mjs index 37819d2533..6f9cc5a730 100644 --- a/services/web/test/acceptance/src/UnsupportedBrowserTests.js +++ b/services/web/test/acceptance/src/UnsupportedBrowserTests.mjs @@ -1,5 +1,5 @@ -const { expect } = require('chai') -const User = require('./helpers/User') +import { expect } from 'chai' +import User from './helpers/User.js' const botUserAgents = new Map([ [ diff --git a/services/web/test/acceptance/src/UserHelperTests.js b/services/web/test/acceptance/src/UserHelperTests.mjs similarity index 96% rename from services/web/test/acceptance/src/UserHelperTests.js rename to services/web/test/acceptance/src/UserHelperTests.mjs index 930db68227..391b18154a 100644 --- a/services/web/test/acceptance/src/UserHelperTests.js +++ b/services/web/test/acceptance/src/UserHelperTests.mjs @@ -1,7 +1,7 @@ -const AuthenticationManager = require('../../../app/src/Features/Authentication/AuthenticationManager') -const UserHelper = require('./helpers/UserHelper') -const Features = require('../../../app/src/infrastructure/Features') -const { expect } = require('chai') +import AuthenticationManager from '../../../app/src/Features/Authentication/AuthenticationManager.js' +import UserHelper from './helpers/UserHelper.js' +import Features from '../../../app/src/infrastructure/Features.js' +import { expect } from 'chai' describe('UserHelper', function () { // Disable all tests unless the registration feature is enabled diff --git a/services/web/test/acceptance/src/UserMembershipAuthorizationTests.js b/services/web/test/acceptance/src/UserMembershipAuthorizationTests.mjs similarity index 94% rename from services/web/test/acceptance/src/UserMembershipAuthorizationTests.js rename to services/web/test/acceptance/src/UserMembershipAuthorizationTests.mjs index abefd422e5..5b9428dea4 100644 --- a/services/web/test/acceptance/src/UserMembershipAuthorizationTests.js +++ b/services/web/test/acceptance/src/UserMembershipAuthorizationTests.mjs @@ -1,9 +1,9 @@ -const { expect } = require('chai') -const async = require('async') -const User = require('./helpers/User') -const Institution = require('./helpers/Institution') -const Subscription = require('./helpers/Subscription') -const Publisher = require('./helpers/Publisher') +import { expect } from 'chai' +import async from 'async' +import User from './helpers/User.js' +import Institution from './helpers/Institution.js' +import Subscription from './helpers/Subscription.js' +import Publisher from './helpers/Publisher.js' describe('UserMembershipAuthorization', function () { beforeEach(function (done) { diff --git a/services/web/test/acceptance/src/UserReconfirmTests.js b/services/web/test/acceptance/src/UserReconfirmTests.mjs similarity index 94% rename from services/web/test/acceptance/src/UserReconfirmTests.js rename to services/web/test/acceptance/src/UserReconfirmTests.mjs index 42e195af4c..a132da0f71 100644 --- a/services/web/test/acceptance/src/UserReconfirmTests.js +++ b/services/web/test/acceptance/src/UserReconfirmTests.mjs @@ -11,9 +11,10 @@ * DS207: Consider shorter variations of null checks * Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md */ -const { expect } = require('chai') -const async = require('async') -const User = require('./helpers/User') +import { expect } from 'chai' + +import async from 'async' +import User from './helpers/User.js' describe('User Must Reconfirm', function () { beforeEach(function (done) { diff --git a/services/web/test/acceptance/src/helpers/DeletedSubscription.js b/services/web/test/acceptance/src/helpers/DeletedSubscription.mjs similarity index 70% rename from services/web/test/acceptance/src/helpers/DeletedSubscription.js rename to services/web/test/acceptance/src/helpers/DeletedSubscription.mjs index 1e60083689..58fe5e1e49 100644 --- a/services/web/test/acceptance/src/helpers/DeletedSubscription.js +++ b/services/web/test/acceptance/src/helpers/DeletedSubscription.mjs @@ -1,10 +1,8 @@ -const { expect } = require('chai') -const MockSubscription = require('./Subscription') -const SubscriptionUpdater = require('../../../../app/src/Features/Subscription/SubscriptionUpdater') -const SubscriptionModel = - require('../../../../app/src/models/Subscription').Subscription -const DeletedSubscriptionModel = - require('../../../../app/src/models/DeletedSubscription').DeletedSubscription +import { expect } from 'chai' +import MockSubscription from './Subscription.js' +import SubscriptionUpdater from '../../../../app/src/Features/Subscription/SubscriptionUpdater.js' +import { Subscription as SubscriptionModel } from '../../../../app/src/models/Subscription.js' +import { DeletedSubscription as DeletedSubscriptionModel } from '../../../../app/src/models/DeletedSubscription.js' class DeletedSubscription { constructor(options = {}) { @@ -43,4 +41,4 @@ class DeletedSubscription { } } -module.exports = DeletedSubscription +export default DeletedSubscription diff --git a/services/web/test/acceptance/src/helpers/InitApp.mjs b/services/web/test/acceptance/src/helpers/InitApp.mjs index afa4edf5bc..5fa6d44040 100644 --- a/services/web/test/acceptance/src/helpers/InitApp.mjs +++ b/services/web/test/acceptance/src/helpers/InitApp.mjs @@ -1,13 +1,13 @@ import App from '../../../../app.mjs' import QueueWorkers from '../../../../app/src/infrastructure/QueueWorkers.js' -import MongoHelper from './MongoHelper.js' -import RedisHelper from './RedisHelper.js' +import MongoHelper from './MongoHelper.mjs' +import RedisHelper from './RedisHelper.mjs' import logger from '@overleaf/logger' import Settings from '@overleaf/settings' -import MockReCAPTCHAApi from '../mocks/MockReCaptchaApi.js' +import MockReCAPTCHAApi from '../mocks/MockReCaptchaApi.mjs' import { gracefulShutdown } from '../../../../app/src/infrastructure/GracefulShutdown.js' import Server from '../../../../app/src/infrastructure/Server.mjs' -import { injectRouteAfter } from './injectRoute.js' +import { injectRouteAfter } from './injectRoute.mjs' import SplitTestHandler from '../../../../app/src/Features/SplitTests/SplitTestHandler.js' import SplitTestSessionHandler from '../../../../app/src/Features/SplitTests/SplitTestSessionHandler.js' import Modules from '../../../../app/src/infrastructure/Modules.js' diff --git a/services/web/test/acceptance/src/helpers/MongoHelper.js b/services/web/test/acceptance/src/helpers/MongoHelper.mjs similarity index 83% rename from services/web/test/acceptance/src/helpers/MongoHelper.js rename to services/web/test/acceptance/src/helpers/MongoHelper.mjs index 465dbe504e..c60d393881 100644 --- a/services/web/test/acceptance/src/helpers/MongoHelper.js +++ b/services/web/test/acceptance/src/helpers/MongoHelper.mjs @@ -1,14 +1,14 @@ -const { execFile } = require('child_process') -const { +import { execFile } from 'child_process' +import { waitForDb, db, dropTestDatabase, -} = require('../../../../app/src/infrastructure/mongodb') -const Settings = require('@overleaf/settings') +} from '../../../../app/src/infrastructure/mongodb.js' +import Settings from '@overleaf/settings' const DEFAULT_ENV = 'saas' -module.exports = { +export default { initialize() { before('wait for db', waitForDb) if (process.env.CLEANUP_MONGO === 'true') { diff --git a/services/web/test/acceptance/src/helpers/RedisHelper.js b/services/web/test/acceptance/src/helpers/RedisHelper.mjs similarity index 61% rename from services/web/test/acceptance/src/helpers/RedisHelper.js rename to services/web/test/acceptance/src/helpers/RedisHelper.mjs index 371ae7e421..e38d7ad80e 100644 --- a/services/web/test/acceptance/src/helpers/RedisHelper.js +++ b/services/web/test/acceptance/src/helpers/RedisHelper.mjs @@ -1,7 +1,7 @@ -const RedisWrapper = require('../../../../app/src/infrastructure/RedisWrapper') +import RedisWrapper from '../../../../app/src/infrastructure/RedisWrapper.js' const client = RedisWrapper.client('ratelimiter') -module.exports = { +export default { initialize() { beforeEach('clear redis', function (done) { client.flushdb(done) diff --git a/services/web/test/acceptance/src/helpers/injectRoute.js b/services/web/test/acceptance/src/helpers/injectRoute.mjs similarity index 91% rename from services/web/test/acceptance/src/helpers/injectRoute.js rename to services/web/test/acceptance/src/helpers/injectRoute.mjs index 30a8a19f6a..8377216307 100644 --- a/services/web/test/acceptance/src/helpers/injectRoute.js +++ b/services/web/test/acceptance/src/helpers/injectRoute.mjs @@ -6,7 +6,7 @@ * @param searchFilter - a filter function to locate a route to position the new route immediatley after. * @param addRouteCallback - a callback that takes a router and creates the new route. */ -function injectRouteAfter(app, searchFilter, addRouteCallback) { +export function injectRouteAfter(app, searchFilter, addRouteCallback) { const stack = app._router.stack stack.forEach(layer => { @@ -36,4 +36,4 @@ function injectRouteAfter(app, searchFilter, addRouteCallback) { }) } -module.exports = { injectRouteAfter } +export default { injectRouteAfter } diff --git a/services/web/test/acceptance/src/helpers/redis.js b/services/web/test/acceptance/src/helpers/redis.mjs similarity index 86% rename from services/web/test/acceptance/src/helpers/redis.js rename to services/web/test/acceptance/src/helpers/redis.mjs index ca75c6e0ed..2f8575fda9 100644 --- a/services/web/test/acceptance/src/helpers/redis.js +++ b/services/web/test/acceptance/src/helpers/redis.mjs @@ -11,16 +11,16 @@ * DS207: Consider shorter variations of null checks * Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md */ -const Settings = require('@overleaf/settings') -const logger = require('@overleaf/logger') -const Async = require('async') +import Settings from '@overleaf/settings' -const UserSessionsRedis = require('../../../../app/src/Features/User/UserSessionsRedis') +import logger from '@overleaf/logger' +import Async from 'async' +import UserSessionsRedis from '../../../../app/src/Features/User/UserSessionsRedis.js' // rclient = redis.createClient(Settings.redis.web) const rclient = UserSessionsRedis.client() -module.exports = { +export default { getUserSessions(user, callback) { if (callback == null) { callback = function () {} diff --git a/services/web/test/acceptance/src/helpers/settings.js b/services/web/test/acceptance/src/helpers/settings.mjs similarity index 77% rename from services/web/test/acceptance/src/helpers/settings.js rename to services/web/test/acceptance/src/helpers/settings.mjs index 005f953133..7a0baafa71 100644 --- a/services/web/test/acceptance/src/helpers/settings.js +++ b/services/web/test/acceptance/src/helpers/settings.mjs @@ -1,4 +1,4 @@ -function filterOutput(line) { +export function filterOutput(line) { return ( !line.startsWith('Using settings from ') && !line.startsWith('Using default settings from ') && @@ -7,4 +7,4 @@ function filterOutput(line) { ) } -module.exports = { filterOutput } +export default { filterOutput } diff --git a/services/web/test/acceptance/src/mocks/MockAnalyticsApi.js b/services/web/test/acceptance/src/mocks/MockAnalyticsApi.mjs similarity index 88% rename from services/web/test/acceptance/src/mocks/MockAnalyticsApi.js rename to services/web/test/acceptance/src/mocks/MockAnalyticsApi.mjs index b7c830f81c..6ebbf994a3 100644 --- a/services/web/test/acceptance/src/mocks/MockAnalyticsApi.js +++ b/services/web/test/acceptance/src/mocks/MockAnalyticsApi.mjs @@ -1,4 +1,4 @@ -const AbstractMockApi = require('./AbstractMockApi') +import AbstractMockApi from './AbstractMockApi.js' class MockAnalyticsApi extends AbstractMockApi { reset() { @@ -30,7 +30,7 @@ class MockAnalyticsApi extends AbstractMockApi { } } -module.exports = MockAnalyticsApi +export default MockAnalyticsApi // type hint for the inherited `instance` method /** diff --git a/services/web/test/acceptance/src/mocks/MockChatApi.js b/services/web/test/acceptance/src/mocks/MockChatApi.mjs similarity index 93% rename from services/web/test/acceptance/src/mocks/MockChatApi.js rename to services/web/test/acceptance/src/mocks/MockChatApi.mjs index b6abf82ddc..7a67c0f8e0 100644 --- a/services/web/test/acceptance/src/mocks/MockChatApi.js +++ b/services/web/test/acceptance/src/mocks/MockChatApi.mjs @@ -1,4 +1,4 @@ -const AbstractMockApi = require('./AbstractMockApi') +import AbstractMockApi from './AbstractMockApi.js' class MockChatApi extends AbstractMockApi { reset() { @@ -41,7 +41,7 @@ class MockChatApi extends AbstractMockApi { } } -module.exports = MockChatApi +export default MockChatApi // type hint for the inherited `instance` method /** diff --git a/services/web/test/acceptance/src/mocks/MockClsiApi.js b/services/web/test/acceptance/src/mocks/MockClsiApi.mjs similarity index 90% rename from services/web/test/acceptance/src/mocks/MockClsiApi.js rename to services/web/test/acceptance/src/mocks/MockClsiApi.mjs index 1a29eb8a58..d59be62d9f 100644 --- a/services/web/test/acceptance/src/mocks/MockClsiApi.js +++ b/services/web/test/acceptance/src/mocks/MockClsiApi.mjs @@ -1,7 +1,5 @@ -const AbstractMockApi = require('./AbstractMockApi') -const { - plainTextResponse, -} = require('../../../../app/src/infrastructure/Response') +import AbstractMockApi from './AbstractMockApi.js' +import { plainTextResponse } from '../../../../app/src/infrastructure/Response.js' class MockClsiApi extends AbstractMockApi { static compile(req, res) { @@ -61,7 +59,7 @@ class MockClsiApi extends AbstractMockApi { } } -module.exports = MockClsiApi +export default MockClsiApi // type hint for the inherited `instance` method /** diff --git a/services/web/test/acceptance/src/mocks/MockGitBridgeApi.js b/services/web/test/acceptance/src/mocks/MockGitBridgeApi.mjs similarity index 80% rename from services/web/test/acceptance/src/mocks/MockGitBridgeApi.js rename to services/web/test/acceptance/src/mocks/MockGitBridgeApi.mjs index e9815ef220..da20860f8e 100644 --- a/services/web/test/acceptance/src/mocks/MockGitBridgeApi.js +++ b/services/web/test/acceptance/src/mocks/MockGitBridgeApi.mjs @@ -1,4 +1,4 @@ -const AbstractMockApi = require('./AbstractMockApi') +import AbstractMockApi from './AbstractMockApi.js' class MockGitBridgeApi extends AbstractMockApi { reset() { @@ -18,4 +18,4 @@ class MockGitBridgeApi extends AbstractMockApi { } } -module.exports = MockGitBridgeApi +export default MockGitBridgeApi diff --git a/services/web/test/acceptance/src/mocks/MockHaveIBeenPwnedApi.js b/services/web/test/acceptance/src/mocks/MockHaveIBeenPwnedApi.mjs similarity index 86% rename from services/web/test/acceptance/src/mocks/MockHaveIBeenPwnedApi.js rename to services/web/test/acceptance/src/mocks/MockHaveIBeenPwnedApi.mjs index 576fdcaa79..e7c92b9db4 100644 --- a/services/web/test/acceptance/src/mocks/MockHaveIBeenPwnedApi.js +++ b/services/web/test/acceptance/src/mocks/MockHaveIBeenPwnedApi.mjs @@ -1,7 +1,5 @@ -const AbstractMockApi = require('./AbstractMockApi') -const { - plainTextResponse, -} = require('../../../../app/src/infrastructure/Response') +import AbstractMockApi from './AbstractMockApi.js' +import { plainTextResponse } from '../../../../app/src/infrastructure/Response.js' class MockHaveIBeenPwnedApi extends AbstractMockApi { reset() { @@ -42,7 +40,7 @@ class MockHaveIBeenPwnedApi extends AbstractMockApi { } } -module.exports = MockHaveIBeenPwnedApi +export default MockHaveIBeenPwnedApi // type hint for the inherited `instance` method /** diff --git a/services/web/test/acceptance/src/mocks/MockNotificationsApi.js b/services/web/test/acceptance/src/mocks/MockNotificationsApi.mjs similarity index 86% rename from services/web/test/acceptance/src/mocks/MockNotificationsApi.js rename to services/web/test/acceptance/src/mocks/MockNotificationsApi.mjs index 8f65f81912..6444459098 100644 --- a/services/web/test/acceptance/src/mocks/MockNotificationsApi.js +++ b/services/web/test/acceptance/src/mocks/MockNotificationsApi.mjs @@ -1,4 +1,4 @@ -const AbstractMockApi = require('./AbstractMockApi') +import AbstractMockApi from './AbstractMockApi.js' // Currently there is nothing implemented here as we have no acceptance tests // for the notifications API. This does however stop errors appearing in the @@ -11,7 +11,7 @@ class MockNotificationsApi extends AbstractMockApi { } } -module.exports = MockNotificationsApi +export default MockNotificationsApi // type hint for the inherited `instance` method /** diff --git a/services/web/test/acceptance/src/mocks/MockReCaptchaApi.js b/services/web/test/acceptance/src/mocks/MockReCaptchaApi.mjs similarity index 81% rename from services/web/test/acceptance/src/mocks/MockReCaptchaApi.js rename to services/web/test/acceptance/src/mocks/MockReCaptchaApi.mjs index ad7a1705ad..52804cf3e4 100644 --- a/services/web/test/acceptance/src/mocks/MockReCaptchaApi.js +++ b/services/web/test/acceptance/src/mocks/MockReCaptchaApi.mjs @@ -1,4 +1,4 @@ -const AbstractMockApi = require('./AbstractMockApi') +import AbstractMockApi from './AbstractMockApi.js' class MockReCaptchaApi extends AbstractMockApi { applyRoutes() { @@ -10,7 +10,7 @@ class MockReCaptchaApi extends AbstractMockApi { } } -module.exports = MockReCaptchaApi +export default MockReCaptchaApi // type hint for the inherited `instance` method /** diff --git a/services/web/test/acceptance/src/mocks/MockSpellingApi.js b/services/web/test/acceptance/src/mocks/MockSpellingApi.mjs similarity index 93% rename from services/web/test/acceptance/src/mocks/MockSpellingApi.js rename to services/web/test/acceptance/src/mocks/MockSpellingApi.mjs index 7227df8ada..09689a2184 100644 --- a/services/web/test/acceptance/src/mocks/MockSpellingApi.js +++ b/services/web/test/acceptance/src/mocks/MockSpellingApi.mjs @@ -1,4 +1,4 @@ -const AbstractMockApi = require('./AbstractMockApi') +import AbstractMockApi from './AbstractMockApi.js' class MockSpellingApi extends AbstractMockApi { reset() { @@ -44,7 +44,7 @@ class MockSpellingApi extends AbstractMockApi { } } -module.exports = MockSpellingApi +export default MockSpellingApi // type hint for the inherited `instance` method /** diff --git a/services/web/test/acceptance/src/mocks/MockThirdPartyDataStoreApi.js b/services/web/test/acceptance/src/mocks/MockThirdPartyDataStoreApi.mjs similarity index 85% rename from services/web/test/acceptance/src/mocks/MockThirdPartyDataStoreApi.js rename to services/web/test/acceptance/src/mocks/MockThirdPartyDataStoreApi.mjs index aaddb04c72..5c4cc10984 100644 --- a/services/web/test/acceptance/src/mocks/MockThirdPartyDataStoreApi.js +++ b/services/web/test/acceptance/src/mocks/MockThirdPartyDataStoreApi.mjs @@ -1,4 +1,4 @@ -const AbstractMockApi = require('./AbstractMockApi') +import AbstractMockApi from './AbstractMockApi.js' class MockThirdPartyDataStoreApi extends AbstractMockApi { reset() {} @@ -19,7 +19,7 @@ class MockThirdPartyDataStoreApi extends AbstractMockApi { } } -module.exports = MockThirdPartyDataStoreApi +export default MockThirdPartyDataStoreApi // type hint for the inherited `instance` method /**