77 lines
2.4 KiB
JavaScript
77 lines
2.4 KiB
JavaScript
|
const should = require('should');
|
||
|
const supertest = require('supertest');
|
||
|
const path = require('path');
|
||
|
const moment = require('moment');
|
||
|
const testUtils = require('../utils');
|
||
|
const configUtils = require('../utils/configUtils');
|
||
|
|
||
|
function assertCorrectFrontendHeaders(res) {
|
||
|
should.not.exist(res.headers['x-cache-invalidate']);
|
||
|
should.not.exist(res.headers['X-CSRF-Token']);
|
||
|
should.not.exist(res.headers['set-cookie']);
|
||
|
should.exist(res.headers.date);
|
||
|
}
|
||
|
|
||
|
describe('Custom Frontend routing', function () {
|
||
|
let request;
|
||
|
|
||
|
before(async function () {
|
||
|
const routesFilePath = path.join(configUtils.config.get('paths:appRoot'), 'test/utils/fixtures/settings/newroutes.yaml');
|
||
|
|
||
|
await testUtils.startGhost({
|
||
|
forceStart: true,
|
||
|
routesFilePath
|
||
|
});
|
||
|
request = supertest.agent(configUtils.config.get('url'));
|
||
|
});
|
||
|
|
||
|
after(function () {
|
||
|
return testUtils.stopGhost();
|
||
|
});
|
||
|
|
||
|
it('serve welcome post with old permalink structure', function () {
|
||
|
return request.get('/welcome/')
|
||
|
.expect(404)
|
||
|
.expect(assertCorrectFrontendHeaders);
|
||
|
});
|
||
|
|
||
|
it('serve welcome post with new permalink structure', function () {
|
||
|
const year = moment().year();
|
||
|
return request.get(`/blog/${year}/welcome/`)
|
||
|
.expect(200)
|
||
|
.expect(assertCorrectFrontendHeaders);
|
||
|
});
|
||
|
|
||
|
it('serve welcome post with new permalink structure and old date', function () {
|
||
|
return request.get('/blog/2016/welcome/')
|
||
|
.expect(301)
|
||
|
.expect(assertCorrectFrontendHeaders);
|
||
|
});
|
||
|
|
||
|
it('serve rss', function () {
|
||
|
return request.get('/blog/rss/')
|
||
|
.expect(200)
|
||
|
.expect(assertCorrectFrontendHeaders)
|
||
|
.then(function (res) {
|
||
|
const content = res.text;
|
||
|
const todayMoment = moment();
|
||
|
const year = todayMoment.format('YYYY');
|
||
|
const postLink = `/blog/${year}/welcome/`;
|
||
|
|
||
|
content.indexOf(postLink).should.be.above(0);
|
||
|
});
|
||
|
});
|
||
|
|
||
|
it('serve collection index', function () {
|
||
|
return request.get('/blog/')
|
||
|
.expect(200)
|
||
|
.expect(assertCorrectFrontendHeaders);
|
||
|
});
|
||
|
|
||
|
it('serve tag', function () {
|
||
|
return request.get('/category/getting-started/')
|
||
|
.expect(200)
|
||
|
.expect(assertCorrectFrontendHeaders);
|
||
|
});
|
||
|
});
|