0
Fork 0
mirror of https://github.com/TryGhost/Ghost.git synced 2025-02-10 23:36:14 -05:00
ghost/test/unit/server/services/auth/setup.test.js

71 lines
2.3 KiB
JavaScript
Raw Normal View History

const {doProductAndNewsletter: doTierAndNewsletter} = require('../../../../../core/server/services/auth/setup');
const sinon = require('sinon');
describe('Auth Service: setup', function () {
afterEach(function () {
sinon.restore();
});
describe('doProductAndNewsletter', function () {
it('updates default product and newsletter name', async function () {
const tierEditStub = sinon.stub().resolves();
const newsletterEditStub = sinon.stub().resolves();
const tierBrowseStub = sinon.stub().resolves({
tiers: [
{
id: 'product-1',
slug: 'free'
},
{
id: 'product-2',
slug: 'default-product'
}
]
});
const newsletterBrowseStub = sinon.stub().resolves({
newsletters: [
{
id: 'newsletter-1',
slug: 'fake-newsletter'
},
{
id: 'newsletter-2',
slug: 'default-newsletter'
}
]
});
let tiersAPI = {
browse: tierBrowseStub,
edit: tierEditStub
};
let newslettersApi = {
browse: newsletterBrowseStub,
edit: newsletterEditStub
};
const api = {
tiers: tiersAPI,
newsletters: newslettersApi
};
let data = {
user: {
id: 'user-1'
},
userData: {
blogTitle: 'Test Blog'
}
};
await doTierAndNewsletter(data, api);
sinon.assert.calledOnceWithExactly(
tierEditStub,
{tiers: [{name: 'Test Blog'}]},
{context: {user: 'user-1'}, id: 'product-2'}
);
sinon.assert.calledOnceWithExactly(
newsletterEditStub,
{newsletters: [{name: 'Test Blog'}]},
{context: {user: 'user-1'}, id: 'newsletter-2'}
);
});
});
});