shelljs/test/cat.js
Nate Fischer ab8cf5a8e0 refactor: replace fs.existsSync (#509)
* refactor: replace fs.existsSync

* fix: add support for v0.10
2016-08-20 18:28:49 -07:00

55 lines
1.4 KiB
JavaScript

var shell = require('..');
var common = require('../src/common');
var assert = require('assert');
shell.config.silent = true;
shell.rm('-rf', 'tmp');
shell.mkdir('tmp');
//
// Invalids
//
var result = shell.cat();
assert.ok(shell.error());
assert.equal(result.code, 1);
assert.equal(result.stderr, 'cat: no paths given');
assert.equal(common.existsSync('/asdfasdf'), false); // sanity check
result = shell.cat('/asdfasdf'); // file does not exist
assert.ok(shell.error());
assert.equal(result.code, 1);
assert.equal(result.stderr, 'cat: no such file or directory: /asdfasdf');
//
// Valids
//
// simple
result = shell.cat('resources/cat/file1');
assert.equal(shell.error(), null);
assert.equal(result.code, 0);
assert.equal(result, 'test1\n');
// multiple files
result = shell.cat('resources/cat/file2', 'resources/cat/file1');
assert.equal(shell.error(), null);
assert.equal(result.code, 0);
assert.equal(result, 'test2\ntest1\n');
// multiple files, array syntax
result = shell.cat(['resources/cat/file2', 'resources/cat/file1']);
assert.equal(shell.error(), null);
assert.equal(result.code, 0);
assert.equal(result, 'test2\ntest1\n');
result = shell.cat('resources/file*.txt');
assert.equal(shell.error(), null);
assert.equal(result.code, 0);
assert.ok(result.search('test1') > -1); // file order might be random
assert.ok(result.search('test2') > -1);
shell.exit(123);