auto-cms-server
Version:
Auto turn any webpage into editable CMS without coding.
74 lines (73 loc) • 3.38 kB
JavaScript
"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,
});
});
});