Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 2 additions & 4 deletions packages/fxa-auth-server/lib/email/utils/helpers.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,8 @@

'use strict';

const ROOT_DIR = '../../..';

const { config } = require(`${ROOT_DIR}/config`);
const emailDomains = require(`${ROOT_DIR}/config/popular-email-domains`);
const { config } = require('../../../config');
const emailDomains = require('../../../config/popular-email-domains');
const { default: Container } = require('typedi');
const { AccountEventsManager } = require('../../account-events');

Expand Down
18 changes: 10 additions & 8 deletions packages/fxa-auth-server/scripts/template-version-bump.js
Original file line number Diff line number Diff line change
Expand Up @@ -16,19 +16,21 @@ const cp = require('child_process');
const fs = require('fs');
const path = require('path');

const ROOT_DIR = path.join(__dirname, '..');
const TEMPLATE_DIR = 'lib/senders/emails/templates';
const VERSIONS_FILE = '_versions.json';
const IGNORE = new Set([VERSIONS_FILE, '_storybook']);
const IGNORE = new Set(['_versions.json', '_storybook']);
const DEDUP = {};

const versions = require(`../${TEMPLATE_DIR}/${VERSIONS_FILE}`);
const versions = require('../lib/senders/emails/templates/_versions.json');

const stagedTemplates = cp
.execSync('git status --porcelain', { cwd: ROOT_DIR, encoding: 'utf8' })
.execSync('git status --porcelain', {
cwd: path.join(__dirname, '..'),
encoding: 'utf8',
})
.split('\n')
.filter((line) =>
line.match(`^[AM]. packages/fxa-auth-server/${TEMPLATE_DIR}/\\w+`)
line.match(
`^[AM]. packages/fxa-auth-server/lib/senders/emails/templates/\\w+`
)
)
.map((line) => {
const parts = line.split(' ');
Expand Down Expand Up @@ -67,7 +69,7 @@ if (stagedTemplates.length === 0) {
});

fs.writeFileSync(
path.join(`${ROOT_DIR}/${TEMPLATE_DIR}/${VERSIONS_FILE}`),
path.join(__dirname, '..', 'lib/senders/emails/templates/_versions.json'),
JSON.stringify(versions, null, ' ')
);
}
24 changes: 10 additions & 14 deletions packages/fxa-auth-server/scripts/verification-reminders.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,24 +15,20 @@

'use strict';

const ROOT_DIR = '..';
const LIB_DIR = `${ROOT_DIR}/lib`;

const config = require(`${ROOT_DIR}/config`).default.getProperties();
const config = require('../config').default.getProperties();

const { AppError: error } = require('@fxa/accounts/errors');
const log = require(`${LIB_DIR}/log`)(config.log);
const jwt = require(`${LIB_DIR}/oauth/jwt`);
const verificationReminders = require(`${LIB_DIR}/verification-reminders`)(
const log = require('../lib/log')(config.log);
const jwt = require('../lib/oauth/jwt');
const verificationReminders = require('../lib/verification-reminders')(
log,
config
);
const Sentry = require('@sentry/node');

const cadReminders = require(`${LIB_DIR}/cad-reminders`)(config, log);
const subscriptionAccountReminders = require(
`${LIB_DIR}/subscription-account-reminders`
)(log, config);
const cadReminders = require('../lib/cad-reminders')(config, log);
const subscriptionAccountReminders =
require('../lib/subscription-account-reminders')(log, config);

Sentry.init({});
const checkInId = Sentry.captureCheckIn({
Expand Down Expand Up @@ -67,15 +63,15 @@ run()
});

async function run() {
const { createDB } = require(`${LIB_DIR}/db`);
const { createDB } = require('../lib/db');
const [vReminders, saReminders, cReminders, db] = await Promise.all([
verificationReminders.process(),
subscriptionAccountReminders.process(),
cadReminders.process(),
createDB(config, log, {}, {}).connect(config),
]);
const bounces = require(`${LIB_DIR}/bounces`)(config, db);
const Mailer = require(`${LIB_DIR}/senders/email`)(log, config, bounces);
const bounces = require('../lib/bounces')(config, db);
const Mailer = require('../lib/senders/email')(log, config, bounces);

const mailer = new Mailer(config.smtp);

Expand Down
6 changes: 2 additions & 4 deletions packages/fxa-auth-server/test/local/bounces.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,9 @@

'use strict';

const ROOT_DIR = '../..';

const assert = require('assert');
const config = require(`${ROOT_DIR}/config`).default.getProperties();
const createBounces = require(`${ROOT_DIR}/lib/bounces`);
const config = require('../../config').default.getProperties();
const createBounces = require('../../lib/bounces');
const { AppError: error } = require('@fxa/accounts/errors');
const sinon = require('sinon');

Expand Down
5 changes: 2 additions & 3 deletions packages/fxa-auth-server/test/local/cad-reminders.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,14 @@

'use strict';

const ROOT_DIR = '../..';
const REMINDERS = ['first', 'second', 'third'];
const EXPECTED_CREATE_DELETE_RESULT = REMINDERS.reduce((expected, reminder) => {
expected[reminder] = 1;
return expected;
}, {});

const { assert } = require('chai');
const config = require(`${ROOT_DIR}/config`).default.getProperties();
const config = require('../../config').default.getProperties();
const mocks = require('../mocks');

describe('lib/cad-reminders', () => {
Expand Down Expand Up @@ -42,7 +41,7 @@ describe('lib/cad-reminders', () => {
},
mocks.mockLog()
);
cadReminders = require(`${ROOT_DIR}/lib/cad-reminders`)(mockConfig, log);
cadReminders = require(`../../lib/cad-reminders`)(mockConfig, log);
});

afterEach(async () => {
Expand Down
6 changes: 2 additions & 4 deletions packages/fxa-auth-server/test/local/config/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,6 @@
const { assert } = require('chai');
const proxyquire = require('proxyquire');

const ROOT_DIR = '../../..';

describe('Config', () => {
describe('NODE_ENV=prod', () => {
let originalEnv;
Expand All @@ -30,7 +28,7 @@ describe('Config', () => {

it('errors when secret settings have their default values', () => {
assert.throws(() => {
proxyquire(`${ROOT_DIR}/config`, {});
proxyquire(`../../../config`, {});
// eslint-disable-next-line no-useless-escape
}, /Config \'[a-zA-Z._]+\' must be set in production/);
});
Expand All @@ -43,7 +41,7 @@ describe('Config', () => {
'production secret here'
);
assert.doesNotThrow(() => {
proxyquire(`${ROOT_DIR}/config`, {});
proxyquire(`../../../config`, {});
});
});
});
Expand Down
26 changes: 12 additions & 14 deletions packages/fxa-auth-server/test/local/db.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,6 @@

'use strict';

const LIB_DIR = '../../lib';

const { assert } = require('chai');
const mocks = require('../mocks');
const proxyquire = require('proxyquire');
Expand Down Expand Up @@ -38,8 +36,8 @@ describe('db, session tokens expire:', () => {

beforeEach(() => {
log = mocks.mockLog();
tokens = require(`${LIB_DIR}/tokens`)(log, { tokenLifetimes });
const { createDB } = proxyquire(`${LIB_DIR}/db.ts`, {
tokens = require(`../../lib/tokens`)(log, { tokenLifetimes });
const { createDB } = proxyquire(`../../lib/db.ts`, {
'fxa-shared/db': { setupAuthDatabase: () => {} },
'fxa-shared/db/models/auth': models,
});
Expand Down Expand Up @@ -99,8 +97,8 @@ describe('db, session tokens do not expire:', () => {

beforeEach(() => {
log = mocks.mockLog();
tokens = require(`${LIB_DIR}/tokens`)(log, { tokenLifetimes });
const { createDB } = proxyquire(`${LIB_DIR}/db`, {
tokens = require(`../../lib/tokens`)(log, { tokenLifetimes });
const { createDB } = proxyquire(`../../lib/db`, {
'fxa-shared/db': { setupAuthDatabase: () => {} },
'fxa-shared/db/models/auth': models,
});
Expand Down Expand Up @@ -160,8 +158,8 @@ describe('db with redis disabled:', () => {

beforeEach(() => {
log = mocks.mockLog();
tokens = require(`${LIB_DIR}/tokens`)(log, { tokenLifetimes });
const { createDB } = proxyquire(`${LIB_DIR}/db`, {
tokens = require(`../../lib/tokens`)(log, { tokenLifetimes });
const { createDB } = proxyquire(`../../lib/db`, {
'./redis': () => {},
'fxa-shared/db': { setupAuthDatabase: () => {} },
'fxa-shared/db/models/auth': models,
Expand Down Expand Up @@ -219,8 +217,8 @@ describe('redis enabled, token-pruning enabled:', () => {
touchSessionToken: sinon.spy(() => Promise.resolve()),
};
log = mocks.mockLog();
tokens = require(`${LIB_DIR}/tokens`)(log, { tokenLifetimes });
const { createDB } = proxyquire(`${LIB_DIR}/db`, {
tokens = require(`../../lib/tokens`)(log, { tokenLifetimes });
const { createDB } = proxyquire(`../../lib/db`, {
'./redis': (...args) => {
assert.equal(args.length, 2, 'redisPool was passed two arguments');
assert.equal(args[0].foo, 'bar', 'redisPool was passed config');
Expand Down Expand Up @@ -462,8 +460,8 @@ describe('redis enabled, token-pruning disabled:', () => {
pruneSessionTokens: sinon.spy(() => Promise.resolve()),
};
log = mocks.mockLog();
tokens = require(`${LIB_DIR}/tokens`)(log, { tokenLifetimes });
const { createDB } = proxyquire(`${LIB_DIR}/db`, {
tokens = require(`../../lib/tokens`)(log, { tokenLifetimes });
const { createDB } = proxyquire(`../../lib/db`, {
'./redis': (...args) => {
assert.equal(args.length, 2, 'redisPool was passed two arguments');
assert.equal(args[0].foo, 'bar', 'redisPool was passed config');
Expand Down Expand Up @@ -539,7 +537,7 @@ describe('db.deviceFromRefreshTokenId:', () => {

beforeEach(() => {
log = mocks.mockLog();
tokens = require(`${LIB_DIR}/tokens`)(log, { tokenLifetimes });
tokens = require(`../../lib/tokens`)(log, { tokenLifetimes });

// Mock Device model
Device = {
Expand All @@ -563,7 +561,7 @@ describe('db.deviceFromRefreshTokenId:', () => {
}),
};

const { createDB } = proxyquire(`${LIB_DIR}/db.ts`, {
const { createDB } = proxyquire(`../../lib/db.ts`, {
'./features': () => features,
'@fxa/accounts/errors': { AppError: errorMock },
'fxa-shared/connected-services': {
Expand Down
4 changes: 1 addition & 3 deletions packages/fxa-auth-server/test/local/email/bounce.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,8 @@

'use strict';

const ROOT_DIR = '../../..';

const { assert } = require('chai');
const bounces = require(`${ROOT_DIR}/lib/email/bounces`);
const bounces = require('../../../lib/email/bounces');
const { AppError: error } = require('@fxa/accounts/errors');
const { EventEmitter } = require('events');
const { mockLog, mockStatsd } = require('../../mocks');
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,10 @@

'use strict';

const ROOT_DIR = '../../..';

const { assert } = require('chai');
const { AppError: error } = require('@fxa/accounts/errors');
const { mockLog } = require('../../mocks');
const notifications = require(`${ROOT_DIR}/lib/email/notifications`);
const notifications = require('../../../lib/email/notifications');
const sinon = require('sinon');
const { default: Container } = require('typedi');
const { StripeHelper } = require('../../../lib/payments/stripe');
Expand Down
6 changes: 2 additions & 4 deletions packages/fxa-auth-server/test/local/email/utils.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,6 @@

'use strict';

const ROOT_DIR = '../../..';

const { assert } = require('chai');
const { mockLog } = require('../../mocks');
const proxyquire = require('proxyquire');
Expand All @@ -14,7 +12,7 @@ const { default: Container } = require('typedi');
const { AccountEventsManager } = require('../../../lib/account-events');

const amplitude = sinon.spy();
const emailHelpers = proxyquire(`${ROOT_DIR}/lib/email/utils/helpers`, {
const emailHelpers = proxyquire('../../../lib/email/utils/helpers', {
'../../metrics/amplitude': () => amplitude,
});

Expand Down Expand Up @@ -345,7 +343,7 @@ describe('email utils helpers', () => {
beforeEach(() => {
mockAccountEventsManager = {
recordEmailEvent: sinon.stub(),
recordSecurityEvent: sinon.stub().resolves({})
recordSecurityEvent: sinon.stub().resolves({}),
};
Container.set(AccountEventsManager, mockAccountEventsManager);
});
Expand Down
Loading