3 const assert
= require('node:assert');
4 const Helpers
= require('../../../lib/template/helpers');
6 describe('Template Helpers', function () {
7 describe('sessionNavLinks', function () {
8 let pagePathLevel
, ctx
, options
;
9 beforeEach(function () {
13 authenticatedIdentifier: 'username',
18 it('adds nav links', function () {
19 Helpers
.sessionNavLinks(pagePathLevel
, ctx
, options
);
20 assert
.strictEqual(options
.navLinks
.length
, 2);
22 it('extends nav links', function () {
23 options
.navLinks
= [ {} ];
24 Helpers
.sessionNavLinks(pagePathLevel
, ctx
, options
);
25 assert
.strictEqual(options
.navLinks
.length
, 3);
27 it('add login link if no user', function () {
28 delete ctx
.session
.authenticatedIdentifier
;
29 Helpers
.sessionNavLinks(pagePathLevel
, ctx
, options
);
30 assert
.strictEqual(options
.navLinks
.length
, 1);
32 it('adds nav links for profile', function () {
33 delete ctx
.session
.authenticatedIdentifier
;
34 ctx
.session
.authenticatedProfile
= 'https://example.com/';
35 Helpers
.sessionNavLinks(pagePathLevel
, ctx
, options
);
36 assert
.strictEqual(options
.navLinks
.length
, 2);
38 it('covers logout redirect', function () {
39 ctx
.url
= '../relative';
40 Helpers
.sessionNavLinks(pagePathLevel
, ctx
, options
);
41 assert
.strictEqual(options
.navLinks
.length
, 2);
43 it('covers page depth', function () {
45 Helpers
.sessionNavLinks(pagePathLevel
, ctx
, options
);
46 assert
.strictEqual(options
.navLinks
.length
, 2);
48 it('elides account link on account page', function () {
49 options
.pageIdentifier
= 'account';
50 Helpers
.sessionNavLinks(pagePathLevel
, ctx
, options
);
51 assert
.strictEqual(options
.navLinks
.length
, 1);
53 }); // sessionNavLinks
54 }); // Template Helpers