| var shell = require('..'); |
| |
| var assert = require('assert'), |
| path = require('path'), |
| fs = require('fs'); |
| |
| // Node shims for < v0.7 |
| fs.existsSync = fs.existsSync || path.existsSync; |
| |
| shell.config.silent = true; |
| |
| function numLines(str) { |
| return typeof str === 'string' ? str.match(/\n/g).length : 0; |
| } |
| |
| // save current dir |
| var cur = shell.pwd(); |
| |
| shell.rm('-rf', 'tmp'); |
| shell.mkdir('tmp'); |
| |
| // |
| // Invalids |
| // |
| |
| shell.cd(); |
| assert.ok(shell.error()); |
| |
| assert.equal(fs.existsSync('/asdfasdf'), false); // sanity check |
| shell.cd('/adsfasdf'); // dir does not exist |
| assert.ok(shell.error()); |
| |
| assert.equal(fs.existsSync('resources/file1'), true); // sanity check |
| shell.cd('resources/file1'); // file, not dir |
| assert.ok(shell.error()); |
| |
| // |
| // Valids |
| // |
| |
| shell.cd(cur); |
| shell.cd('tmp'); |
| assert.equal(shell.error(), null); |
| assert.equal(path.basename(process.cwd()), 'tmp'); |
| |
| shell.cd(cur); |
| shell.cd('/'); |
| assert.equal(shell.error(), null); |
| assert.equal(process.cwd(), path.resolve('/')); |
| |
| // cd + other commands |
| |
| shell.cd(cur); |
| shell.rm('-f', 'tmp/*'); |
| assert.equal(fs.existsSync('tmp/file1'), false); |
| shell.cd('resources'); |
| assert.equal(shell.error(), null); |
| shell.cp('file1', '../tmp'); |
| assert.equal(shell.error(), null); |
| shell.cd('../tmp'); |
| assert.equal(shell.error(), null); |
| assert.equal(fs.existsSync('file1'), true); |
| |
| shell.exit(123); |