UNPKG

auto-cms-server

Version:

Auto turn any webpage into editable CMS without coding.

74 lines (73 loc) 3.38 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const chai_1 = require("chai"); const file_1 = require("./file"); const path_1 = require("path"); let site_dir = (0, path_1.resolve)('test-site'); describe('resolvePathname()', () => { it('should reject if the path is out of site directory', () => { var out = (0, file_1.resolvePathname)({ site_dir, pathname: '/../file' }); (0, chai_1.expect)(out).to.deep.equals({ error: 'resolved pathname is out of the site directory', }); }); it('should reject if the pathname is .env files', () => { var out = (0, file_1.resolvePathname)({ site_dir, pathname: '/.env' }); (0, chai_1.expect)(out).to.deep.equals({ error: 'resolved pathname is forbidden', }); var out = (0, file_1.resolvePathname)({ site_dir, pathname: '/.env.docker' }); (0, chai_1.expect)(out).to.deep.equals({ error: 'resolved pathname is forbidden', }); var out = (0, file_1.resolvePathname)({ site_dir, pathname: '/docker.env' }); (0, chai_1.expect)(out).to.deep.equals({ error: 'resolved pathname is forbidden', }); }); it('should preserve .html file', () => { var out = (0, file_1.resolvePathname)({ site_dir, pathname: '/file3.html' }); (0, chai_1.expect)(out).to.deep.equals({ file: (0, path_1.resolve)((0, path_1.join)(site_dir, 'file3.html')), exists: true, }); out = (0, file_1.resolvePathname)({ site_dir, pathname: '/file2.html' }); (0, chai_1.expect)(out).to.deep.equals({ file: (0, path_1.resolve)((0, path_1.join)(site_dir, 'file2.html')), exists: false, }); }); it('should not add .html if file exists', () => { var out = (0, file_1.resolvePathname)({ site_dir, pathname: '/file2' }); (0, chai_1.expect)(out).to.deep.equals({ file: (0, path_1.resolve)((0, path_1.join)(site_dir, 'file2')), exists: true, }); }); it('should resolve to index.html inside if directory exists', () => { var out = (0, file_1.resolvePathname)({ site_dir, pathname: '/dir-with-index' }); (0, chai_1.expect)(out).to.deep.equals({ file: (0, path_1.resolve)((0, path_1.join)(site_dir, 'dir-with-index', 'index.html')), exists: true, }); var out = (0, file_1.resolvePathname)({ site_dir, pathname: '/empty-dir' }); (0, chai_1.expect)(out).to.deep.equals({ file: (0, path_1.resolve)((0, path_1.join)(site_dir, 'empty-dir', 'index.html')), exists: false, }); }); it('should resolve to .html file if exists', () => { var out = (0, file_1.resolvePathname)({ site_dir, pathname: '/file3' }); (0, chai_1.expect)(out).to.deep.equals({ file: (0, path_1.resolve)((0, path_1.join)(site_dir, 'file3.html')), exists: true, }); }); it('should resolve to index.html inside directory if not exists', () => { var out = (0, file_1.resolvePathname)({ site_dir, pathname: '/not-exists' }); (0, chai_1.expect)(out).to.deep.equals({ file: (0, path_1.resolve)((0, path_1.join)(site_dir, 'not-exists', 'index.html')), exists: false, }); }); });