From b226065c04ce2a0d33e44a215df943f5d3eba233 Mon Sep 17 00:00:00 2001 From: Daniel Lockyer Date: Thu, 11 Aug 2022 09:01:26 +0200 Subject: [PATCH] Added mailgun-client test to ensure config values are prioritised over settings - this is the current functionality of the code, as it has always been, but this test ensures we prioritise the values in the config over those in settings --- .../test/mailgun-client.test.js | 36 +++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/ghost/mailgun-client/test/mailgun-client.test.js b/ghost/mailgun-client/test/mailgun-client.test.js index c3fbe5496b..b22e0c5046 100644 --- a/ghost/mailgun-client/test/mailgun-client.test.js +++ b/ghost/mailgun-client/test/mailgun-client.test.js @@ -87,6 +87,42 @@ describe('MailgunClient', function () { assert.equal(eventsMock2.isDone(), true); }); + it('prioritises config values over settings', async function () { + const configStub = sinon.stub(config, 'get'); + configStub.withArgs('bulkEmail').returns({ + mailgun: { + apiKey: 'apiKey', + domain: 'configdomain.com', + baseUrl: 'https://configapi.com/v3' + } + }); + + const settingsStub = sinon.stub(settings, 'get'); + settingsStub.withArgs('mailgun_api_key').returns('settingsApiKey'); + settingsStub.withArgs('mailgun_domain').returns('settingsdomain.com'); + settingsStub.withArgs('mailgun_base_url').returns('https://settingsapi.com/v3'); + + const configApiMock = nock('https://configapi.com') + .get('/v3/configdomain.com/events') + .query(MAILGUN_OPTIONS) + .reply(200, {'Content-Type': 'application/json'}, { + items: [] + }); + + const settingsApiMock = nock('https://settingsapi.com') + .get('/v3/settingsdomain.com/events') + .query(MAILGUN_OPTIONS) + .reply(200, {'Content-Type': 'application/json'}, { + items: [] + }); + + const mailgunClient = new MailgunClient({config, settings}); + await mailgunClient.fetchEvents(MAILGUN_OPTIONS, () => {}); + + assert.equal(configApiMock.isDone(), true); + assert.equal(settingsApiMock.isDone(), false); + }); + describe('send()', function () { it('does not send if not configured', async function () { const mailgunClient = new MailgunClient({config, settings});