Skip to content

Commit

Permalink
feature: cloudfunc: get rid of mock-require
Browse files Browse the repository at this point in the history
  • Loading branch information
coderaiser committed Mar 21, 2024
1 parent 6e99c7e commit fcce26d
Show file tree
Hide file tree
Showing 2 changed files with 41 additions and 48 deletions.
8 changes: 4 additions & 4 deletions test/common/entity.js → common/entity.spec.js
Original file line number Diff line number Diff line change
@@ -1,28 +1,28 @@
'use strict';

const test = require('supertape');
const entity = require('../../common/entity');
const entity = require('./entity');

test('cloudcmd: entity: encode', (t) => {
const result = entity.encode('<hello> ');
const expected = '&lt;hello&gt; ';

t.equal(result, expected, 'should encode entity');
t.end();
});

test('cloudcmd: entity: decode', (t) => {
const result = entity.decode('&lt;hello&gt; ');
const expected = '<hello> ';

t.equal(result, expected, 'should decode entity');
t.end();
});

test('cloudcmd: entity: encode quote', (t) => {
const result = entity.encode('"hello"');
const expected = '&quot;hello&quot;';

t.equal(result, expected, 'should encode entity');
t.end();
});
81 changes: 37 additions & 44 deletions test/common/cloudfunc.js
Original file line number Diff line number Diff line change
@@ -1,23 +1,17 @@
'use strict';

const fs = require('node:fs');
const tryCatch = require('try-catch');

const DIR = `${__dirname}/../../`;
const COMMONDIR = `${DIR}common/`;

const {time, timeEnd} = require(`${COMMONDIR}util`);

const CloudFuncPath = `${COMMONDIR}cloudfunc`;

const CloudFunc = require(CloudFuncPath);

const tryCatch = require('try-catch');
const test = require('supertape');

const {reRequire} = require('mock-require');
const htmlLooksLike = require('html-looks-like');

const readFilesSync = require('@cloudcmd/read-files-sync');

const {time, timeEnd} = require(`../../common/util`);
const CloudFunc = require('../../common/cloudfunc.js');

const DIR = `${__dirname}/../../`;
const CloudFuncPath = `cloudfunc`;
const TMPLDIR = `${DIR}tmpl/`;

const FS_DIR = `${TMPLDIR}fs/`;
Expand Down Expand Up @@ -66,50 +60,50 @@ let Expect = '<div data-name="js-path" class="reduce-text" title="/etc/X11/">' +

test('cloudfunc: render', (t) => {
const template = readFilesSync(FS_DIR, TMPL, 'utf8');

time('CloudFunc.buildFromJSON');
const result = CloudFunc.buildFromJSON({
prefix: '',
data,
template,
});

Expect += fs.readFileSync(EXPECT_PATH, 'utf8');

let i;
const isNotOk = Expect
.split('')
.some((item, number) => {
const ret = result[number] !== item;

if (ret)
i = number;

return ret;
});

timeEnd('CloudFunc.buildFromJSON');

if (isNotOk) {
console.log(`Error in char number: ${i}\n`, `Expect: ${Expect.substr(i)}\n`, `Result: ${result.substr(i)}`);

console.log('buildFromJSON: Not OK');
}

t.equal(result, Expect, 'should be equal rendered json data');

htmlLooksLike(result, Expect);

t.end();
});

test('cloudfunc: formatMsg', (t) => {
const msg = 'hello';
const name = 'name';
const status = 'ok';

const result = CloudFunc.formatMsg(msg, name, status);

t.equal(result, 'hello: ok("name")');
t.end();
});
Expand All @@ -118,44 +112,42 @@ test('cloudfunc: formatMsg: no name', (t) => {
const msg = 'hello';
const name = null;
const status = 'ok';

const result = CloudFunc.formatMsg(msg, name, status);

t.equal(result, 'hello: ok');
t.end();
});

test('cloudfunc: getTitle', (t) => {
const CloudFunc = reRequire(CloudFuncPath);

const result = CloudFunc.getTitle();
const result = CloudFunc.getTitle({
path: '/',
});

t.equal(result, 'Cloud Commander - /');
t.end();
});

test('cloudfunc: getTitle: no name', (t) => {
const CloudFunc = reRequire(CloudFuncPath);
const path = '/hello/world';

const result = CloudFunc.getTitle({
path,
});

t.equal(result, 'Cloud Commander - /hello/world');
t.end();
});

test('cloudfunc: getTitle: name, path', (t) => {
const CloudFunc = reRequire(CloudFuncPath);
const name = 'hello';
const path = '/hello/world';

const result = CloudFunc.getTitle({
name,
path,
});

t.equal(result, 'hello - /hello/world');
t.end();
});
Expand All @@ -164,17 +156,17 @@ test('cloudfunc: getHeaderField', (t) => {
const sort = 'name';
const order = 'desc';
const name = 'name';

const result = CloudFunc.getHeaderField(sort, order, name);
const expected = 'name↓';

t.equal(result, expected, 'should set desc arrow');
t.end();
});

test('cloudfunc: getPathLink: no url', (t) => {
const [error] = tryCatch(CloudFunc.getPathLink);

t.ok(error, 'should throw when no url');
t.end();
});
Expand All @@ -183,21 +175,22 @@ test('cloudfunc: getPathLink: no template', (t) => {
const url = 'http://abc.com';
const prefix = '';
const [error] = tryCatch(CloudFunc.getPathLink, url, prefix);

t.ok(error, 'should throw when no template');
t.end();
});

test('cloudfunc: getDotDot', (t) => {
const dotDot = CloudFunc.getDotDot('/home');

t.equal(dotDot, '/', 'should return root');
t.end();
});

test('cloudfunc: getDotDot: two levels deep', (t) => {
const dotDot = CloudFunc.getDotDot('/home/coderaiser/');

t.equal(dotDot, '/home', 'should return up level');
t.end();
});

0 comments on commit fcce26d

Please sign in to comment.