From 438210665b1e11d065fa5314c239bb4221bc86a4 Mon Sep 17 00:00:00 2001 From: Lucas Holmquist Date: Wed, 17 Jul 2019 14:08:23 -0400 Subject: [PATCH 1/6] test: update subsystem test * use chunk instead of compiledData * store the common cmd in a variable for use in other tests --- test/cli-test.js | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/test/cli-test.js b/test/cli-test.js index d3baca8..39f1145 100644 --- a/test/cli-test.js +++ b/test/cli-test.js @@ -4,12 +4,14 @@ const { test } = require('tap') const { spawn } = require('child_process') const subsystems = require('../lib/rules/subsystem') +const cmd = './bin/cmd.js' + test('Test cli flags', (t) => { t.test('test list-subsystems', (tt) => { - const ls = spawn('./bin/cmd.js', ['--list-subsystems']) - let compiledData = '' + const ls = spawn(cmd, ['--list-subsystems']) + let chunk = '' ls.stdout.on('data', (data) => { - compiledData += data + chunk += data }) ls.stderr.on('data', (data) => { @@ -19,7 +21,7 @@ test('Test cli flags', (t) => { ls.on('close', (code) => { // Get the list of subsytems as an Array. // Need to match words that also have the "-" in them - const subsystemsFromOutput = compiledData.match(/[\w'-]+/g) + const subsystemsFromOutput = chunk.match(/[\w'-]+/g) const defaultSubsystems = subsystems.defaults.subsystems tt.equal(subsystemsFromOutput.length, From 619615f6a3d6791cf2ada46933328a5ffb34d7a4 Mon Sep 17 00:00:00 2001 From: Lucas Holmquist Date: Wed, 17 Jul 2019 14:17:09 -0400 Subject: [PATCH 2/6] test: add test for the cli version command --- test/cli-test.js | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/test/cli-test.js b/test/cli-test.js index 39f1145..d4cc854 100644 --- a/test/cli-test.js +++ b/test/cli-test.js @@ -7,6 +7,29 @@ const subsystems = require('../lib/rules/subsystem') const cmd = './bin/cmd.js' test('Test cli flags', (t) => { + t.test('test version', (tt) => { + const version = spawn(cmd, ['--version']) + let chunk = '' + + version.stdout.on('data', (data) => { + chunk += data + }) + + version.stderr.on('data', (data) => { + tt.fail('this should not happen') + }) + + version.on('close', (code) => { + console.log(chunk) + tt.equal(chunk.trim(), + `core-validate-commit v${require('../package.json').version}`, + 'Versions should be equal to the version in the package.json') + tt.pass() + tt.end() + }) + + }) + t.test('test list-subsystems', (tt) => { const ls = spawn(cmd, ['--list-subsystems']) let chunk = '' From 08a6b53a23aba5adbad44ad2d82da9529889e92f Mon Sep 17 00:00:00 2001 From: Lucas Holmquist Date: Wed, 17 Jul 2019 14:25:09 -0400 Subject: [PATCH 3/6] squash: remove console.log --- test/cli-test.js | 1 - 1 file changed, 1 deletion(-) diff --git a/test/cli-test.js b/test/cli-test.js index d4cc854..daab6dd 100644 --- a/test/cli-test.js +++ b/test/cli-test.js @@ -20,7 +20,6 @@ test('Test cli flags', (t) => { }) version.on('close', (code) => { - console.log(chunk) tt.equal(chunk.trim(), `core-validate-commit v${require('../package.json').version}`, 'Versions should be equal to the version in the package.json') From 4a680ef3a6dfbe474392f2801b5bba26bf13eaee Mon Sep 17 00:00:00 2001 From: Lucas Holmquist Date: Wed, 17 Jul 2019 14:36:45 -0400 Subject: [PATCH 4/6] squash: remove rogue pass function --- test/cli-test.js | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/test/cli-test.js b/test/cli-test.js index daab6dd..6760683 100644 --- a/test/cli-test.js +++ b/test/cli-test.js @@ -3,6 +3,12 @@ const { test } = require('tap') const { spawn } = require('child_process') const subsystems = require('../lib/rules/subsystem') +const { promisify } = require('util') +const fs = require('fs') + + +const readFile = promisify(fs.readFile) + const cmd = './bin/cmd.js' @@ -23,7 +29,6 @@ test('Test cli flags', (t) => { tt.equal(chunk.trim(), `core-validate-commit v${require('../package.json').version}`, 'Versions should be equal to the version in the package.json') - tt.pass() tt.end() }) From 5005732a40092c8b0275b46877a06157cc66730e Mon Sep 17 00:00:00 2001 From: Lucas Holmquist Date: Wed, 17 Jul 2019 14:41:06 -0400 Subject: [PATCH 5/6] test: add test for the cli help command --- test/cli-test.js | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/test/cli-test.js b/test/cli-test.js index 6760683..4afe923 100644 --- a/test/cli-test.js +++ b/test/cli-test.js @@ -13,6 +13,24 @@ const readFile = promisify(fs.readFile) const cmd = './bin/cmd.js' test('Test cli flags', (t) => { + t.test('test usage', (tt) => { + const usage = spawn(cmd, ['--help']) + let chunk = '' + usage.stdout.on('data', (data) => { + chunk += data + }) + + usage.stderr.on('data', (data) => { + tt.fail('This should not happen') + }) + + usage.on('close', async () => { + const usageTxt = await readFile(`${process.cwd()}/bin/usage.txt`, 'utf8') + tt.equal(chunk, usageTxt, 'helps should be equal') + tt.end() + }) + }) + t.test('test version', (tt) => { const version = spawn(cmd, ['--version']) let chunk = '' From d8695c02e1a47a1746bf455619ed4040f12cbbad Mon Sep 17 00:00:00 2001 From: Lucas Holmquist Date: Thu, 18 Jul 2019 08:26:36 -0400 Subject: [PATCH 6/6] test: add test for the cli list command --- test/cli-test.js | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/test/cli-test.js b/test/cli-test.js index 4afe923..d49f677 100644 --- a/test/cli-test.js +++ b/test/cli-test.js @@ -3,6 +3,7 @@ const { test } = require('tap') const { spawn } = require('child_process') const subsystems = require('../lib/rules/subsystem') +const rules = require('../lib/rules') const { promisify } = require('util') const fs = require('fs') @@ -52,6 +53,37 @@ test('Test cli flags', (t) => { }) + t.test('test list flag', (tt) => { + const list = spawn(cmd, ['--list']) + let chunk = '' + list.stdout.on('data', (data) => { + chunk += data + }) + + list.stderr.on('data', (data) => { + tt.fail('This should not happen') + }) + + list.on('close', (code) => { + const rulesFromOutput = chunk.trim().split('\n') + const missing = [] + for (const rule in rules) { + const filtered = rulesFromOutput.find((x) => { + return x.trim() + === `${rules[rule].id} ${rules[rule].meta.description}` + }) + + if (!filtered) { + missing.push(rule) + } + } + + tt.equal(missing.length, 0, 'Should have no missing subsystems') + + tt.end() + }) + }) + t.test('test list-subsystems', (tt) => { const ls = spawn(cmd, ['--list-subsystems']) let chunk = ''