Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 | 1x 1x 1x 1x 1x 1x 1x 1x 4x 4x 4x 4x 1x 1x 1x 1x 1x 4x 4x 1x 1x 1x 2x 1x 1x 1x 1x 2x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x | const expect = require('chai').expect;
const sinon = require('sinon');
import { CLIProgram } from '../../core/entities/cli-program';
import ConfigurationRepository from '../../core/repositories/config.repository';
import Logger from '../../infrastructure/logging/logger';
import SetupFlags from './setup-flags';
import HandleTsconfigFile from './handle-tsconfig-file';
describe('Use-cases - Should find tsconfig file', () => {
let loggerStubInfo;
let loggerStubError;
beforeEach(() => {
loggerStubInfo = sinon.stub(Logger, 'info');
loggerStubError = sinon.stub(Logger, 'error');
const currentProgram: CLIProgram = SetupFlags.setup({
version: '0.0.1'
});
ConfigurationRepository.init(currentProgram);
});
it('with file provided with -p flag, handle it', async () => {
ConfigurationRepository.internalConfiguration.tsconfig =
'test/fixtures/sample-files/tsconfig.exclude.json';
const tsconfigExplorerResult = await HandleTsconfigFile.handle();
expect(tsconfigExplorerResult).to.be.an('object');
});
afterEach(() => {
loggerStubInfo.restore();
loggerStubError.restore();
});
it('with file provided with -p flag, handle it, and log with found it', async () => {
const testfilePath = 'test/fixtures/sample-files/tsconfig.exclude.json';
ConfigurationRepository.internalConfiguration.tsconfig = testfilePath;
await HandleTsconfigFile.handle();
sinon.assert.calledWithExactly(
Logger.info,
sinon.match(`Using tsconfig file : ${testfilePath}`)
);
});
it('with bad path for file provided with -p flag, log we did not found it', async () => {
const testfilePath = 'test/fixtures/sample-files/notsconfig.json';
ConfigurationRepository.internalConfiguration.tsconfig = testfilePath;
try {
await HandleTsconfigFile.handle();
} catch (e) {
expect(e).equal(`${testfilePath} file was not found in the current directory`);
}
});
it('with one tsconfig file, find exclude, include and files', async () => {
ConfigurationRepository.internalConfiguration.tsconfig =
'test/fixtures/sample-files/tsconfig.exclude.json';
let tsconfigExplorerResult = await HandleTsconfigFile.handle();
expect(tsconfigExplorerResult).to.have.property('exclude');
expect(tsconfigExplorerResult['exclude']).to.have.members([
'bar.component.ts',
'*.module.ts'
]);
ConfigurationRepository.internalConfiguration.tsconfig =
'test/fixtures/sample-files/tsconfig.include-file.json';
tsconfigExplorerResult = await HandleTsconfigFile.handle();
expect(tsconfigExplorerResult).to.have.property('include');
expect(tsconfigExplorerResult['include']).to.have.members(['bar.component.ts']);
ConfigurationRepository.internalConfiguration.tsconfig =
'test/fixtures/sample-files/tsconfig.entry.json';
tsconfigExplorerResult = await HandleTsconfigFile.handle();
expect(tsconfigExplorerResult).to.have.property('files');
expect(tsconfigExplorerResult['files']).to.have.members([
'app.module.ts',
'foo.component.ts',
'foo.module.ts'
]);
});
});
|