Ghost/ghost/config-url-helpers/test/config-url-helpers.test.js
2021-06-17 13:53:09 +01:00

122 lines
3.7 KiB
JavaScript

// Switch these lines once there are useful utils
// const testUtils = require('./utils');
require('./utils');
const sinon = require('sinon');
const configUrlHelpers = require('../');
let nconf;
const fakeConfig = {
url: '',
adminUrl: null
};
describe('Config URL Helpers', function () {
before(function () {
const configFaker = (arg) => {
if (arg === 'url') {
return fakeConfig.url;
} else if (arg === 'admin:url') {
return fakeConfig.adminUrl;
}
};
nconf = {
get: sinon.stub().callsFake(configFaker)
};
configUrlHelpers.bindAll(nconf);
});
describe('getSubdir', function () {
it('url has no subdir', function () {
fakeConfig.url = 'http://my-ghost-blog.com/';
nconf.getSubdir().should.eql('');
});
it('url has subdir', function () {
fakeConfig.url = 'http://my-ghost-blog.com/blog';
nconf.getSubdir().should.eql('/blog');
fakeConfig.url = 'http://my-ghost-blog.com/blog/';
nconf.getSubdir().should.eql('/blog');
fakeConfig.url = 'http://my-ghost-blog.com/my/blog';
nconf.getSubdir().should.eql('/my/blog');
fakeConfig.url = 'http://my-ghost-blog.com/my/blog/';
nconf.getSubdir().should.eql('/my/blog');
});
it('should not return a slash for subdir', function () {
fakeConfig.url = 'http://my-ghost-blog.com';
nconf.getSubdir().should.eql('');
fakeConfig.url = 'http://my-ghost-blog.com/';
nconf.getSubdir().should.eql('');
});
});
describe('getSiteUrl', function () {
it('returns config url', function () {
fakeConfig.url = 'http://example.com/';
nconf.getSiteUrl().should.eql('http://example.com/');
});
it('adds trailing slash', function () {
fakeConfig.url = 'http://example.com';
nconf.getSiteUrl().should.eql('http://example.com/');
});
it('returns https if secure=true', function () {
fakeConfig.url = 'http://example.com/';
nconf.getSiteUrl(true).should.eql('https://example.com/');
});
});
describe('getAdminUrl', function () {
it('returns undefinied if no admin URL is set', function () {
should.not.exist(nconf.getAdminUrl());
});
it('returns config url', function () {
fakeConfig.adminUrl = 'http://admin.example.com/';
nconf.getAdminUrl().should.eql('http://admin.example.com/');
});
it('adds trailing slash', function () {
fakeConfig.adminUrl = 'http://admin.example.com';
nconf.getAdminUrl().should.eql('http://admin.example.com/');
});
it('returns with subdirectory correctly if not provided', function () {
fakeConfig.url = 'http://example.com/blog/';
fakeConfig.adminUrl = 'http://admin.example.com';
nconf.getAdminUrl().should.eql('http://admin.example.com/blog/');
});
it('returns with subdirectory correctly if provided with slash', function () {
fakeConfig.url = 'http://example.com/blog/';
fakeConfig.adminUrl = 'http://admin.example.com/blog/';
nconf.getAdminUrl().should.eql('http://admin.example.com/blog/');
});
it('returns with subdirectory correctly if provided without slash', function () {
fakeConfig.url = 'http://example.com/blog/';
fakeConfig.adminUrl = 'http://admin.example.com/blog';
nconf.getAdminUrl().should.eql('http://admin.example.com/blog/');
});
});
});