guard-mocha-node 0.0.5 → 0.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/guard/mocha_node/runner.rb +18 -19
- data/lib/guard/mocha_node/spec_state.rb +2 -24
- data/lib/guard/mocha_node/version.rb +1 -1
- data/spec/lib/runner_spec.rb +72 -72
- data/spec/lib/spec_state_spec.rb +3 -15
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ef3935e2938c11f5fdcd34aa6fd3692fdc46d9ba
|
4
|
+
data.tar.gz: c2fe24f694f378c05cd3531e0031471882e8cd34
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b9867a0c2be875a7c97ef1835de2ab14bdb2e5645f3b6eb268c8e3dff3137a0a9b2402d03e0ee762d8d1eb123874af4d55911b575cd6a9501cfdf59d68a78f95
|
7
|
+
data.tar.gz: 4c8c3fb0c17fdde975d241c8eb37fa119dd502833aca3817c047f3837b766bc6349fe9d3020290e67c192591c7eda8a0b08961ac0a7012d7bce187f45eb30159
|
@@ -1,4 +1,3 @@
|
|
1
|
-
require 'open3'
|
2
1
|
require 'guard/ui'
|
3
2
|
|
4
3
|
module Guard
|
@@ -18,13 +17,13 @@ module Guard
|
|
18
17
|
|
19
18
|
def self.print_message
|
20
19
|
message = @options[:message]
|
21
|
-
|
20
|
+
is_all_specs = @paths.sort == @options[:paths_for_all_specs].sort
|
22
21
|
message ||= is_all_specs ? "Running all specs" : "Running: #{@paths.join(' ')}"
|
23
22
|
::Guard::UI.info(message, :reset => true)
|
24
23
|
end
|
25
24
|
|
26
25
|
def self.execute_mocha_node_command
|
27
|
-
|
26
|
+
Kernel.system(*mocha_node_command)
|
28
27
|
end
|
29
28
|
|
30
29
|
def self.mocha_node_command
|
@@ -36,34 +35,34 @@ module Guard
|
|
36
35
|
|
37
36
|
def self.command_line_options
|
38
37
|
options = []
|
39
|
-
|
38
|
+
compilers = []
|
40
39
|
|
41
40
|
if @options[:coffeescript]
|
42
41
|
compilers << "coffee:coffee-script"
|
43
42
|
end
|
44
43
|
|
45
|
-
|
44
|
+
if @options[:livescript]
|
46
45
|
compilers << "ls:LiveScript"
|
47
46
|
end
|
48
47
|
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
48
|
+
if not compilers.empty?
|
49
|
+
options << "--compilers"
|
50
|
+
options << compilers.join(",")
|
51
|
+
end
|
53
52
|
|
54
53
|
if @options[:recursive]
|
55
54
|
options << "--recursive"
|
56
55
|
end
|
57
56
|
|
58
|
-
|
59
|
-
|
60
|
-
|
57
|
+
if @options[:require]
|
58
|
+
r = @options[:require]
|
59
|
+
r = [r] if not r.instance_of? Array
|
61
60
|
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
61
|
+
r.each { |e|
|
62
|
+
options << "-r"
|
63
|
+
options << e
|
64
|
+
}
|
65
|
+
end
|
67
66
|
|
68
67
|
if @options[:color]
|
69
68
|
options << "-c"
|
@@ -81,8 +80,8 @@ module Guard
|
|
81
80
|
options << @options[:reporter]
|
82
81
|
end
|
83
82
|
|
84
|
-
|
85
|
-
|
83
|
+
# puts "---- printing the options"
|
84
|
+
# puts options
|
86
85
|
options
|
87
86
|
end
|
88
87
|
end
|
@@ -1,14 +1,6 @@
|
|
1
1
|
module Guard
|
2
2
|
class MochaNode
|
3
3
|
class SpecState
|
4
|
-
STDIN = 0
|
5
|
-
STDOUT = 1
|
6
|
-
STDERR = 2
|
7
|
-
THREAD = 3
|
8
|
-
|
9
|
-
SUCCESS_CODE = 0
|
10
|
-
ERROR_CODE = 1
|
11
|
-
|
12
4
|
attr_accessor :failing_paths
|
13
5
|
|
14
6
|
def initialize
|
@@ -17,17 +9,7 @@ module Guard
|
|
17
9
|
|
18
10
|
def update(run_paths = [], options = {})
|
19
11
|
@run_paths = run_paths
|
20
|
-
@
|
21
|
-
@stdout = @io[STDOUT]
|
22
|
-
@stderr = @io[STDERR]
|
23
|
-
# stream stdout immediately
|
24
|
-
until @stdout.eof?
|
25
|
-
line = @stdout.gets
|
26
|
-
print line if !line.strip.empty?
|
27
|
-
end
|
28
|
-
@stderr.each { |line| print line }
|
29
|
-
@exitstatus = @io[THREAD].value rescue ERROR_CODE
|
30
|
-
close_io
|
12
|
+
@exitok = Runner.run(@run_paths, options)
|
31
13
|
update_passed_and_fixed
|
32
14
|
update_failing_paths
|
33
15
|
passing?
|
@@ -49,13 +31,9 @@ module Guard
|
|
49
31
|
|
50
32
|
private
|
51
33
|
|
52
|
-
def close_io
|
53
|
-
@io[STDIN..STDERR].each { |s| s.close }
|
54
|
-
end
|
55
|
-
|
56
34
|
def update_passed_and_fixed
|
57
35
|
previously_failed = !passing?
|
58
|
-
@passed = @
|
36
|
+
@passed = @exitok
|
59
37
|
@fixed = @passed && previously_failed
|
60
38
|
end
|
61
39
|
|
data/spec/lib/runner_spec.rb
CHANGED
@@ -4,7 +4,7 @@ describe Guard::MochaNode::Runner do
|
|
4
4
|
let(:runner) { Guard::MochaNode::Runner }
|
5
5
|
|
6
6
|
before do
|
7
|
-
|
7
|
+
Kernel.stub(:system => "response")
|
8
8
|
end
|
9
9
|
|
10
10
|
describe ".run" do
|
@@ -19,118 +19,118 @@ describe Guard::MochaNode::Runner do
|
|
19
19
|
let(:some_paths) { %w(/foo/bar /zip/zap) }
|
20
20
|
|
21
21
|
it "executes mocha node" do
|
22
|
-
|
23
|
-
|
24
|
-
|
22
|
+
Kernel.should_receive(:system) do |*args|
|
23
|
+
args[0].should eq "__EXECUTABLE__"
|
24
|
+
end
|
25
25
|
runner.run(some_paths, options.merge({ :mocha_bin => "__EXECUTABLE__"}))
|
26
26
|
end
|
27
27
|
|
28
28
|
it "passes the paths to the executable" do
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
29
|
+
Kernel.should_receive(:system) do |*args|
|
30
|
+
last_args = args[(some_paths.length * -1)..(-1)]
|
31
|
+
last_args.should eql some_paths
|
32
|
+
end
|
33
33
|
runner.run(some_paths, options)
|
34
34
|
end
|
35
35
|
|
36
36
|
context "and coffeescript option is true" do
|
37
37
|
it "passes the --compilers coffee:coffee-script option to mocha node" do
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
38
|
+
Kernel.should_receive(:system) do |*args|
|
39
|
+
index_compilers = args.find_index "--compilers"
|
40
|
+
index_compilers.should_not be nil
|
41
|
+
args[index_compilers +1].should eql "coffee:coffee-script"
|
42
|
+
end
|
43
|
+
runner.run(some_paths, options.merge({ :coffeescript => true}))
|
44
44
|
end
|
45
45
|
end
|
46
46
|
|
47
47
|
context "and coffeescript option is false" do
|
48
48
|
it "does not pass the --compilers coffee:coffee-script option to mocha node" do
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
49
|
+
Kernel.should_receive(:system) do |*args|
|
50
|
+
index_compilers = args.find_index "--compilers"
|
51
|
+
if index_compilers != nil
|
52
|
+
args[index_compilers +1].should_not match /coffee:coffee-script/
|
53
|
+
end
|
54
|
+
end
|
55
55
|
runner.run(some_paths, options.merge({ :coffeescript => false}))
|
56
56
|
end
|
57
57
|
end
|
58
58
|
|
59
59
|
context "and livescript option is true" do
|
60
60
|
it "passes the --compilers ls:LiveScript option to mocha node" do
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
61
|
+
Kernel.should_receive(:system) do |*args|
|
62
|
+
index_compilers = args.find_index "--compilers"
|
63
|
+
index_compilers.should_not be nil
|
64
|
+
args[index_compilers +1].should eql "ls:LiveScript"
|
65
|
+
end
|
66
|
+
runner.run(some_paths, options.merge({ :livescript => true}))
|
67
67
|
end
|
68
68
|
end
|
69
69
|
|
70
70
|
context "and livescript option is false" do
|
71
71
|
it "does not pass the --compilers ls:LiveScript option to mocha node" do
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
72
|
+
Kernel.should_receive(:system) do |*args|
|
73
|
+
index_compilers = args.find_index "--compilers"
|
74
|
+
if index_compilers != nil
|
75
|
+
args[index_compilers +1].should_not match /ls:LiveScript/
|
76
|
+
end
|
77
|
+
end
|
78
78
|
runner.run(some_paths, options.merge({ :livescript => false}))
|
79
79
|
end
|
80
80
|
end
|
81
81
|
|
82
82
|
context "and both coffeescript and livescript option are true" do
|
83
83
|
it "passes the --compilers coffee:coffee-script,ls:LiveScript option to mocha node" do
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
84
|
+
Kernel.should_receive(:system) do |*args|
|
85
|
+
index_compilers = args.find_index "--compilers"
|
86
|
+
index_compilers.should_not be nil
|
87
|
+
args[index_compilers +1].should eql "coffee:coffee-script,ls:LiveScript"
|
88
|
+
end
|
89
|
+
runner.run(some_paths, options.merge({ :livescript => true, :coffeescript => true }))
|
90
90
|
end
|
91
91
|
end
|
92
92
|
|
93
93
|
context "and color option is true" do
|
94
94
|
it "passes the -c option to mocha node" do
|
95
|
-
|
96
|
-
|
97
|
-
|
95
|
+
Kernel.should_receive(:system) do |*args|
|
96
|
+
args.should include "-c"
|
97
|
+
end
|
98
98
|
runner.run(some_paths, options.merge({ :color => true}))
|
99
99
|
end
|
100
100
|
end
|
101
101
|
|
102
102
|
context "and color option is false" do
|
103
103
|
it "passes the -C option to mocha node" do
|
104
|
-
|
105
|
-
|
106
|
-
|
104
|
+
Kernel.should_receive(:system) do |*args|
|
105
|
+
args.should include "-C"
|
106
|
+
end
|
107
107
|
runner.run(some_paths, options.merge({ :color => false}))
|
108
108
|
end
|
109
109
|
end
|
110
110
|
|
111
111
|
context "and globals option is set" do
|
112
112
|
it "passes the --globals option to mocha node" do
|
113
|
-
|
114
|
-
|
113
|
+
Kernel.should_receive(:system) do |*args|
|
114
|
+
args.should include("--globals", "Foo")
|
115
115
|
# ensure ordering
|
116
116
|
args[args.index("--globals") + 1].should eql("Foo")
|
117
|
-
|
117
|
+
end
|
118
118
|
runner.run(some_paths, options.merge({ :globals => ['Foo']}))
|
119
119
|
end
|
120
120
|
end
|
121
121
|
|
122
122
|
context "and globals option is empty" do
|
123
123
|
it "does not pass the --globals option to mocha node" do
|
124
|
-
|
125
|
-
|
126
|
-
|
124
|
+
Kernel.should_receive(:system) do |*args|
|
125
|
+
args.should_not include "--globals"
|
126
|
+
end
|
127
127
|
runner.run(some_paths, options.merge({ :globals => []}))
|
128
128
|
end
|
129
129
|
end
|
130
130
|
|
131
131
|
context "and reporter option is set" do
|
132
132
|
it "passes the --reporter option to mocha node" do
|
133
|
-
|
133
|
+
Kernel.should_receive(:system) do |*args|
|
134
134
|
args.should include("--reporter", "Foo")
|
135
135
|
# ensure ordering
|
136
136
|
args[args.index("--reporter") + 1].should eql("Foo")
|
@@ -141,7 +141,7 @@ describe Guard::MochaNode::Runner do
|
|
141
141
|
|
142
142
|
context "and reporter option is not set" do
|
143
143
|
it "does not pass the --reporter option to mocha node" do
|
144
|
-
|
144
|
+
Kernel.should_receive(:system) do |*args|
|
145
145
|
args.should_not include "--reporter"
|
146
146
|
end
|
147
147
|
runner.run(some_paths, options)
|
@@ -150,57 +150,57 @@ describe Guard::MochaNode::Runner do
|
|
150
150
|
|
151
151
|
context "and recursive option is true" do
|
152
152
|
it "passes the --recursive option to mocha node" do
|
153
|
-
|
154
|
-
|
155
|
-
|
153
|
+
Kernel.should_receive(:system) do |*args|
|
154
|
+
args.should include "--recursive"
|
155
|
+
end
|
156
156
|
runner.run(some_paths, options.merge({ :recursive => true}))
|
157
157
|
end
|
158
158
|
end
|
159
159
|
|
160
160
|
context "and recursive option is false" do
|
161
161
|
it "does not pass the --recursive option to mocha node" do
|
162
|
-
|
163
|
-
|
164
|
-
|
162
|
+
Kernel.should_receive(:system) do |*args|
|
163
|
+
args.should_not include "--recursive"
|
164
|
+
end
|
165
165
|
runner.run(some_paths, options.merge({ :recursive => false}))
|
166
166
|
end
|
167
167
|
end
|
168
168
|
|
169
169
|
context "and require option is 'should'" do
|
170
170
|
it "passes the '-r should' option to mocha node" do
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
171
|
+
Kernel.should_receive(:system) do |*args|
|
172
|
+
require_index = args.find_index '-r'
|
173
|
+
require_index.should_not eq nil
|
174
|
+
args[require_index+1].should eql "should"
|
175
|
+
end
|
176
176
|
runner.run(some_paths, options.merge({ :require => 'should'}))
|
177
177
|
end
|
178
178
|
end
|
179
179
|
|
180
180
|
context "and require option is ['should', 'chai']" do
|
181
181
|
it "passes the '-r should -r chai' option to mocha node" do
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
182
|
+
Kernel.should_receive(:system) do |*args|
|
183
|
+
args.each_with_index.
|
184
|
+
reject{ |e,i| e != '-r' }.
|
185
|
+
map{ |e,i| args[i+1] }.should eql ["should", "chai"]
|
186
186
|
|
187
|
-
|
187
|
+
end
|
188
188
|
runner.run(some_paths, options.merge({ :require => ['should', 'chai'] }))
|
189
189
|
end
|
190
190
|
end
|
191
191
|
|
192
192
|
context "and require option is nil" do
|
193
193
|
it "does not pass the -r option to mocha node" do
|
194
|
-
|
195
|
-
|
196
|
-
|
194
|
+
Kernel.should_receive(:system) do |*args|
|
195
|
+
args.should_not include "-r"
|
196
|
+
end
|
197
197
|
runner.run(some_paths, options.merge({ :require => nil}))
|
198
198
|
end
|
199
199
|
end
|
200
200
|
|
201
201
|
it "returns IO object" do
|
202
202
|
io_obj = double("io obj")
|
203
|
-
|
203
|
+
Kernel.stub(:system => io_obj)
|
204
204
|
runner.run(some_paths, options).should eql io_obj
|
205
205
|
end
|
206
206
|
|
data/spec/lib/spec_state_spec.rb
CHANGED
@@ -19,32 +19,20 @@ describe Guard::MochaNode::SpecState do
|
|
19
19
|
end
|
20
20
|
|
21
21
|
describe "#update" do
|
22
|
-
let(:io) { [
|
23
|
-
double("stdin", :close => true),
|
24
|
-
double("stdout", :close => true, :lines => [], :eof? => true),
|
25
|
-
double("stderr", :close => true, :each => []),
|
26
|
-
double("thread", :value => 0)
|
27
|
-
] }
|
28
22
|
let(:some_paths) { %w(some paths) }
|
29
23
|
let(:some_options) { double("some options") }
|
30
24
|
|
31
25
|
before do
|
32
|
-
runner.stub(:run =>
|
26
|
+
runner.stub(:run => true)
|
33
27
|
end
|
34
28
|
|
35
29
|
it "runs the runner with the paths and options" do
|
36
|
-
runner.should_receive(:run).with(some_paths, some_options).and_return(
|
30
|
+
runner.should_receive(:run).with(some_paths, some_options).and_return(true)
|
37
31
|
state.update(some_paths, some_options)
|
38
32
|
end
|
39
33
|
|
40
|
-
it "closes stdin, stdout, and stderr of the subprocess" do
|
41
|
-
io[0..2].each { |i| i.should_receive(:close) }
|
42
|
-
state.update
|
43
|
-
end
|
44
|
-
|
45
34
|
context "when the runner process exit value is zero" do
|
46
35
|
before do
|
47
|
-
io[3].stub(:value => 0)
|
48
36
|
state.update
|
49
37
|
end
|
50
38
|
|
@@ -94,7 +82,7 @@ describe Guard::MochaNode::SpecState do
|
|
94
82
|
|
95
83
|
context "when the runner process exit value is not zero" do
|
96
84
|
before do
|
97
|
-
|
85
|
+
runner.stub(:run => false)
|
98
86
|
state.update(some_paths, some_options)
|
99
87
|
end
|
100
88
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: guard-mocha-node
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- dave@kapoq.com
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-07
|
12
|
+
date: 2013-08-07 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: guard
|