import * as child_process from 'child_process' import * as fs from 'fs' import * as path from 'path' import {mocked} from 'ts-jest/utils' import {Audit} from '../src/audit' jest.mock('child_process') const audit = new Audit() describe('run', () => { beforeEach(() => { mocked(child_process).spawnSync.mockClear() }) test('finds vulnerabilities', () => { mocked(child_process).spawnSync.mockImplementation((): any => { const stdout = fs.readFileSync( path.join(__dirname, 'testdata/audit/error.txt') ) return { pid: 100, output: [stdout], stdout, stderr: '', status: 1, signal: null, error: null } }) audit.run() expect(audit.foundVulnerability()).toBeTruthy() }) test('does not find vulnerabilities', () => { mocked(child_process).spawnSync.mockImplementation((): any => { const stdout = fs.readFileSync( path.join(__dirname, 'testdata/audit/success.txt') ) return { pid: 100, output: [stdout], stdout, stderr: '', status: 0, signal: null, error: null } }) audit.run() expect(audit.foundVulnerability()).toBeFalsy() }) })