Ghost/ghost/core/test/e2e-api/content/offers.test.js
Daniel Lockyer 9ba251238a Added Content-Version header to all API requests
refs https://github.com/TryGhost/Team/issues/2400

- we've deemed it useful to start to return `Content-Version` for all
  API requests, because it becomes useful to know which version of Ghost
  a response has come from in logs
- this should also help us detect Admin<->Ghost API mismatches, which
  was the cause of a bug recently (ref'd issue)
2023-01-18 08:38:07 +01:00

40 lines
1.3 KiB
JavaScript

const {agentProvider, fixtureManager, matchers} = require('../../utils/e2e-framework');
const testUtils = require('../../utils');
const models = require('../../../core/server/models');
const offerSnapshot = {
id: matchers.anyObjectId,
tier: {
id: matchers.anyObjectId
}
};
describe('Offers Content API', function () {
let agent;
before(async function () {
agent = await agentProvider.getContentAPIAgent();
await fixtureManager.init('api_keys', 'members');
await agent.authenticate();
});
it('Can read offer details from id', async function () {
const productModel = await models.Product.findOne({type: 'paid'}, testUtils.context.internal);
const offerData = testUtils.DataGenerator.forKnex.createOffer({
product_id: productModel.get('id')
});
const offerModel = await models.Offer.add(offerData, {context: {internal: true}});
await agent.get(`/offers/${offerModel.get('id')}`)
.expectStatus(200)
.matchHeaderSnapshot({
'content-version': matchers.anyContentVersion,
etag: matchers.anyEtag
})
.matchBodySnapshot({
offers: Array(1).fill(offerSnapshot)
});
});
});