Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
window.pageRenderers.spa.init = function init() {
const appInstance = new App();
appInstance.setLinkSelector("a.js-spa");
appInstance.setFormSelector("");
appInstance.addSurfaces(["left-menu-data", "ssm-box", "page-body"])
appInstance.addRoutes([{
path: /.*/,
handler: function (route, a, b) {
const screen = new HtmlScreen();
screen.setCacheable(false);
return screen;
}
}]);
appInstance.on('endNavigate', function(navigation) {
// workaround to redirect to the login page when there is no session:
// More info: https://github.com/liferay/senna.js/issues/302
const urlPath = appInstance.browserPathBeforeNavigate;
it('should load path url if initial state is null and stores as router lastLoadedState as Json', function(done) {
var stub = sinon.stub(RequestScreen.prototype, 'load', function() {
return '{"sentinel":true}';
});
var router = new Router({
path: '/path',
component: CustomComponent
});
var screen = new Router.defaultScreen(router);
screen.load('/path').then(() => {
assert.deepEqual({
sentinel: true
}, screen.maybeParseLastLoadedStateAsJson());
assert.strictEqual(1, RequestScreen.prototype.load.callCount);
router.dispose();
stub.restore();
done();
});
it('should load path url if initial state is null and stores as router lastLoadedState', function(done) {
var stub = sinon.stub(RequestScreen.prototype, 'load', function() {
return 'sentinel';
});
var router = new Router({
path: '/path',
component: CustomComponent
});
var screen = new Router.defaultScreen(router);
screen.load('/path').then(() => {
assert.strictEqual('sentinel', router.lastLoadedState);
assert.strictEqual(1, RequestScreen.prototype.load.callCount);
router.dispose();
stub.restore();
done();
});
});
static router() {
if (!Router.routerInstance) {
Router.routerInstance = new App();
}
return Router.routerInstance;
}
handler: function (route, a, b) {
const screen = new HtmlScreen();
screen.setCacheable(false);
return screen;
}
}]);
created() {
this.route = new Route(this.path, () => new Router.defaultScreen(this));
this.route.router = this;
Router.router().addRoutes(this.route);
}