Skip to content
This repository was archived by the owner on Mar 21, 2025. It is now read-only.

Commit 3181d53

Browse files
committed
Merge pull request #19 from testdouble/simplify-executable-test
Simplify find-executables test
2 parents 67d303b + 23cafc2 commit 3181d53

File tree

9 files changed

+28
-52
lines changed

9 files changed

+28
-52
lines changed

lib/resolve-script/find-executables.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
1+
var _ = require('lodash')
12
var glob = require('glob')
23
var path = require('path')
34
var async = require('async')
5+
46
var isExecutable = require('./is-executable')
5-
var _ = require('lodash')
67

78
module.exports = function (pattern, cb) {
89
glob(pattern, {nodir: true}, function (er, results) {
Lines changed: 26 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -1,73 +1,50 @@
1-
var fs = require('fs')
1+
var _ = require('lodash')
22
var path = require('path')
3-
var exec = require('child_process').exec
4-
var mkdirp = require('mkdirp')
5-
var rimraf = require('rimraf')
3+
4+
var base = function (glob) {
5+
return path.resolve('test/fixtures/user-scripts/find-executables', glob)
6+
}
7+
var subject = require('./find-executables')
68

79
module.exports = {
810
beforeEach: function () {
911
td.replace(console, 'warn')
10-
this.foo1 = path.join(__dirname, 'foo')
11-
this.foo2 = path.join(__dirname, 'foo.lol')
12-
this.subject = require('./find-executables')
13-
},
14-
afterEach: function () {
15-
[this.foo1, this.foo2].forEach(function (f) {
16-
try {
17-
fs.unlinkSync(f)
18-
} catch (e) {}
19-
})
2012
},
2113
noFilesFound: function (done) {
22-
this.subject(path.resolve(__dirname, 'foo*'), function (er, result) {
14+
subject(base('does-not-exist*'), function (er, result) {
2315
assert.deepEqual(result, [])
2416
done(er)
2517
})
2618
},
2719
oneFileFound: function (done) {
28-
fs.writeFileSync(this.foo1, 'hi')
29-
exec('chmod +x "' + this.foo1 + '"', function () {
30-
this.subject(path.resolve(__dirname, 'foo*'), function (er, result) {
31-
assert.deepEqual(result, [this.foo1])
32-
done(er)
33-
}.bind(this))
34-
}.bind(this))
20+
subject(base('is-executable*'), function (er, result) {
21+
assert.deepEqual(result, [base('is-executable')])
22+
done(er)
23+
})
3524
},
3625
oneFileFoundWithOneNonExecutable: function (done) {
3726
if (process.platform === 'win32') return done()
38-
fs.writeFileSync(this.foo1, 'hi')
39-
fs.writeFileSync(this.foo2, 'hi')
40-
exec('chmod +x "' + this.foo1 + '"', function () {
41-
this.subject(path.resolve(__dirname, 'foo*'), function (er, result) {
42-
assert.deepEqual(result, [this.foo1])
43-
td.verify(console.warn(
44-
'Warning: scripty - ignoring script "' + this.foo2 + '" because it' +
45-
' was not executable. Run `chmod +x "' + this.foo2 + '" if you want' +
46-
' scripty to run it.'
47-
))
48-
done(er)
49-
}.bind(this))
50-
}.bind(this))
27+
subject(base('file.*'), function (er, result) {
28+
assert.deepEqual(result, [base('file.executable')])
29+
td.verify(console.warn(
30+
'Warning: scripty - ignoring script "' + base('file.not.executable') +
31+
'" because it was not executable. Run `chmod +x "' +
32+
base('file.not.executable') + '" if you want scripty to run it.'
33+
))
34+
done(er)
35+
})
5136
},
5237
twoFilesFound: function (done) {
53-
fs.writeFileSync(this.foo1, 'hi')
54-
fs.writeFileSync(this.foo2, 'hi')
55-
56-
exec('chmod +x "' + this.foo1 + '" "' + this.foo2 + '"', function () {
57-
this.subject(path.resolve(__dirname, 'foo*'), function (er, result) {
58-
assert.deepEqual(result, [this.foo1, this.foo2])
59-
done(er)
60-
}.bind(this))
61-
}.bind(this))
38+
subject(base('exec.*'), function (er, result) {
39+
assert.deepEqual(_.sortBy(result), [base('exec.rb'), base('exec.sh')])
40+
done(er)
41+
})
6242
},
6343
dirFound: function (done) {
64-
mkdirp.sync(this.foo1)
65-
this.subject(path.resolve(__dirname, 'foo*'), function (er, result) {
44+
subject(base('exec-dir-wat*'), function (er, result) {
6645
assert.deepEqual(result, [])
67-
rimraf.sync(this.foo1)
6846
done(er)
69-
}.bind(this))
47+
})
7048
}
7149
}
7250

73-
if (UNSUPPORTED_TDD) module.exports = {}

package.json

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,6 @@
3232
"devDependencies": {
3333
"assert": "^1.3.0",
3434
"intercept-stdout": "^0.1.2",
35-
"mkdirp": "^0.5.1",
36-
"rimraf": "^2.5.2",
3735
"semver": "^5.1.0",
3836
"standard": "^6.0.8",
3937
"teenytest": "^3.0.0",

test/fixtures/user-scripts/exec-dir-wat/.keep

Whitespace-only changes.

test/fixtures/user-scripts/find-executables/exec.rb

Whitespace-only changes.

test/fixtures/user-scripts/find-executables/exec.sh

Whitespace-only changes.

test/fixtures/user-scripts/find-executables/file.executable

Whitespace-only changes.

test/fixtures/user-scripts/find-executables/file.not.executable

Whitespace-only changes.

test/fixtures/user-scripts/find-executables/is-executable

Whitespace-only changes.

0 commit comments

Comments
 (0)