All files / core/use-cases handle-tsconfig-file.spec.ts

53.84% Statements 7/13
100% Branches 0/0
33.33% Functions 1/3
53.84% Lines 7/13

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 971x         1x   1x   1x       1x       1x                                     1x                                                                                                                        
const sinon = require('sinon');
 
import { expect } from 'chai';
 
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'
        ]);
    });*/
});