0
Fork 0
mirror of https://github.com/TryGhost/Ghost.git synced 2025-02-17 23:44:39 -05:00
ghost/test/unit/api/canary/utils/serializers/output/preview.test.js
Hannah Wolfe f08a55c21f
Renamed tests to .test.js & updated commands
refs: https://github.com/TryGhost/Team/issues/856
refs: https://github.com/TryGhost/Team/issues/756

- The .test.js extension is better than _spec.js as it's more obvious that it's an extension
- It also meaans we can use the --extension parameter in mocha, which should result in a better default behaviour for `yarn test`
- It also highlights that some of our tests were named incorrectly and were not (and still will not be) run (see https://github.com/TryGhost/Team/issues/856)
- Note: even with this change, `yarn test` is throwing errors, I believe because of this issue https://github.com/TryGhost/Team/issues/756
2021-07-06 20:45:01 +01:00

45 lines
1.4 KiB
JavaScript

const should = require('should');
const sinon = require('sinon');
const testUtils = require('../../../../../../utils');
const mapper = require('../../../../../../../core/server/api/canary/utils/serializers/output/utils/mapper');
const serializers = require('../../../../../../../core/server/api/canary/utils/serializers');
describe('Unit: canary/utils/serializers/output/preview', function () {
let pageModel;
beforeEach(function () {
pageModel = (data) => {
return Object.assign(data, {toJSON: sinon.stub().returns(data), get: key => (key === 'type' ? 'page' : '')});
};
sinon.stub(mapper, 'mapPost').returns({});
});
afterEach(function () {
sinon.restore();
});
it('calls the mapper', function () {
const apiConfig = {};
const frame = {
options: {
withRelated: ['tags', 'authors'],
context: {
private: false
}
}
};
const ctrlResponse = pageModel(testUtils.DataGenerator.forKnex.createPost({
id: 'id1',
type: 'page'
}));
serializers.output.preview.all(ctrlResponse, apiConfig, frame);
mapper.mapPost.callCount.should.equal(1);
mapper.mapPost.getCall(0).args.should.eql([ctrlResponse, frame]);
frame.response.preview[0].page.should.equal(true);
});
});