mirror of
https://github.com/TryGhost/Ghost.git
synced 2025-02-10 23:36:14 -05:00
71 lines
2.3 KiB
JavaScript
71 lines
2.3 KiB
JavaScript
|
const {doProductAndNewsletter} = 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 productEditStub = sinon.stub().resolves();
|
||
|
const newsletterEditStub = sinon.stub().resolves();
|
||
|
const productBrowseStub = sinon.stub().resolves({
|
||
|
products: [
|
||
|
{
|
||
|
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 productsApi = {
|
||
|
browse: productBrowseStub,
|
||
|
edit: productEditStub
|
||
|
};
|
||
|
let newslettersApi = {
|
||
|
browse: newsletterBrowseStub,
|
||
|
edit: newsletterEditStub
|
||
|
};
|
||
|
const api = {
|
||
|
products: productsApi,
|
||
|
newsletters: newslettersApi
|
||
|
};
|
||
|
let data = {
|
||
|
user: {
|
||
|
id: 'user-1'
|
||
|
},
|
||
|
userData: {
|
||
|
blogTitle: 'Test Blog'
|
||
|
}
|
||
|
};
|
||
|
await doProductAndNewsletter(data, api);
|
||
|
sinon.assert.calledOnceWithExactly(
|
||
|
productEditStub,
|
||
|
{products: [{name: 'Test Blog'}]},
|
||
|
{context: {user: 'user-1'}, id: 'product-2'}
|
||
|
);
|
||
|
sinon.assert.calledOnceWithExactly(
|
||
|
newsletterEditStub,
|
||
|
{newsletters: [{name: 'Test Blog', sender_name: 'Test Blog'}]},
|
||
|
{context: {user: 'user-1'}, id: 'newsletter-2'}
|
||
|
);
|
||
|
});
|
||
|
});
|
||
|
});
|