10c214c148
refs https://github.com/TryGhost/Team/issues/1189 Support for AMP is slowly in decline, and makes developing new cards trickier, since AMP no longer has an effect of SEO we're going to disable it by default as a first step toward moving away from it. Co-authored-by: Thibaut Patel <thibaut@ghost.org>
130 lines
4.2 KiB
JavaScript
130 lines
4.2 KiB
JavaScript
const should = require('should');
|
|
const sinon = require('sinon');
|
|
const supertest = require('supertest');
|
|
const testUtils = require('../utils');
|
|
const configUtils = require('../utils/configUtils');
|
|
const urlUtils = require('../utils/urlUtils');
|
|
const settings = require('../../core/shared/settings-cache');
|
|
|
|
let request;
|
|
|
|
/**
|
|
* This file contains extra e2e tests for complex URL configurations
|
|
* Examples of e2e tests that belong here:
|
|
* - subdirectories
|
|
* - https
|
|
* - (maybe) admin + frontend URL are different
|
|
* - etc
|
|
*/
|
|
|
|
describe('Advanced URL Configurations', function () {
|
|
describe('Subdirectory config', function () {
|
|
before(async function () {
|
|
configUtils.set('url', 'http://localhost/blog/');
|
|
urlUtils.stubUrlUtilsFromConfig();
|
|
|
|
await testUtils.startGhost({forceStart: true});
|
|
|
|
request = supertest.agent(configUtils.config.get('server:host') + ':' + configUtils.config.get('server:port'));
|
|
});
|
|
|
|
after(function () {
|
|
configUtils.restore();
|
|
urlUtils.restore();
|
|
});
|
|
|
|
afterEach(function () {
|
|
sinon.restore();
|
|
});
|
|
|
|
it('http://localhost should 404', async function () {
|
|
await request.get('/')
|
|
.expect(404);
|
|
});
|
|
|
|
it('/blog should 301 to /blog/', async function () {
|
|
await request.get('/blog')
|
|
.expect(301)
|
|
.expect('Location', '/blog/');
|
|
});
|
|
|
|
it('/blog/ should 200', async function () {
|
|
await request.get('/blog/')
|
|
.expect(200);
|
|
});
|
|
|
|
it('/blog/welcome/ should 200', async function () {
|
|
await request.get('/blog/welcome/')
|
|
.expect(200);
|
|
});
|
|
|
|
it('/welcome/ should 404', async function () {
|
|
await request.get('/welcome/')
|
|
.expect(404);
|
|
});
|
|
|
|
it('/blog/tag/getting-started/ should 200', async function () {
|
|
await request.get('/blog/tag/getting-started/')
|
|
.expect(200);
|
|
});
|
|
|
|
it('/tag/getting-started/ should 404', async function () {
|
|
await request.get('/tag/getting-started/')
|
|
.expect(404);
|
|
});
|
|
|
|
it('/blog/welcome/amp/ should 200 if amp is enabled', async function () {
|
|
sinon.stub(settings, 'get').callsFake(function (key, ...rest) {
|
|
if (key === 'amp') {
|
|
return true;
|
|
}
|
|
return settings.get.wrappedMethod.call(settings, key, ...rest);
|
|
});
|
|
await request.get('/blog/welcome/amp/')
|
|
.expect(200);
|
|
});
|
|
|
|
it('/blog/welcome/amp/ should 301', async function () {
|
|
await request.get('/blog/welcome/amp/')
|
|
.expect(301);
|
|
});
|
|
|
|
it('/welcome/amp/ should 404', async function () {
|
|
await request.get('/welcome/amp/')
|
|
.expect(404);
|
|
});
|
|
});
|
|
|
|
// we'll use X-Forwarded-Proto: https to simulate an 'https://' request behind a proxy
|
|
describe('HTTPS', function () {
|
|
before(async function () {
|
|
configUtils.set('url', 'http://localhost:2370/');
|
|
urlUtils.stubUrlUtilsFromConfig();
|
|
|
|
await testUtils.startGhost({forceStart: true});
|
|
|
|
request = supertest.agent(configUtils.config.get('server:host') + ':' + configUtils.config.get('server:port'));
|
|
});
|
|
|
|
after(function () {
|
|
configUtils.restore();
|
|
urlUtils.restore();
|
|
});
|
|
|
|
it('should set links to url over non-HTTPS', async function () {
|
|
await request.get('/')
|
|
.expect(200)
|
|
.expect(/<link rel="canonical" href="http:\/\/localhost:2370\/" \/\>/)
|
|
.expect(/<a href="http:\/\/localhost:2370">Ghost<\/a\>/);
|
|
});
|
|
|
|
it('should set links over HTTPS besides canonical', async function () {
|
|
await request.get('/')
|
|
.set('X-Forwarded-Proto', 'https')
|
|
.expect(200)
|
|
.expect(/<link rel="canonical" href="http:\/\/localhost:2370\/" \/\>/)
|
|
.expect(/<a href="https:\/\/localhost:2370">Ghost<\/a\>/);
|
|
});
|
|
});
|
|
});
|