mirror of
https://github.com/coderaiser/cloudcmd.git
synced 2026-01-23 02:35:49 +00:00
87 lines
2.4 KiB
JavaScript
87 lines
2.4 KiB
JavaScript
import fs from 'fs';
|
|
import {join} from 'path';
|
|
|
|
import test from 'supertape';
|
|
import serveOnce from 'serve-once';
|
|
import threadIt from 'thread-it';
|
|
import stub from '@cloudcmd/stub';
|
|
import {reRequire} from 'mock-require';
|
|
|
|
import userMenu from './user-menu.js';
|
|
const {request} = serveOnce(userMenu);
|
|
|
|
const {readFileSync} = fs;
|
|
|
|
const userMenuPath = join(__dirname, '..', '.cloudcmd.menu.js');
|
|
const userMenuFile = readFileSync(userMenuPath, 'utf8');
|
|
|
|
const fixtureDir = join(__dirname, 'fixture-user-menu');
|
|
const fixtureMoveName = join(fixtureDir, 'io-mv.js');
|
|
const fixtureMoveFixName = join(fixtureDir, 'io-mv-fix.js');
|
|
const fixtureCopyName = join(fixtureDir, 'io-cp.js');
|
|
const fixtureCopyFixName = join(fixtureDir, 'io-cp-fix.js');
|
|
|
|
const fixtureMove = readFileSync(fixtureMoveName, 'utf8');
|
|
const fixtureMoveFix = readFileSync(fixtureMoveFixName, 'utf8');
|
|
const fixtureCopy = readFileSync(fixtureCopyName, 'utf8');
|
|
const fixtureCopyFix = readFileSync(fixtureCopyFixName, 'utf8');
|
|
|
|
test('cloudcmd: user menu', async (t) => {
|
|
const options = {
|
|
menuName: '.cloudcmd.menu.js',
|
|
};
|
|
|
|
const {body} = await request.get(`/api/v1/user-menu?dir=${__dirname}`, {
|
|
options,
|
|
});
|
|
|
|
threadIt.terminate();
|
|
|
|
t.equal(userMenuFile, body, 'should equal');
|
|
t.end();
|
|
});
|
|
|
|
test('cloudcmd: user menu: io.mv', async (t) => {
|
|
const options = {
|
|
menuName: '.cloudcmd.menu.js',
|
|
};
|
|
|
|
const {readFile} = fs.promises;
|
|
|
|
fs.promises.readFile = stub().returns(fixtureMove);
|
|
const userMenu = reRequire('./user-menu');
|
|
const {request} = serveOnce(userMenu);
|
|
|
|
const {body} = await request.get(`/api/v1/user-menu?dir=${__dirname}`, {
|
|
options,
|
|
});
|
|
|
|
threadIt.terminate();
|
|
fs.promises.readFile = readFile;
|
|
|
|
t.equal(fixtureMoveFix, body, 'should equal');
|
|
t.end();
|
|
});
|
|
|
|
test('cloudcmd: user menu: io.cp', async (t) => {
|
|
const options = {
|
|
menuName: '.cloudcmd.menu.js',
|
|
};
|
|
|
|
const {readFile} = fs.promises;
|
|
|
|
fs.promises.readFile = stub().returns(fixtureCopy);
|
|
const userMenu = reRequire('./user-menu');
|
|
const {request} = serveOnce(userMenu);
|
|
|
|
const {body} = await request.get(`/api/v1/user-menu?dir=${__dirname}`, {
|
|
options,
|
|
});
|
|
|
|
threadIt.terminate();
|
|
fs.promises.readFile = readFile;
|
|
|
|
t.equal(fixtureCopyFix, body, 'should equal');
|
|
t.end();
|
|
});
|
|
|