Files
npm-audit-action/__tests__/audit.test.ts
Naoki Oketani a0a6093710 add unit test and cleanup (#28)
* remove unnessary import

* use mock for child_process.spawnSync()

* document useful resources

* use v1.1.0 for daily scan
2019-12-13 16:09:10 +09:00

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()
})
})