123456789101112131415161718192021222324252627282930313233343536373839 |
- 'use strict'
- const colors = require('colors')
- expect.extend({
- /**
- * Expect Snyk results to have no errors
- * @param {*} received Snyk results
- * @param {*} argument Arguments
- * @returns {object} Matcher result
- */
- toPassSnyk (received, argument) {
- if (received && received.ok === false) {
- let errorMsgBuf = []
- for (let i = 0; i < received.vulnerabilities.length; i++) {
- const result = received.vulnerabilities[i]
- let vulnPath = result.from.slice(1).join(' > ')
- errorMsgBuf.push(colors.red(`└──[${result.severity}] ${result.packageName}\t${result.title}`))
- errorMsgBuf.push(colors.grey(`\t${vulnPath}`))
- }
- return {
- message: () => (errorMsgBuf.join(`\n`)),
- pass: false
- }
- }
- return {
- pass: true
- }
- }
- })
- describe('Security', () => {
- it('should pass Snyk test', () => {
- const snyk = require('snyk').test
- return snyk('./').then(report => {
- expect(report).toPassSnyk()
- })
- }, 20000)
- })
|