UNPKG

@code-to-json/cli

Version:
73 lines (67 loc) 1.95 kB
import { createTempFixtureFolder, TestCaseFolder } from '@code-to-json/test-helpers'; import { expect } from 'chai'; import { describe, it } from 'mocha'; import * as path from 'path'; import generateJSONCommand from '../src/commands/generate-json'; async function makeWorkspace(): Promise<TestCaseFolder> { const workspace = await createTempFixtureFolder({ 'tsconfig.json': JSON.stringify({ compilerOptions: { target: 'ES2017', noEmit: true, }, }), src: { 'index.ts': "const x: string = 'foo';", 'other.ts': "const y: string = 'bar';", 'more.js': "const z = 'baz';", }, }); return workspace; } describe('Command tests', () => { it('run command: --project', async () => { const workspace = await makeWorkspace(); await generateJSONCommand({ project: workspace.rootPath, out: workspace.rootPath, format: 'formatted', }); expect(workspace.toString()).to.eql( `├─ formatted.json ├─ src │ ├─ index.ts │ ├─ more.js │ └─ other.ts └─ tsconfig.json `, ); workspace.cleanup(); }); it.skip('run command: entries', async () => { const workspace = await makeWorkspace(); await generateJSONCommand({ out: path.join(workspace.rootPath, 'out') }, ['src/index.ts']); expect(workspace.toString()).to.eql( `├─ out │ └─ formatted.json ├─ src │ ├─ index.ts │ ├─ more.js │ └─ other.ts └─ tsconfig.json `, ); workspace.cleanup(); }); it('run command: insufficient CLI args', async () => { const workspace = await makeWorkspace(); try { await generateJSONCommand({ out: path.join(workspace.rootPath, 'out') }).then(() => { expect(false).to.eql(true); }); } catch (err) { expect(err.message).to.contain('Either --project <path> or entries glob(s) must be defined'); } workspace.cleanup(); }); });