Ghost/test/unit/services/routing/RSSRouter_spec.js
Hannah Wolfe 829e8ed010 Expanded requires of lib/common i18n and events
- Having these as destructured from the same package is hindering refactoring now
- Events should really only ever be used server-side
- i18n should be a shared module for now so it can be used everywhere until we figure out something better
- Having them seperate also allows us to lint them properly
2021-05-03 17:14:52 +01:00

62 lines
2.1 KiB
JavaScript

const should = require('should');
const sinon = require('sinon');
const configUtils = require('../../../utils/configUtils');
const events = require('../../../../core/server/lib/common/events');
const controllers = require('../../../../core/frontend/services/routing/controllers');
const RSSRouter = require('../../../../core/frontend/services/routing/RSSRouter');
const urlUtils = require('../../../../core/shared/url-utils');
describe('UNIT - services/routing/RSSRouter', function () {
describe('instantiate', function () {
beforeEach(function () {
sinon.stub(events, 'emit');
sinon.stub(events, 'on');
sinon.spy(RSSRouter.prototype, 'mountRoute');
sinon.spy(RSSRouter.prototype, 'mountRouter');
sinon.stub(urlUtils, 'urlJoin');
});
afterEach(function () {
sinon.restore();
configUtils.restore();
});
it('default', function () {
const rssRouter = new RSSRouter();
should.exist(rssRouter.router);
rssRouter.route.value.should.eql('/rss/');
events.emit.calledOnce.should.be.false();
events.on.calledOnce.should.be.false();
rssRouter.mountRoute.callCount.should.eql(2);
rssRouter.mountRoute.args[0][0].should.eql('/rss/');
rssRouter.mountRoute.args[0][1].should.eql(controllers.rss);
rssRouter.mountRoute.args[1][0].should.eql('/feed/');
});
it('subdirectory is enabled', function () {
configUtils.set('url', 'http://localhost:22222/blog/');
const rssRouter = new RSSRouter();
should.exist(rssRouter.router);
rssRouter.route.value.should.eql('/rss/');
events.emit.calledOnce.should.be.false();
events.on.calledOnce.should.be.false();
rssRouter.mountRoute.callCount.should.eql(2);
rssRouter.mountRoute.args[0][0].should.eql('/rss/');
rssRouter.mountRoute.args[0][1].should.eql(controllers.rss);
rssRouter.mountRoute.args[1][0].should.eql('/feed/');
});
});
});