mspec 1.4.0 → 1.5.0
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.
- data/lib/mspec/commands/mkspec.rb +16 -22
- data/lib/mspec/commands/mspec-ci.rb +41 -50
- data/lib/mspec/commands/mspec-run.rb +46 -53
- data/lib/mspec/commands/mspec-tag.rb +81 -50
- data/lib/mspec/commands/mspec.rb +35 -26
- data/lib/mspec/guards.rb +1 -0
- data/lib/mspec/guards/guard.rb +2 -15
- data/lib/mspec/helpers.rb +1 -0
- data/lib/mspec/helpers/ruby_exe.rb +101 -0
- data/lib/mspec/ruby_name.rb +8 -0
- data/lib/mspec/runner/actions.rb +1 -0
- data/lib/mspec/runner/actions/filter.rb +1 -1
- data/lib/mspec/runner/actions/taglist.rb +56 -0
- data/lib/mspec/runner/filters/tag.rb +1 -1
- data/lib/mspec/runner/mspec.rb +3 -1
- data/lib/mspec/utils/options.rb +258 -195
- data/lib/mspec/utils/script.rb +11 -1
- data/lib/mspec/version.rb +1 -1
- data/spec/commands/mkspec_spec.rb +19 -18
- data/spec/commands/mspec_ci_spec.rb +13 -40
- data/spec/commands/mspec_run_spec.rb +14 -14
- data/spec/commands/mspec_spec.rb +41 -7
- data/spec/commands/mspec_tag_spec.rb +248 -15
- data/spec/helpers/ruby_exe_spec.rb +115 -0
- data/spec/runner/actions/filter_spec.rb +4 -4
- data/spec/runner/actions/tag_spec.rb +1 -5
- data/spec/runner/actions/taglist_spec.rb +152 -0
- data/spec/runner/filters/tag_spec.rb +1 -1
- data/spec/runner/mspec_spec.rb +1 -1
- data/spec/spec_helper.rb +2 -1
- data/spec/utils/options_spec.rb +562 -283
- data/spec/utils/script_spec.rb +32 -0
- metadata +6 -1
data/lib/mspec/utils/script.rb
CHANGED
@@ -27,6 +27,7 @@ class MSpecScript
|
|
27
27
|
config[:xprofiles] = []
|
28
28
|
config[:atags] = []
|
29
29
|
config[:astrings] = []
|
30
|
+
config[:ltags] = []
|
30
31
|
config[:abort] = true
|
31
32
|
end
|
32
33
|
|
@@ -51,7 +52,7 @@ class MSpecScript
|
|
51
52
|
end
|
52
53
|
|
53
54
|
def register
|
54
|
-
config[:formatter].new(config[:output]).register
|
55
|
+
config[:formatter].new(config[:output]).register if config[:formatter]
|
55
56
|
|
56
57
|
MatchFilter.new(:include, *config[:includes]).register unless config[:includes].empty?
|
57
58
|
MatchFilter.new(:exclude, *config[:excludes]).register unless config[:excludes].empty?
|
@@ -75,6 +76,15 @@ class MSpecScript
|
|
75
76
|
end
|
76
77
|
end
|
77
78
|
|
79
|
+
def files(list)
|
80
|
+
list.inject([]) do |files, item|
|
81
|
+
stat = File.stat(File.expand_path(item))
|
82
|
+
files << item if stat.file?
|
83
|
+
files.concat(Dir[item+"/**/*_spec.rb"].sort) if stat.directory?
|
84
|
+
files
|
85
|
+
end
|
86
|
+
end
|
87
|
+
|
78
88
|
def self.main
|
79
89
|
$VERBOSE = nil unless ENV['OUTPUT_WARNINGS']
|
80
90
|
script = new
|
data/lib/mspec/version.rb
CHANGED
@@ -4,16 +4,16 @@ require 'mspec/commands/mkspec'
|
|
4
4
|
|
5
5
|
describe "The -c, --constant CONSTANT option" do
|
6
6
|
before :each do
|
7
|
-
@options =
|
8
|
-
|
7
|
+
@options = MSpecOptions.new
|
8
|
+
MSpecOptions.stub!(:new).and_return(@options)
|
9
9
|
@script = MkSpec.new
|
10
10
|
@config = @script.config
|
11
11
|
end
|
12
12
|
|
13
13
|
it "is enabled by #options" do
|
14
14
|
@options.stub!(:on)
|
15
|
-
@options.should_receive(:on).with("-c", "--constant CONSTANT",
|
16
|
-
|
15
|
+
@options.should_receive(:on).with("-c", "--constant", "CONSTANT",
|
16
|
+
an_instance_of(String))
|
17
17
|
@script.options
|
18
18
|
end
|
19
19
|
|
@@ -28,16 +28,16 @@ end
|
|
28
28
|
|
29
29
|
describe "The -b, --base DIR option" do
|
30
30
|
before :each do
|
31
|
-
@options =
|
32
|
-
|
31
|
+
@options = MSpecOptions.new
|
32
|
+
MSpecOptions.stub!(:new).and_return(@options)
|
33
33
|
@script = MkSpec.new
|
34
34
|
@config = @script.config
|
35
35
|
end
|
36
36
|
|
37
37
|
it "is enabled by #options" do
|
38
38
|
@options.stub!(:on)
|
39
|
-
@options.should_receive(:on).with("-b", "--base DIR",
|
40
|
-
|
39
|
+
@options.should_receive(:on).with("-b", "--base", "DIR",
|
40
|
+
an_instance_of(String))
|
41
41
|
@script.options
|
42
42
|
end
|
43
43
|
|
@@ -52,16 +52,16 @@ end
|
|
52
52
|
|
53
53
|
describe "The -r, --require LIBRARY option" do
|
54
54
|
before :each do
|
55
|
-
@options =
|
56
|
-
|
55
|
+
@options = MSpecOptions.new
|
56
|
+
MSpecOptions.stub!(:new).and_return(@options)
|
57
57
|
@script = MkSpec.new
|
58
58
|
@config = @script.config
|
59
59
|
end
|
60
60
|
|
61
61
|
it "is enabled by #options" do
|
62
62
|
@options.stub!(:on)
|
63
|
-
@options.should_receive(:on).with("-r", "--require LIBRARY",
|
64
|
-
|
63
|
+
@options.should_receive(:on).with("-r", "--require", "LIBRARY",
|
64
|
+
an_instance_of(String))
|
65
65
|
@script.options
|
66
66
|
end
|
67
67
|
|
@@ -76,8 +76,8 @@ end
|
|
76
76
|
|
77
77
|
describe MkSpec, "#options" do
|
78
78
|
before :each do
|
79
|
-
@options =
|
80
|
-
|
79
|
+
@options = MSpecOptions.new
|
80
|
+
MSpecOptions.stub!(:new).and_return(@options)
|
81
81
|
@script = MkSpec.new
|
82
82
|
end
|
83
83
|
|
@@ -92,8 +92,9 @@ describe MkSpec, "#options" do
|
|
92
92
|
end
|
93
93
|
|
94
94
|
it "prints help and exits if passed an unrecognized option" do
|
95
|
-
@
|
96
|
-
@
|
95
|
+
@options.should_receive(:raise).with(MSpecOptions::ParseError, an_instance_of(String))
|
96
|
+
@options.stub!(:puts)
|
97
|
+
@options.stub!(:exit)
|
97
98
|
@script.options "--iunknown"
|
98
99
|
end
|
99
100
|
end
|
@@ -257,8 +258,8 @@ end
|
|
257
258
|
|
258
259
|
describe MkSpec, "#run" do
|
259
260
|
before :each do
|
260
|
-
@options =
|
261
|
-
|
261
|
+
@options = MSpecOptions.new
|
262
|
+
MSpecOptions.stub!(:new).and_return(@options)
|
262
263
|
|
263
264
|
@map = NameMap.new
|
264
265
|
NameMap.stub!(:new).and_return(@map)
|
@@ -13,7 +13,7 @@ describe MSpecCI, "#options" do
|
|
13
13
|
end
|
14
14
|
|
15
15
|
it "enables the config option" do
|
16
|
-
@options.should_receive(:
|
16
|
+
@options.should_receive(:configure)
|
17
17
|
@script.options
|
18
18
|
end
|
19
19
|
|
@@ -23,47 +23,47 @@ describe MSpecCI, "#options" do
|
|
23
23
|
end
|
24
24
|
|
25
25
|
it "enables the name option" do
|
26
|
-
@options.should_receive(:
|
26
|
+
@options.should_receive(:name)
|
27
27
|
@script.options
|
28
28
|
end
|
29
29
|
|
30
30
|
it "enables the dry run option" do
|
31
|
-
@options.should_receive(:
|
31
|
+
@options.should_receive(:pretend)
|
32
32
|
@script.options
|
33
33
|
end
|
34
34
|
|
35
35
|
it "enables the interrupt single specs option" do
|
36
|
-
@options.should_receive(:
|
36
|
+
@options.should_receive(:interrupt)
|
37
37
|
@script.options
|
38
38
|
end
|
39
39
|
|
40
40
|
it "enables the formatter options" do
|
41
|
-
@options.should_receive(:
|
41
|
+
@options.should_receive(:formatters)
|
42
42
|
@script.options
|
43
43
|
end
|
44
44
|
|
45
45
|
it "enables the verbose option" do
|
46
|
-
@options.should_receive(:
|
46
|
+
@options.should_receive(:verbose)
|
47
47
|
@script.options
|
48
48
|
end
|
49
49
|
|
50
50
|
it "enables the action options" do
|
51
|
-
@options.should_receive(:
|
51
|
+
@options.should_receive(:actions)
|
52
52
|
@script.options
|
53
53
|
end
|
54
54
|
|
55
55
|
it "enables the action filter options" do
|
56
|
-
@options.should_receive(:
|
56
|
+
@options.should_receive(:action_filters)
|
57
57
|
@script.options
|
58
58
|
end
|
59
59
|
|
60
60
|
it "enables the version option" do
|
61
|
-
@options.should_receive(:
|
61
|
+
@options.should_receive(:version)
|
62
62
|
@script.options
|
63
63
|
end
|
64
64
|
|
65
65
|
it "enables the help option" do
|
66
|
-
@options.should_receive(:
|
66
|
+
@options.should_receive(:help)
|
67
67
|
@script.options
|
68
68
|
end
|
69
69
|
end
|
@@ -100,37 +100,10 @@ describe MSpecCI, "#run" do
|
|
100
100
|
@script.run
|
101
101
|
end
|
102
102
|
|
103
|
-
it "registers a tag filter for 'fails'" do
|
103
|
+
it "registers a tag filter for 'fails', 'unstable', 'incomplete', 'critical', 'unsupported'" do
|
104
104
|
filter = mock("fails filter")
|
105
|
-
TagFilter.should_receive(:new).with(:exclude,
|
106
|
-
|
107
|
-
@script.run
|
108
|
-
end
|
109
|
-
|
110
|
-
it "registers a tag filter for 'unstable'" do
|
111
|
-
filter = mock("unstable filter")
|
112
|
-
TagFilter.should_receive(:new).with(:exclude, 'unstable').and_return(filter)
|
113
|
-
filter.should_receive(:register)
|
114
|
-
@script.run
|
115
|
-
end
|
116
|
-
|
117
|
-
it "registers a tag filter for 'incomplete'" do
|
118
|
-
filter = mock("incomplete filter")
|
119
|
-
TagFilter.should_receive(:new).with(:exclude, 'incomplete').and_return(filter)
|
120
|
-
filter.should_receive(:register)
|
121
|
-
@script.run
|
122
|
-
end
|
123
|
-
|
124
|
-
it "registers a tag filter for 'critical'" do
|
125
|
-
filter = mock("critical filter")
|
126
|
-
TagFilter.should_receive(:new).with(:exclude, 'critical').and_return(filter)
|
127
|
-
filter.should_receive(:register)
|
128
|
-
@script.run
|
129
|
-
end
|
130
|
-
|
131
|
-
it "registers a tag filter for 'unsupported'" do
|
132
|
-
filter = mock("unsupported filter")
|
133
|
-
TagFilter.should_receive(:new).with(:exclude, 'unsupported').and_return(filter)
|
105
|
+
TagFilter.should_receive(:new).with(:exclude,
|
106
|
+
"fails", "critical", "unstable", "incomplete", "unsupported").and_return(filter)
|
134
107
|
filter.should_receive(:register)
|
135
108
|
@script.run
|
136
109
|
end
|
@@ -19,12 +19,12 @@ describe MSpecRun, "#options" do
|
|
19
19
|
end
|
20
20
|
|
21
21
|
it "enables the filter options" do
|
22
|
-
@options.should_receive(:
|
22
|
+
@options.should_receive(:filters)
|
23
23
|
@script.options @argv
|
24
24
|
end
|
25
25
|
|
26
|
-
it "enables the
|
27
|
-
@options.should_receive(:
|
26
|
+
it "enables the configure option" do
|
27
|
+
@options.should_receive(:configure)
|
28
28
|
@script.options @argv
|
29
29
|
end
|
30
30
|
|
@@ -34,57 +34,57 @@ describe MSpecRun, "#options" do
|
|
34
34
|
end
|
35
35
|
|
36
36
|
it "enables the name option" do
|
37
|
-
@options.should_receive(:
|
37
|
+
@options.should_receive(:name)
|
38
38
|
@script.options @argv
|
39
39
|
end
|
40
40
|
|
41
41
|
it "enables the randomize option to runs specs in random order" do
|
42
|
-
@options.should_receive(:
|
42
|
+
@options.should_receive(:randomize)
|
43
43
|
@script.options @argv
|
44
44
|
end
|
45
45
|
|
46
46
|
it "enables the dry run option" do
|
47
|
-
@options.should_receive(:
|
47
|
+
@options.should_receive(:pretend)
|
48
48
|
@script.options @argv
|
49
49
|
end
|
50
50
|
|
51
51
|
it "enables the interrupt single specs option" do
|
52
|
-
@options.should_receive(:
|
52
|
+
@options.should_receive(:interrupt)
|
53
53
|
@script.options @argv
|
54
54
|
end
|
55
55
|
|
56
56
|
it "enables the formatter options" do
|
57
|
-
@options.should_receive(:
|
57
|
+
@options.should_receive(:formatters)
|
58
58
|
@script.options @argv
|
59
59
|
end
|
60
60
|
|
61
61
|
it "enables the verbose option" do
|
62
|
-
@options.should_receive(:
|
62
|
+
@options.should_receive(:verbose)
|
63
63
|
@script.options @argv
|
64
64
|
end
|
65
65
|
|
66
66
|
it "enables the verify options" do
|
67
|
-
@options.should_receive(:
|
67
|
+
@options.should_receive(:verify)
|
68
68
|
@script.options @argv
|
69
69
|
end
|
70
70
|
|
71
71
|
it "enables the action options" do
|
72
|
-
@options.should_receive(:
|
72
|
+
@options.should_receive(:actions)
|
73
73
|
@script.options @argv
|
74
74
|
end
|
75
75
|
|
76
76
|
it "enables the action filter options" do
|
77
|
-
@options.should_receive(:
|
77
|
+
@options.should_receive(:action_filters)
|
78
78
|
@script.options @argv
|
79
79
|
end
|
80
80
|
|
81
81
|
it "enables the version option" do
|
82
|
-
@options.should_receive(:
|
82
|
+
@options.should_receive(:version)
|
83
83
|
@script.options @argv
|
84
84
|
end
|
85
85
|
|
86
86
|
it "enables the help option" do
|
87
|
-
@options.should_receive(:
|
87
|
+
@options.should_receive(:help)
|
88
88
|
@script.options @argv
|
89
89
|
end
|
90
90
|
|
data/spec/commands/mspec_spec.rb
CHANGED
@@ -5,16 +5,14 @@ require 'mspec/commands/mspec'
|
|
5
5
|
describe MSpecMain, "#options" do
|
6
6
|
before :each do
|
7
7
|
@options, @config = new_option
|
8
|
-
@options.stub!(:parser).and_return(mock("parser"))
|
9
|
-
@options.parser.stub!(:filter!).and_return(["blocked!"])
|
10
8
|
MSpecOptions.stub!(:new).and_return(@options)
|
11
9
|
|
12
10
|
@script = MSpecMain.new
|
13
11
|
@script.stub!(:config).and_return(@config)
|
14
12
|
end
|
15
13
|
|
16
|
-
it "enables the
|
17
|
-
@options.should_receive(:
|
14
|
+
it "enables the configure option" do
|
15
|
+
@options.should_receive(:configure)
|
18
16
|
@script.options
|
19
17
|
end
|
20
18
|
|
@@ -24,14 +22,36 @@ describe MSpecMain, "#options" do
|
|
24
22
|
end
|
25
23
|
|
26
24
|
it "enables the target options" do
|
27
|
-
@options.should_receive(:
|
25
|
+
@options.should_receive(:targets)
|
28
26
|
@script.options
|
29
27
|
end
|
30
28
|
|
31
29
|
it "enables the version option" do
|
32
|
-
@options.should_receive(:
|
30
|
+
@options.should_receive(:version)
|
33
31
|
@script.options
|
34
32
|
end
|
33
|
+
|
34
|
+
it "sets config[:options] to all argv entries that are not registered options" do
|
35
|
+
@options.on "-X", "--exclude", "ARG", "description"
|
36
|
+
@script.options [".", "-G", "fail", "-X", "ARG", "--list", "unstable", "some/file.rb"]
|
37
|
+
@config[:options].should == [".", "-G", "fail", "--list", "unstable", "some/file.rb"]
|
38
|
+
end
|
39
|
+
|
40
|
+
it "passes -h, --help to the subscript" do
|
41
|
+
["-h", "--help"].each do |opt|
|
42
|
+
@config[:options] = []
|
43
|
+
@script.options ["ci", opt]
|
44
|
+
@config[:options].sort.should == ["-h"]
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
it "passes -v, --version to the subscript" do
|
49
|
+
["-v", "--version"].each do |opt|
|
50
|
+
@config[:options] = []
|
51
|
+
@script.options ["ci", opt]
|
52
|
+
@config[:options].sort.should == ["-v"]
|
53
|
+
end
|
54
|
+
end
|
35
55
|
end
|
36
56
|
|
37
57
|
describe MSpecMain, "#parallel" do
|
@@ -205,15 +225,29 @@ describe MSpecMain, "#run" do
|
|
205
225
|
@options, @config = new_option
|
206
226
|
MSpecOptions.stub!(:new).and_return(@options)
|
207
227
|
@script = MSpecMain.new
|
228
|
+
@script.stub!(:config).and_return(@config)
|
229
|
+
@script.stub!(:exec)
|
208
230
|
end
|
209
231
|
|
210
232
|
it "sets MSPEC_RUNNER = '1' in the environment" do
|
211
|
-
@script.stub!(:exec)
|
212
233
|
ENV["MSPEC_RUNNER"] = "0"
|
213
234
|
@script.run
|
214
235
|
ENV["MSPEC_RUNNER"].should == "1"
|
215
236
|
end
|
216
237
|
|
238
|
+
it "sets RUBY_EXE = config[:target] in the environment" do
|
239
|
+
ENV["RUBY_EXE"] = nil
|
240
|
+
@script.run
|
241
|
+
ENV["RUBY_EXE"].should == @config[:target]
|
242
|
+
end
|
243
|
+
|
244
|
+
it "sets RUBY_FLAGS = config[:flags] in the environment" do
|
245
|
+
ENV["RUBY_FLAGS"] = nil
|
246
|
+
@config[:flags] = ["-w", "-Q"]
|
247
|
+
@script.run
|
248
|
+
ENV["RUBY_FLAGS"].should == "-w -Q"
|
249
|
+
end
|
250
|
+
|
217
251
|
it "uses exec to invoke the runner script" do
|
218
252
|
@script.should_receive(:exec).with("ruby", "-v", %r"mspec/bin/mspec-run$")
|
219
253
|
@script.options
|
@@ -1,6 +1,30 @@
|
|
1
1
|
require File.dirname(__FILE__) + '/../spec_helper'
|
2
2
|
require 'mspec/runner/mspec'
|
3
3
|
require 'mspec/commands/mspec-tag'
|
4
|
+
require 'mspec/runner/actions/tag'
|
5
|
+
require 'mspec/runner/actions/taglist'
|
6
|
+
|
7
|
+
describe MSpecTag, ".new" do
|
8
|
+
before :each do
|
9
|
+
@script = MSpecTag.new
|
10
|
+
end
|
11
|
+
|
12
|
+
it "sets config[:ltags] to an empty list" do
|
13
|
+
@script.config[:ltags].should == []
|
14
|
+
end
|
15
|
+
|
16
|
+
it "sets config[:tagger] to :add" do
|
17
|
+
@script.config[:tagger] = :add
|
18
|
+
end
|
19
|
+
|
20
|
+
it "sets config[:tag] to 'fails:'" do
|
21
|
+
@script.config[:tag] = 'fails:'
|
22
|
+
end
|
23
|
+
|
24
|
+
it "sets config[:outcome] to :fail" do
|
25
|
+
@script.config[:outcome] = :fail
|
26
|
+
end
|
27
|
+
end
|
4
28
|
|
5
29
|
describe MSpecTag, "#options" do
|
6
30
|
before :each do
|
@@ -19,12 +43,12 @@ describe MSpecTag, "#options" do
|
|
19
43
|
end
|
20
44
|
|
21
45
|
it "enables the filter options" do
|
22
|
-
@options.should_receive(:
|
46
|
+
@options.should_receive(:filters)
|
23
47
|
@script.options @argv
|
24
48
|
end
|
25
49
|
|
26
|
-
it "enables the
|
27
|
-
@options.should_receive(:
|
50
|
+
it "enables the configure option" do
|
51
|
+
@options.should_receive(:configure)
|
28
52
|
@script.options @argv
|
29
53
|
end
|
30
54
|
|
@@ -34,42 +58,37 @@ describe MSpecTag, "#options" do
|
|
34
58
|
end
|
35
59
|
|
36
60
|
it "enables the name option" do
|
37
|
-
@options.should_receive(:
|
61
|
+
@options.should_receive(:name)
|
38
62
|
@script.options @argv
|
39
63
|
end
|
40
64
|
|
41
65
|
it "enables the dry run option" do
|
42
|
-
@options.should_receive(:
|
66
|
+
@options.should_receive(:pretend)
|
43
67
|
@script.options @argv
|
44
68
|
end
|
45
69
|
|
46
70
|
it "enables the interrupt single specs option" do
|
47
|
-
@options.should_receive(:
|
71
|
+
@options.should_receive(:interrupt)
|
48
72
|
@script.options @argv
|
49
73
|
end
|
50
74
|
|
51
75
|
it "enables the formatter options" do
|
52
|
-
@options.should_receive(:
|
76
|
+
@options.should_receive(:formatters)
|
53
77
|
@script.options @argv
|
54
78
|
end
|
55
79
|
|
56
80
|
it "enables the verbose option" do
|
57
|
-
@options.should_receive(:
|
58
|
-
@script.options @argv
|
59
|
-
end
|
60
|
-
|
61
|
-
it "enables the tagging options" do
|
62
|
-
@options.should_receive(:add_tagging)
|
81
|
+
@options.should_receive(:verbose)
|
63
82
|
@script.options @argv
|
64
83
|
end
|
65
84
|
|
66
85
|
it "enables the version option" do
|
67
|
-
@options.should_receive(:
|
86
|
+
@options.should_receive(:version)
|
68
87
|
@script.options @argv
|
69
88
|
end
|
70
89
|
|
71
90
|
it "enables the help option" do
|
72
|
-
@options.should_receive(:
|
91
|
+
@options.should_receive(:help)
|
73
92
|
@script.options @argv
|
74
93
|
end
|
75
94
|
|
@@ -81,6 +100,136 @@ describe MSpecTag, "#options" do
|
|
81
100
|
end
|
82
101
|
end
|
83
102
|
|
103
|
+
describe MSpecTag, "options" do
|
104
|
+
before :each do
|
105
|
+
@options, @config = new_option
|
106
|
+
MSpecOptions.stub!(:new).and_return(@options)
|
107
|
+
@script = MSpecTag.new
|
108
|
+
@script.stub!(:config).and_return(@config)
|
109
|
+
end
|
110
|
+
|
111
|
+
describe "-N, --add TAG" do
|
112
|
+
it "is enabled with #options" do
|
113
|
+
@options.stub!(:on)
|
114
|
+
@options.should_receive(:on).with("-N", "--add", "TAG", an_instance_of(String))
|
115
|
+
@script.options ["file.rb"]
|
116
|
+
end
|
117
|
+
|
118
|
+
it "sets the mode to :add and sets the tag to TAG" do
|
119
|
+
["-N", "--add"].each do |opt|
|
120
|
+
@config[:tagger] = nil
|
121
|
+
@config[:tag] = nil
|
122
|
+
@script.options [opt, "taggit", "file.rb"]
|
123
|
+
@config[:tagger].should == :add
|
124
|
+
@config[:tag].should == "taggit:"
|
125
|
+
end
|
126
|
+
end
|
127
|
+
end
|
128
|
+
|
129
|
+
describe "-R, --del TAG" do
|
130
|
+
it "is enabled with #options" do
|
131
|
+
@options.stub!(:on)
|
132
|
+
@options.should_receive(:on).with("-R", "--del", "TAG",
|
133
|
+
an_instance_of(String))
|
134
|
+
@script.options ["file.rb"]
|
135
|
+
end
|
136
|
+
|
137
|
+
it "it sets the mode to :del, the tag to TAG, and the outcome to :pass" do
|
138
|
+
["-R", "--del"].each do |opt|
|
139
|
+
@config[:tagger] = nil
|
140
|
+
@config[:tag] = nil
|
141
|
+
@config[:outcome] = nil
|
142
|
+
@script.options [opt, "taggit", "file.rb"]
|
143
|
+
@config[:tagger].should == :del
|
144
|
+
@config[:tag].should == "taggit:"
|
145
|
+
@config[:outcome].should == :pass
|
146
|
+
end
|
147
|
+
end
|
148
|
+
end
|
149
|
+
|
150
|
+
describe "-Q, --pass" do
|
151
|
+
it "is enabled with #options" do
|
152
|
+
@options.stub!(:on)
|
153
|
+
@options.should_receive(:on).with("-Q", "--pass", an_instance_of(String))
|
154
|
+
@script.options ["file.rb"]
|
155
|
+
end
|
156
|
+
|
157
|
+
it "sets the outcome to :pass" do
|
158
|
+
["-Q", "--pass"].each do |opt|
|
159
|
+
@config[:outcome] = nil
|
160
|
+
@script.options [opt, "file.rb"]
|
161
|
+
@config[:outcome].should == :pass
|
162
|
+
end
|
163
|
+
end
|
164
|
+
end
|
165
|
+
|
166
|
+
describe "-F, --fail" do
|
167
|
+
it "is enabled with #options" do
|
168
|
+
@options.stub!(:on)
|
169
|
+
@options.should_receive(:on).with("-F", "--fail", an_instance_of(String))
|
170
|
+
@script.options ["file.rb"]
|
171
|
+
end
|
172
|
+
|
173
|
+
it "sets the outcome to :fail" do
|
174
|
+
["-F", "--fail"].each do |opt|
|
175
|
+
@config[:outcome] = nil
|
176
|
+
@script.options [opt, "file.rb"]
|
177
|
+
@config[:outcome].should == :fail
|
178
|
+
end
|
179
|
+
end
|
180
|
+
end
|
181
|
+
|
182
|
+
describe "-L, --all" do
|
183
|
+
it "is enabled with #options" do
|
184
|
+
@options.stub!(:on)
|
185
|
+
@options.should_receive(:on).with("-L", "--all", an_instance_of(String))
|
186
|
+
@script.options ["file.rb"]
|
187
|
+
end
|
188
|
+
|
189
|
+
it "sets the outcome to :all" do
|
190
|
+
["-L", "--all"].each do |opt|
|
191
|
+
@config[:outcome] = nil
|
192
|
+
@script.options [opt, "file.rb"]
|
193
|
+
@config[:outcome].should == :all
|
194
|
+
end
|
195
|
+
end
|
196
|
+
end
|
197
|
+
|
198
|
+
describe "--list TAG" do
|
199
|
+
it "is enabled with #options" do
|
200
|
+
@options.stub!(:on)
|
201
|
+
@options.should_receive(:on).with("--list", "TAG", an_instance_of(String))
|
202
|
+
@script.options ["file.rb"]
|
203
|
+
end
|
204
|
+
|
205
|
+
it "sets the mode to :list" do
|
206
|
+
@config[:tagger] = nil
|
207
|
+
@script.options ["--list", "TAG", "file.rb"]
|
208
|
+
@config[:tagger].should == :list
|
209
|
+
end
|
210
|
+
|
211
|
+
it "sets ltags to include TAG" do
|
212
|
+
@config[:tag] = nil
|
213
|
+
@script.options ["--list", "TAG", "file.rb"]
|
214
|
+
@config[:ltags].should == ["TAG"]
|
215
|
+
end
|
216
|
+
end
|
217
|
+
|
218
|
+
describe "--list-all" do
|
219
|
+
it "is enabled with #options" do
|
220
|
+
@options.stub!(:on)
|
221
|
+
@options.should_receive(:on).with("--list-all", an_instance_of(String))
|
222
|
+
@script.options ["file.rb"]
|
223
|
+
end
|
224
|
+
|
225
|
+
it "sets the mode to :list_all" do
|
226
|
+
@config[:tagger] = nil
|
227
|
+
@script.options ["--list-all", "file.rb"]
|
228
|
+
@config[:tagger].should == :list_all
|
229
|
+
end
|
230
|
+
end
|
231
|
+
end
|
232
|
+
|
84
233
|
describe MSpecTag, "#run" do
|
85
234
|
before :each do
|
86
235
|
MSpec.stub!(:process)
|
@@ -124,3 +273,87 @@ describe MSpecTag, "#run" do
|
|
124
273
|
@script.run
|
125
274
|
end
|
126
275
|
end
|
276
|
+
|
277
|
+
describe MSpecTag, "#register" do
|
278
|
+
before :each do
|
279
|
+
@script = MSpecTag.new
|
280
|
+
@config = @script.config
|
281
|
+
@config[:tag] = "fake:"
|
282
|
+
@config[:atags] = []
|
283
|
+
@config[:astrings] = []
|
284
|
+
@config[:ltags] = ["fails", "unstable"]
|
285
|
+
|
286
|
+
@t = mock("TagAction")
|
287
|
+
@t.stub!(:register)
|
288
|
+
|
289
|
+
@tl = mock("TagListAction")
|
290
|
+
@tl.stub!(:register)
|
291
|
+
end
|
292
|
+
|
293
|
+
it "creates a TagAction if config[:tagger] is :add" do
|
294
|
+
TagAction.should_receive(:new).with(:add, :fail, "fake", nil, [], []).and_return(@t)
|
295
|
+
@script.register
|
296
|
+
end
|
297
|
+
|
298
|
+
it "creates a TagAction if config[:tagger] is :del" do
|
299
|
+
@config[:tagger] = :del
|
300
|
+
@config[:outcome] = :pass
|
301
|
+
TagAction.should_receive(:new).with(:del, :pass, "fake", nil, [], []).and_return(@t)
|
302
|
+
@script.register
|
303
|
+
end
|
304
|
+
|
305
|
+
it "calls #register on the TagAction instance" do
|
306
|
+
TagAction.should_receive(:new).and_return(@t)
|
307
|
+
@t.should_receive(:register)
|
308
|
+
@script.register
|
309
|
+
end
|
310
|
+
|
311
|
+
it "raises an ArgumentError if no recognized action is given" do
|
312
|
+
@config[:tagger] = :totally_whack
|
313
|
+
lambda { @script.register }.should raise_error(ArgumentError)
|
314
|
+
end
|
315
|
+
|
316
|
+
describe "when config[:tagger] is :list" do
|
317
|
+
before :each do
|
318
|
+
@config[:tagger] = :list
|
319
|
+
end
|
320
|
+
|
321
|
+
it "creates a TagListAction" do
|
322
|
+
TagListAction.should_receive(:new).with(@config[:ltags]).and_return(@tl)
|
323
|
+
@tl.should_receive(:register)
|
324
|
+
@script.register
|
325
|
+
end
|
326
|
+
|
327
|
+
it "registers MSpec pretend mode" do
|
328
|
+
MSpec.should_receive(:register_mode).with(:pretend)
|
329
|
+
@script.register
|
330
|
+
end
|
331
|
+
|
332
|
+
it "sets config[:formatter] to nil" do
|
333
|
+
@script.register
|
334
|
+
@config[:formatter].should be_nil
|
335
|
+
end
|
336
|
+
end
|
337
|
+
|
338
|
+
describe "when config[:tagger] is :list_all" do
|
339
|
+
before :each do
|
340
|
+
@config[:tagger] = :list_all
|
341
|
+
end
|
342
|
+
|
343
|
+
it "creates a TagListAction" do
|
344
|
+
TagListAction.should_receive(:new).with(nil).and_return(@tl)
|
345
|
+
@tl.should_receive(:register)
|
346
|
+
@script.register
|
347
|
+
end
|
348
|
+
|
349
|
+
it "registers MSpec pretend mode" do
|
350
|
+
MSpec.should_receive(:register_mode).with(:pretend)
|
351
|
+
@script.register
|
352
|
+
end
|
353
|
+
|
354
|
+
it "sets config[:formatter] to nil" do
|
355
|
+
@script.register
|
356
|
+
@config[:formatter].should be_nil
|
357
|
+
end
|
358
|
+
end
|
359
|
+
end
|