0
Fork 0
mirror of https://github.com/TryGhost/Ghost.git synced 2025-03-11 02:12:21 -05:00

Cleaned up EmailEventStorage tests

This ensures that services aren't required before boot, so that they are
initialised in the correct order.
This commit is contained in:
Fabien "egg" O'Carroll 2022-12-05 14:14:59 +07:00 committed by Fabien 'egg' O'Carroll
parent 9736d942e1
commit 5749a17910

View file

@ -1,14 +1,11 @@
const sinon = require('sinon'); const sinon = require('sinon');
const {agentProvider, fixtureManager, sleep} = require('../../../utils/e2e-framework'); const {agentProvider, fixtureManager, sleep} = require('../../../utils/e2e-framework');
const assert = require('assert'); const assert = require('assert');
const models = require('../../../../core/server/models');
const domainEvents = require('@tryghost/domain-events'); const domainEvents = require('@tryghost/domain-events');
const MailgunClient = require('@tryghost/mailgun-client'); const MailgunClient = require('@tryghost/mailgun-client');
const {run} = require('../../../../core/server/services/email-analytics/jobs/fetch-latest/run.js');
const membersService = require('../../../../core/server/services/members');
const {EmailDeliveredEvent} = require('@tryghost/email-events'); const {EmailDeliveredEvent} = require('@tryghost/email-events');
async function resetFailures(emailId) { async function resetFailures(models, emailId) {
await models.EmailRecipientFailure.destroy({ await models.EmailRecipientFailure.destroy({
destroyBy: { destroyBy: {
email_id: emailId email_id: emailId
@ -22,13 +19,19 @@ describe('EmailEventStorage', function () {
let agent; let agent;
let events = []; let events = [];
let jobsService; let jobsService;
let models;
let run;
let membersService;
before(async function () { before(async function () {
agent = await agentProvider.getAdminAPIAgent(); agent = await agentProvider.getAdminAPIAgent();
await fixtureManager.init('newsletters', 'members:newsletters', 'members:emails'); await fixtureManager.init('newsletters', 'members:newsletters', 'members:emails');
await agent.loginAsOwner(); await agent.loginAsOwner();
// Only create reference to jobsService after Ghost boot // Only reference services after Ghost boot
models = require('../../../../core/server/models');
run = require('../../../../core/server/services/email-analytics/jobs/fetch-latest/run.js').run;
membersService = require('../../../../core/server/services/members');
jobsService = require('../../../../core/server/services/jobs'); jobsService = require('../../../../core/server/services/jobs');
sinon.stub(MailgunClient.prototype, 'fetchEvents').callsFake(async function (_, batchHandler) { sinon.stub(MailgunClient.prototype, 'fetchEvents').callsFake(async function (_, batchHandler) {
@ -405,7 +408,7 @@ describe('EmailEventStorage', function () {
await models.EmailRecipient.edit({failed_at: null}, { await models.EmailRecipient.edit({failed_at: null}, {
id: emailRecipient.id id: emailRecipient.id
}); });
await resetFailures(emailId); await resetFailures(models, emailId);
events = [{ events = [{
event: 'failed', event: 'failed',