/* eslint-disable no-global-assign */ require = require('esm')( module /* , options */ ); /* eslint-disable-line no-global-assign */ const { History } = require('../../src/core/router/history/base'); const { expect } = require('chai'); class MockHistory extends History { parse(path) { return { path }; } } describe('router/history/base', function() { describe('relativePath true', function() { let history; beforeEach(function() { history = new MockHistory({ relativePath: true }); }); it('toURL', function() { // WHEN const url = history.toURL('guide.md', {}, '/zh-ch/'); // THEN expect(url).equal('/zh-ch/guide'); }); it('toURL with double dot', function() { // WHEN const url = history.toURL('../README.md', {}, '/zh-ch/'); // THEN expect(url).equal('/README'); }); it('toURL child path', function() { // WHEN const url = history.toURL('config/example.md', {}, '/zh-ch/'); // THEN expect(url).equal('/zh-ch/config/example'); }); it('toURL absolute path', function() { // WHEN const url = history.toURL('/README', {}, '/zh-ch/'); // THEN expect(url).equal('/README'); }); }); it('toURL without relative path', function() { const history = new MockHistory({ relativePath: false }); // WHEN const url = history.toURL('README', {}, '/zh-ch/'); // THEN expect(url).equal('/README'); }); });