From 93b22af899be6423287a495e98c42c9a0a17b082 Mon Sep 17 00:00:00 2001 From: Nazar Gargol Date: Fri, 8 Nov 2019 17:11:54 +0700 Subject: [PATCH] Added default stats object to email model - The serialized object is meant to serve as a placeholder for future email related stats pooled from mail service provider --- core/server/models/email.js | 10 +++++++++- core/test/acceptance/admin/emails_spec.js | 9 +++++++++ core/test/utils/fixtures/data-generator.js | 1 - 3 files changed, 18 insertions(+), 2 deletions(-) diff --git a/core/server/models/email.js b/core/server/models/email.js index 9452d10085..69950f7307 100644 --- a/core/server/models/email.js +++ b/core/server/models/email.js @@ -7,7 +7,15 @@ const Email = ghostBookshelf.Model.extend({ defaults: function defaults() { return { uuid: uuid.v4(), - status: 'pending' + status: 'pending', + stats: JSON.stringify({ + delivered: 0, + failed: 0, + opened: 0, + clicked: 0, + unsubscribed: 0, + complaints: 0 + }) }; }, diff --git a/core/test/acceptance/admin/emails_spec.js b/core/test/acceptance/admin/emails_spec.js index 2c4b16a570..282f9c7daf 100644 --- a/core/test/acceptance/admin/emails_spec.js +++ b/core/test/acceptance/admin/emails_spec.js @@ -33,6 +33,15 @@ describe('Email API', function () { should.exist(jsonResponse.emails); jsonResponse.emails.should.have.length(1); localUtils.API.checkResponse(jsonResponse.emails[0], 'email'); + + const stats = JSON.parse(jsonResponse.emails[0].stats); + + should.exist(stats.delivered); + should.exist(stats.failed); + should.exist(stats.opened); + should.exist(stats.clicked); + should.exist(stats.unsubscribed); + should.exist(stats.complaints); }); }); }); diff --git a/core/test/utils/fixtures/data-generator.js b/core/test/utils/fixtures/data-generator.js index a1fe3f4b51..c98954221e 100644 --- a/core/test/utils/fixtures/data-generator.js +++ b/core/test/utils/fixtures/data-generator.js @@ -425,7 +425,6 @@ DataGenerator.Content = { id: ObjectId.generate(), uuid: '6b6afda6-4b5e-4893-bff6-f16859e8349a', status: 'submitted', - stats: '', email_count: 2, subject: 'You got mailed!', html: '

Look! I\'m an email

',