Ghost/test/unit/services/themes/preview_spec.js

56 lines
1.6 KiB
JavaScript
Raw Normal View History

const should = require('should');
const sinon = require('sinon');
const preview = require('../../../../core/frontend/services/themes/preview');
describe('Theme Preview', function () {
let req, previewString = '';
before(function () {
req = {
header: () => {
return previewString;
}
};
});
it('can handle empty strings', function () {
previewString = 'logo=';
let siteData = preview.handle(req, {});
siteData.should.be.an.Object().with.properties('logo');
should(siteData.logo).be.null();
});
it('can handle nulls', function () {
previewString = 'cover=null';
let siteData = preview.handle(req, {});
siteData.should.be.an.Object().with.properties('cover_image');
should(siteData.cover_image).be.null();
});
it('can handle URIEncoded accent colors', function () {
previewString = 'c=%23f02d2d';
let siteData = preview.handle(req, {});
siteData.should.be.an.Object().with.properties('accent_color');
should(siteData.accent_color).eql('#f02d2d');
});
it('can handle multiple values', function () {
previewString = 'c=%23f02d2d&icon=&logo=&cover=null';
let siteData = preview.handle(req, {});
siteData.should.be.an.Object().with.properties('accent_color', 'icon', 'logo', 'cover_image');
should(siteData.accent_color).eql('#f02d2d');
should(siteData.icon).be.null();
should(siteData.logo).be.null();
should(siteData.cover_image).be.null();
});
});