webrcli
Version:
cli tools for building node project with webr inside
68 lines (55 loc) • 1.4 kB
JavaScript
const {init} = require('../src/init');
const { parsePackageJson } = require('../src/packagejsonmanip');
const path = require('path');
const os = require('os');
const fs = require('fs');
test('init works', async () => {
// set a temp dir
let temp_dir = path.join(os.tmpdir(), 'coucou')
process.cwd = jest.fn().mockReturnValue(temp_dir);
if (
fs.existsSync(temp_dir)
) {
fs.rmdirSync(
temp_dir,
{ recursive: true, force: true }
)
};
await init(temp_dir);
expect(
fs.existsSync(
path.join(temp_dir, 'index.js')
)
).toBe(true);
expect(
fs.existsSync(
path.join(temp_dir, 'package.json')
)
).toBe(true);
let packageJson = parsePackageJson(path.join(temp_dir, 'package.json'));
expect(
packageJson.scripts.postinstall
).toBe('webrcli installFromPackageJson');
expect(
packageJson.scripts.start
).toBe('node index.js');
expect(
fs.existsSync(
path.join(temp_dir, 'webr_packages')
)
).toBe(true);
expect(
fs.existsSync(
path.join(temp_dir, 'webr_packages', 'pkgload')
)
).toBe(true);
expect(
fs.existsSync(
path.join(temp_dir, 'node_modules')
)
).toBe(true);
// testing that the function return false
// if the folder already exists
const folder_can_be_created = await init(temp_dir);
expect(folder_can_be_created).toBe(false);
}, 1000000);