* remove unnessary import * use mock for child_process.spawnSync() * document useful resources * use v1.1.0 for daily scan
58 lines
1.2 KiB
TypeScript
58 lines
1.2 KiB
TypeScript
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()
|
|
})
|
|
})
|