|
2 | 2 |
|
3 | 3 | const assert = require('assert')
|
4 | 4 | const path = require('path')
|
| 5 | +const { exec } = require('child_process') |
| 6 | +const pkg = require('../package.json') |
5 | 7 | const flat = require('../index')
|
6 | 8 |
|
7 | 9 | const flatten = flat.flatten
|
@@ -593,3 +595,35 @@ suite('Order of Keys', function () {
|
593 | 595 | assert.deepStrictEqual(Object.keys(obj.abc.c[0]), Object.keys(result.abc.c[0]))
|
594 | 596 | })
|
595 | 597 | })
|
| 598 | + |
| 599 | +suite('CLI', function () { |
| 600 | + test('can take filename', function (done) { |
| 601 | + const cli = path.resolve(__dirname, '..', pkg.bin) |
| 602 | + const pkgJSON = path.resolve(__dirname, '..', 'package.json') |
| 603 | + exec(`${cli} ${pkgJSON}`, (err, stdout, stderr) => { |
| 604 | + assert.ifError(err) |
| 605 | + assert.strictEqual(stdout.trim(), JSON.stringify(flatten(pkg), null, 2)) |
| 606 | + done() |
| 607 | + }) |
| 608 | + }) |
| 609 | + |
| 610 | + test('exits with usage if no file', function (done) { |
| 611 | + const cli = path.resolve(__dirname, '..', pkg.bin) |
| 612 | + const pkgJSON = path.resolve(__dirname, '..', 'package.json') |
| 613 | + exec(`${cli} ${pkgJSON}`, (err, stdout, stderr) => { |
| 614 | + assert.ifError(err) |
| 615 | + assert.strictEqual(stdout.trim(), JSON.stringify(flatten(pkg), null, 2)) |
| 616 | + done() |
| 617 | + }) |
| 618 | + }) |
| 619 | + |
| 620 | + test('can take piped file', function (done) { |
| 621 | + const cli = path.resolve(__dirname, '..', pkg.bin) |
| 622 | + const pkgJSON = path.resolve(__dirname, '..', 'package.json') |
| 623 | + exec(`cat ${pkgJSON} | ${cli}`, (err, stdout, stderr) => { |
| 624 | + assert.ifError(err) |
| 625 | + assert.strictEqual(stdout.trim(), JSON.stringify(flatten(pkg), null, 2)) |
| 626 | + done() |
| 627 | + }) |
| 628 | + }) |
| 629 | +}) |
0 commit comments