rspec-core 3.0.0.beta1 → 3.0.0.beta2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (145) hide show
  1. data.tar.gz.sig +0 -0
  2. data/Changelog.md +137 -0
  3. data/README.md +2 -2
  4. data/exe/rspec +2 -23
  5. data/features/README.md +1 -5
  6. data/features/command_line/README.md +7 -10
  7. data/features/command_line/exit_status.feature +1 -1
  8. data/features/command_line/format_option.feature +1 -1
  9. data/features/command_line/init.feature +40 -1
  10. data/features/command_line/line_number_option.feature +2 -2
  11. data/features/command_line/ruby.feature +5 -4
  12. data/features/configuration/enable_global_dsl.feature +54 -0
  13. data/features/example_groups/aliasing.feature +48 -0
  14. data/features/example_groups/basic_structure.feature +1 -1
  15. data/features/expectation_framework_integration/configure_expectation_framework.feature +1 -1
  16. data/features/filtering/if_and_unless.feature +0 -30
  17. data/features/formatters/custom_formatter.feature +32 -0
  18. data/features/formatters/regression_tests.feature +95 -0
  19. data/features/hooks/around_hooks.feature +1 -0
  20. data/features/hooks/before_and_after_hooks.feature +2 -2
  21. data/features/mock_framework_integration/use_flexmock.feature +11 -13
  22. data/features/mock_framework_integration/use_mocha.feature +11 -13
  23. data/features/mock_framework_integration/use_rr.feature +11 -13
  24. data/features/mock_framework_integration/use_rspec.feature +11 -13
  25. data/features/pending_and_skipped_examples/README.md +3 -0
  26. data/features/pending_and_skipped_examples/pending_examples.feature +118 -0
  27. data/features/pending_and_skipped_examples/skipped_examples.feature +106 -0
  28. data/features/step_definitions/additional_cli_steps.rb +34 -0
  29. data/features/subject/explicit_subject.feature +1 -1
  30. data/features/subject/one_liner_syntax.feature +71 -0
  31. data/lib/rspec/core.rb +6 -14
  32. data/lib/rspec/core/backtrace_formatter.rb +16 -4
  33. data/lib/rspec/core/command_line.rb +2 -3
  34. data/lib/rspec/core/configuration.rb +114 -125
  35. data/lib/rspec/core/configuration_options.rb +32 -18
  36. data/lib/rspec/core/dsl.rb +80 -18
  37. data/lib/rspec/core/example.rb +84 -33
  38. data/lib/rspec/core/example_group.rb +95 -43
  39. data/lib/rspec/core/filter_manager.rb +31 -40
  40. data/lib/rspec/core/formatters.rb +137 -0
  41. data/lib/rspec/core/formatters/base_formatter.rb +28 -41
  42. data/lib/rspec/core/formatters/base_text_formatter.rb +26 -37
  43. data/lib/rspec/core/formatters/deprecation_formatter.rb +48 -27
  44. data/lib/rspec/core/formatters/documentation_formatter.rb +27 -22
  45. data/lib/rspec/core/formatters/html_formatter.rb +48 -56
  46. data/lib/rspec/core/formatters/html_printer.rb +11 -18
  47. data/lib/rspec/core/formatters/json_formatter.rb +18 -22
  48. data/lib/rspec/core/formatters/legacy_formatter.rb +227 -0
  49. data/lib/rspec/core/formatters/progress_formatter.rb +7 -10
  50. data/lib/rspec/core/hooks.rb +250 -217
  51. data/lib/rspec/core/memoized_helpers.rb +43 -9
  52. data/lib/rspec/core/mocking_adapters/flexmock.rb +29 -0
  53. data/lib/rspec/core/{mocking/with_mocha.rb → mocking_adapters/mocha.rb} +19 -16
  54. data/lib/rspec/core/mocking_adapters/null.rb +12 -0
  55. data/lib/rspec/core/mocking_adapters/rr.rb +28 -0
  56. data/lib/rspec/core/mocking_adapters/rspec.rb +30 -0
  57. data/lib/rspec/core/notifications.rb +100 -0
  58. data/lib/rspec/core/option_parser.rb +11 -18
  59. data/lib/rspec/core/pending.rb +78 -47
  60. data/lib/rspec/core/project_initializer.rb +2 -49
  61. data/lib/rspec/core/project_initializer/dot_rspec +3 -0
  62. data/lib/rspec/core/project_initializer/spec_helper.rb +82 -0
  63. data/lib/rspec/core/rake_task.rb +5 -14
  64. data/lib/rspec/core/reporter.rb +24 -32
  65. data/lib/rspec/core/ruby_project.rb +1 -1
  66. data/lib/rspec/core/runner.rb +14 -4
  67. data/lib/rspec/core/shared_example_group.rb +40 -13
  68. data/lib/rspec/core/version.rb +1 -1
  69. data/spec/command_line/order_spec.rb +15 -15
  70. data/spec/rspec/core/backtrace_formatter_spec.rb +15 -1
  71. data/spec/rspec/core/command_line_spec.rb +18 -17
  72. data/spec/rspec/core/configuration_options_spec.rb +57 -34
  73. data/spec/rspec/core/configuration_spec.rb +162 -184
  74. data/spec/rspec/core/drb_command_line_spec.rb +5 -7
  75. data/spec/rspec/core/drb_options_spec.rb +2 -2
  76. data/spec/rspec/core/dsl_spec.rb +79 -15
  77. data/spec/rspec/core/example_group_spec.rb +253 -39
  78. data/spec/rspec/core/example_spec.rb +149 -33
  79. data/spec/rspec/core/filter_manager_spec.rb +9 -26
  80. data/spec/rspec/core/formatters/base_formatter_spec.rb +2 -5
  81. data/spec/rspec/core/formatters/base_text_formatter_spec.rb +42 -145
  82. data/spec/rspec/core/formatters/deprecation_formatter_spec.rb +64 -34
  83. data/spec/rspec/core/formatters/documentation_formatter_spec.rb +15 -28
  84. data/spec/rspec/core/formatters/helpers_spec.rb +2 -2
  85. data/spec/rspec/core/formatters/{html_formatted-1.8.7.html → html_formatted-2.1.0.html} +22 -44
  86. data/spec/rspec/core/formatters/{html_formatted-1.8.7-jruby.html → html_formatted.html} +30 -49
  87. data/spec/rspec/core/formatters/html_formatter_spec.rb +35 -19
  88. data/spec/rspec/core/formatters/json_formatter_spec.rb +42 -40
  89. data/spec/rspec/core/formatters/legacy_formatter_spec.rb +137 -0
  90. data/spec/rspec/core/formatters/progress_formatter_spec.rb +38 -25
  91. data/spec/rspec/core/formatters/snippet_extractor_spec.rb +1 -1
  92. data/spec/rspec/core/formatters_spec.rb +120 -0
  93. data/spec/rspec/core/hooks_filtering_spec.rb +1 -1
  94. data/spec/rspec/core/hooks_spec.rb +13 -2
  95. data/spec/rspec/core/memoized_helpers_spec.rb +17 -8
  96. data/spec/rspec/core/metadata_spec.rb +3 -3
  97. data/spec/rspec/core/option_parser_spec.rb +53 -46
  98. data/spec/rspec/core/ordering_spec.rb +4 -4
  99. data/spec/rspec/core/pending_example_spec.rb +23 -126
  100. data/spec/rspec/core/pending_spec.rb +8 -0
  101. data/spec/rspec/core/project_initializer_spec.rb +8 -41
  102. data/spec/rspec/core/rake_task_spec.rb +15 -4
  103. data/spec/rspec/core/random_spec.rb +1 -1
  104. data/spec/rspec/core/reporter_spec.rb +50 -37
  105. data/spec/rspec/core/resources/formatter_specs.rb +9 -11
  106. data/spec/rspec/core/rspec_matchers_spec.rb +1 -1
  107. data/spec/rspec/core/ruby_project_spec.rb +3 -3
  108. data/spec/rspec/core/runner_spec.rb +65 -23
  109. data/spec/rspec/core/shared_context_spec.rb +4 -4
  110. data/spec/rspec/core/shared_example_group/collection_spec.rb +1 -1
  111. data/spec/rspec/core/shared_example_group_spec.rb +20 -11
  112. data/spec/rspec/core/warnings_spec.rb +1 -1
  113. data/spec/rspec/core/world_spec.rb +10 -10
  114. data/spec/rspec/core_spec.rb +2 -2
  115. data/spec/spec_helper.rb +12 -24
  116. data/spec/support/config_options_helper.rb +1 -3
  117. data/spec/support/formatter_support.rb +83 -0
  118. data/spec/support/isolate_load_path_mutation.rb +1 -2
  119. data/spec/support/isolated_directory.rb +1 -1
  120. data/spec/support/isolated_home_directory.rb +1 -1
  121. data/spec/support/legacy_formatter_using_sub_classing_example.rb +87 -0
  122. data/spec/support/matchers.rb +20 -0
  123. data/spec/support/mathn_integration_support.rb +2 -2
  124. data/spec/support/old_style_formatter_example.rb +69 -0
  125. data/spec/support/shared_example_groups.rb +1 -1
  126. data/spec/support/spec_files.rb +3 -3
  127. metadata +192 -69
  128. metadata.gz.sig +3 -1
  129. checksums.yaml +0 -15
  130. checksums.yaml.gz.sig +0 -2
  131. data/features/configuration/show_failures_in_pending_blocks.feature +0 -61
  132. data/features/pending/pending_examples.feature +0 -229
  133. data/features/subject/implicit_receiver.feature +0 -29
  134. data/lib/rspec/core/mocking/with_absolutely_nothing.rb +0 -11
  135. data/lib/rspec/core/mocking/with_flexmock.rb +0 -27
  136. data/lib/rspec/core/mocking/with_rr.rb +0 -27
  137. data/lib/rspec/core/mocking/with_rspec.rb +0 -27
  138. data/spec/rspec/core/formatters/html_formatted-1.8.7-rbx.html +0 -477
  139. data/spec/rspec/core/formatters/html_formatted-1.9.2.html +0 -425
  140. data/spec/rspec/core/formatters/html_formatted-1.9.3-jruby.html +0 -416
  141. data/spec/rspec/core/formatters/html_formatted-1.9.3-rbx.html +0 -477
  142. data/spec/rspec/core/formatters/html_formatted-1.9.3.html +0 -419
  143. data/spec/rspec/core/formatters/html_formatted-2.0.0.html +0 -425
  144. data/spec/support/in_sub_process.rb +0 -37
  145. data/spec/support/sandboxed_mock_space.rb +0 -100
@@ -1,36 +1,47 @@
1
1
  require 'spec_helper'
2
+ require 'rspec/core/reporter'
2
3
  require 'rspec/core/formatters/deprecation_formatter'
3
4
  require 'tempfile'
4
5
 
5
6
  module RSpec::Core::Formatters
6
- describe DeprecationFormatter do
7
+ RSpec.describe DeprecationFormatter do
8
+ include FormatterSupport
9
+
10
+ let(:summary_stream) { StringIO.new }
11
+
12
+ def notification(hash)
13
+ ::RSpec::Core::Notifications::DeprecationNotification.from_hash(hash)
14
+ end
15
+
16
+ before do
17
+ setup_reporter deprecation_stream, summary_stream
18
+ end
19
+
7
20
  describe "#deprecation" do
8
- let(:formatter) { DeprecationFormatter.new(deprecation_stream, summary_stream) }
9
- let(:summary_stream) { StringIO.new }
10
21
 
11
- context "with a File deprecation_stream" do
22
+ context "with a File deprecation_stream", :slow do
12
23
  let(:deprecation_stream) { File.open("#{Dir.tmpdir}/deprecation_summary_example_output", "w+") }
13
24
 
14
25
  it "prints a message if provided, ignoring other data" do
15
- formatter.deprecation(:message => "this message", :deprecated => "x", :replacement => "y", :call_site => "z")
26
+ send_notification :deprecation, notification(:message => "this message", :deprecated => "x", :replacement => "y", :call_site => "z")
16
27
  deprecation_stream.rewind
17
28
  expect(deprecation_stream.read).to eq "this message\n"
18
29
  end
19
30
 
20
31
  it "includes the method" do
21
- formatter.deprecation(:deprecated => "i_am_deprecated")
32
+ send_notification :deprecation, notification(:deprecated => "i_am_deprecated")
22
33
  deprecation_stream.rewind
23
34
  expect(deprecation_stream.read).to match(/i_am_deprecated is deprecated/)
24
35
  end
25
36
 
26
37
  it "includes the replacement" do
27
- formatter.deprecation(:replacement => "use_me")
38
+ send_notification :deprecation, notification(:replacement => "use_me")
28
39
  deprecation_stream.rewind
29
40
  expect(deprecation_stream.read).to match(/Use use_me instead/)
30
41
  end
31
42
 
32
43
  it "includes the call site if provided" do
33
- formatter.deprecation(:call_site => "somewhere")
44
+ send_notification :deprecation, notification(:call_site => "somewhere")
34
45
  deprecation_stream.rewind
35
46
  expect(deprecation_stream.read).to match(/Called from somewhere/)
36
47
  end
@@ -40,60 +51,79 @@ module RSpec::Core::Formatters
40
51
  let(:deprecation_stream) { StringIO.new }
41
52
 
42
53
  it "prints nothing" do
43
- 5.times { formatter.deprecation(:deprecated => 'i_am_deprecated') }
54
+ 5.times { send_notification :deprecation, notification(:deprecated => 'i_am_deprecated') }
44
55
  expect(deprecation_stream.string).to eq ""
45
56
  end
46
57
  end
47
58
  end
48
59
 
49
60
  describe "#deprecation_summary" do
50
- let(:formatter) { DeprecationFormatter.new(deprecation_stream, summary_stream) }
51
- let(:summary_stream) { StringIO.new }
61
+ let(:summary) { double }
52
62
 
53
- context "with a File deprecation_stream" do
63
+ context "with a File deprecation_stream", :slow do
54
64
  let(:deprecation_stream) { File.open("#{Dir.tmpdir}/deprecation_summary_example_output", "w") }
55
65
 
56
66
  it "prints a count of the deprecations" do
57
- formatter.deprecation(:deprecated => 'i_am_deprecated')
58
- formatter.deprecation_summary
67
+ send_notification :deprecation, notification(:deprecated => 'i_am_deprecated')
68
+ send_notification :deprecation_summary, null_notification
59
69
  expect(summary_stream.string).to match(/1 deprecation logged to .*deprecation_summary_example_output/)
60
70
  end
61
71
 
62
72
  it "pluralizes the reported deprecation count for more than one deprecation" do
63
- formatter.deprecation(:deprecated => 'i_am_deprecated')
64
- formatter.deprecation(:deprecated => 'i_am_deprecated_also')
65
- formatter.deprecation_summary
73
+ send_notification :deprecation, notification(:deprecated => 'i_am_deprecated')
74
+ send_notification :deprecation, notification(:deprecated => 'i_am_deprecated_also')
75
+ send_notification :deprecation_summary, null_notification
66
76
  expect(summary_stream.string).to match(/2 deprecations/)
67
77
  end
68
78
 
69
79
  it "is not printed when there are no deprecations" do
70
- formatter.deprecation_summary
80
+ send_notification :deprecation_summary, null_notification
71
81
  expect(summary_stream.string).to eq ""
72
82
  end
73
83
 
74
84
  it 'uses synchronized/non-buffered output to work around odd duplicate output behavior we have observed' do
75
85
  expect {
76
- formatter.deprecation(:deprecated => 'foo')
86
+ send_notification :deprecation, notification(:deprecated => 'foo')
77
87
  }.to change { deprecation_stream.sync }.from(false).to(true)
78
88
  end
79
89
 
80
90
  it 'does not print duplicate messages' do
81
- 3.times { formatter.deprecation(:deprecated => 'foo') }
82
- formatter.deprecation_summary
91
+ 3.times { send_notification :deprecation, notification(:deprecated => 'foo') }
92
+ send_notification :deprecation_summary, null_notification
83
93
 
84
94
  expect(summary_stream.string).to match(/1 deprecation/)
85
95
  expect(File.read(deprecation_stream.path)).to eq("foo is deprecated.\n#{DeprecationFormatter::RAISE_ERROR_CONFIG_NOTICE}")
86
96
  end
87
97
  end
88
98
 
99
+ context "with an Error deprecation_stream" do
100
+ let(:deprecation_stream) { DeprecationFormatter::RaiseErrorStream.new }
101
+
102
+ it 'prints a summary of the number of deprecations found' do
103
+ expect { send_notification :deprecation, notification(:deprecated => 'foo') }.to raise_error(RSpec::Core::DeprecationError)
104
+ send_notification :deprecation_summary, null_notification
105
+
106
+ expect(summary_stream.string).to eq("\n1 deprecation found.\n")
107
+ end
108
+
109
+ it 'pluralizes the count when it is greater than 1' do
110
+ expect { send_notification :deprecation, notification(:deprecated => 'foo') }.to raise_error(RSpec::Core::DeprecationError)
111
+ expect { send_notification :deprecation, notification(:deprecated => 'bar') }.to raise_error(RSpec::Core::DeprecationError)
112
+
113
+ send_notification :deprecation_summary, null_notification
114
+
115
+ expect(summary_stream.string).to eq("\n2 deprecations found.\n")
116
+ end
117
+ end
118
+
89
119
  context "with an IO deprecation_stream" do
90
120
  let(:deprecation_stream) { StringIO.new }
91
121
 
92
122
  it "groups similar deprecations together" do
93
- formatter.deprecation(:deprecated => 'i_am_deprecated', :call_site => "foo.rb:1")
94
- formatter.deprecation(:deprecated => 'i_am_a_different_deprecation')
95
- formatter.deprecation(:deprecated => 'i_am_deprecated', :call_site => "foo.rb:2")
96
- formatter.deprecation_summary
123
+ send_notification :deprecation, notification(:deprecated => 'i_am_deprecated', :call_site => "foo.rb:1")
124
+ send_notification :deprecation, notification(:deprecated => 'i_am_a_different_deprecation')
125
+ send_notification :deprecation, notification(:deprecated => 'i_am_deprecated', :call_site => "foo.rb:2")
126
+ send_notification :deprecation_summary, null_notification
97
127
 
98
128
  expected = <<-EOS.gsub(/^\s+\|/, '')
99
129
  |
@@ -110,8 +140,8 @@ module RSpec::Core::Formatters
110
140
  end
111
141
 
112
142
  it "limits the deprecation warnings after 3 calls" do
113
- 5.times { |i| formatter.deprecation(:deprecated => 'i_am_deprecated', :call_site => "foo.rb:#{i + 1}") }
114
- formatter.deprecation_summary
143
+ 5.times { |i| send_notification :deprecation, notification(:deprecated => 'i_am_deprecated', :call_site => "foo.rb:#{i + 1}") }
144
+ send_notification :deprecation_summary, null_notification
115
145
  expected = <<-EOS.gsub(/^\s+\|/, '')
116
146
  |
117
147
  |Deprecation Warnings:
@@ -129,9 +159,9 @@ module RSpec::Core::Formatters
129
159
  it "limits :message deprecation warnings with different callsites after 3 calls" do
130
160
  5.times do |n|
131
161
  message = "This is a long string with some callsite info: /path/#{n}/to/some/file.rb:2#{n}3. And some more stuff can come after."
132
- formatter.deprecation(:message => message)
162
+ send_notification :deprecation, notification(:message => message)
133
163
  end
134
- formatter.deprecation_summary
164
+ send_notification :deprecation_summary, null_notification
135
165
  expected = <<-EOS.gsub(/^\s+\|/, '')
136
166
  |
137
167
  |Deprecation Warnings:
@@ -147,17 +177,17 @@ module RSpec::Core::Formatters
147
177
  end
148
178
 
149
179
  it "prints the true deprecation count to the summary_stream" do
150
- 5.times { |i| formatter.deprecation(:deprecated => 'i_am_deprecated', :call_site => "foo.rb:#{i + 1}") }
180
+ 5.times { |i| send_notification :deprecation, notification(:deprecated => 'i_am_deprecated', :call_site => "foo.rb:#{i + 1}") }
151
181
  5.times do |n|
152
- formatter.deprecation(:message => "callsite info: /path/#{n}/to/some/file.rb:2#{n}3. And some more stuff")
182
+ send_notification :deprecation, notification(:message => "callsite info: /path/#{n}/to/some/file.rb:2#{n}3. And some more stuff")
153
183
  end
154
- formatter.deprecation_summary
184
+ send_notification :deprecation_summary, null_notification
155
185
  expect(summary_stream.string).to match(/10 deprecation warnings total/)
156
186
  end
157
187
 
158
188
  it 'does not print duplicate messages' do
159
- 3.times { formatter.deprecation(:deprecated => 'foo') }
160
- formatter.deprecation_summary
189
+ 3.times { send_notification :deprecation, notification(:deprecated => 'foo') }
190
+ send_notification :deprecation_summary, null_notification
161
191
 
162
192
  expect(summary_stream.string).to match(/1 deprecation/)
163
193
 
@@ -2,37 +2,29 @@ require 'spec_helper'
2
2
  require 'rspec/core/formatters/documentation_formatter'
3
3
 
4
4
  module RSpec::Core::Formatters
5
- describe DocumentationFormatter do
6
- it "numbers the failures" do
5
+ RSpec.describe DocumentationFormatter do
6
+ include FormatterSupport
7
+
8
+ before do
9
+ send_notification :start, count_notification(2)
10
+ allow(formatter).to receive(:color_enabled?).and_return(false)
11
+ end
7
12
 
8
- examples = [
9
- double("example 1",
13
+ it "numbers the failures" do
14
+ send_notification :example_failed, example_notification( double("example 1",
10
15
  :description => "first example",
11
16
  :execution_result => {:status => 'failed', :exception => Exception.new }
12
- ),
13
- double("example 2",
17
+ ))
18
+ send_notification :example_failed, example_notification( double("example 2",
14
19
  :description => "second example",
15
20
  :execution_result => {:status => 'failed', :exception => Exception.new }
16
- )
17
- ]
18
-
19
- output = StringIO.new
20
- RSpec.configuration.stub(:color_enabled?) { false }
21
-
22
- formatter = RSpec::Core::Formatters::DocumentationFormatter.new(output)
23
-
24
- examples.each {|e| formatter.example_failed(e) }
21
+ ))
25
22
 
26
23
  expect(output.string).to match(/first example \(FAILED - 1\)/m)
27
24
  expect(output.string).to match(/second example \(FAILED - 2\)/m)
28
25
  end
29
26
 
30
27
  it "represents nested group using hierarchy tree" do
31
- output = StringIO.new
32
- RSpec.configuration.stub(:color_enabled?) { false }
33
-
34
- formatter = RSpec::Core::Formatters::DocumentationFormatter.new(output)
35
-
36
28
  group = RSpec::Core::ExampleGroup.describe("root")
37
29
  context1 = group.describe("context 1")
38
30
  context1.example("nested example 1.1"){}
@@ -46,7 +38,7 @@ module RSpec::Core::Formatters
46
38
  context2.example("nested example 2.1"){}
47
39
  context2.example("nested example 2.2"){}
48
40
 
49
- group.run(RSpec::Core::Reporter.new(RSpec.configuration, formatter))
41
+ group.run(reporter)
50
42
 
51
43
  expect(output.string).to eql("
52
44
  root
@@ -63,18 +55,13 @@ root
63
55
  end
64
56
 
65
57
  it "strips whitespace for each row" do
66
- output = StringIO.new
67
- RSpec.configuration.stub(:color_enabled?) { false }
68
-
69
- formatter = RSpec::Core::Formatters::DocumentationFormatter.new(output)
70
-
71
58
  group = RSpec::Core::ExampleGroup.describe(" root ")
72
59
  context1 = group.describe(" nested ")
73
60
  context1.example(" example 1 ") {}
74
- context1.example(" example 2 ", :pending => true){}
61
+ context1.example(" example 2 ", :pending => true){ fail }
75
62
  context1.example(" example 3 ") { fail }
76
63
 
77
- group.run(RSpec::Core::Reporter.new(RSpec.configuration, formatter))
64
+ group.run(reporter)
78
65
 
79
66
  expect(output.string).to eql("
80
67
  root
@@ -1,7 +1,7 @@
1
1
  require 'spec_helper'
2
2
  require 'rspec/core/formatters/helpers'
3
3
 
4
- describe RSpec::Core::Formatters::Helpers do
4
+ RSpec.describe RSpec::Core::Formatters::Helpers do
5
5
  let(:helper) { Object.new.extend(RSpec::Core::Formatters::Helpers) }
6
6
 
7
7
  describe "format duration" do
@@ -50,7 +50,7 @@ describe RSpec::Core::Formatters::Helpers do
50
50
  context 'with mathn loaded' do
51
51
  include MathnIntegrationSupport
52
52
 
53
- it "returns 'x minutes xx.x seconds' formatted string" do
53
+ it "returns 'x minutes xx.x seconds' formatted string", :slow do
54
54
  with_mathn_loaded do
55
55
  expect(helper.format_duration(133.7)).to eq("2 minutes 13.7 seconds")
56
56
  end
@@ -1,10 +1,9 @@
1
- <!DOCTYPE html>
2
- <html lang='en'>
1
+ <html lang="en">
3
2
  <head>
4
3
  <title>RSpec results</title>
5
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
6
- <meta http-equiv="Expires" content="-1" />
7
- <meta http-equiv="Pragma" content="no-cache" />
4
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
5
+ <meta http-equiv="Expires" content="-1">
6
+ <meta http-equiv="Pragma" content="no-cache">
8
7
  <style type="text/css">
9
8
  body {
10
9
  margin: 0;
@@ -266,14 +265,14 @@ a {
266
265
  </div>
267
266
 
268
267
  <div id="display-filters">
269
- <input id="passed_checkbox" name="passed_checkbox" type="checkbox" checked="checked" onchange="apply_filters()" value="1" /> <label for="passed_checkbox">Passed</label>
270
- <input id="failed_checkbox" name="failed_checkbox" type="checkbox" checked="checked" onchange="apply_filters()" value="2" /> <label for="failed_checkbox">Failed</label>
271
- <input id="pending_checkbox" name="pending_checkbox" type="checkbox" checked="checked" onchange="apply_filters()" value="3" /> <label for="pending_checkbox">Pending</label>
268
+ <input id="passed_checkbox" name="passed_checkbox" type="checkbox" checked onchange="apply_filters()" value="1"> <label for="passed_checkbox">Passed</label>
269
+ <input id="failed_checkbox" name="failed_checkbox" type="checkbox" checked onchange="apply_filters()" value="2"> <label for="failed_checkbox">Failed</label>
270
+ <input id="pending_checkbox" name="pending_checkbox" type="checkbox" checked onchange="apply_filters()" value="3"> <label for="pending_checkbox">Pending</label>
272
271
  </div>
273
272
 
274
273
  <div id="summary">
275
- <p id="totals">&#160;</p>
276
- <p id="duration">&#160;</p>
274
+ <p id="totals"> </p>
275
+ <p id="duration"> </p>
277
276
  </div>
278
277
  </div>
279
278
 
@@ -297,11 +296,8 @@ a {
297
296
  <div id="div_group_3" class="example_group passed">
298
297
  <dl style="margin-left: 15px;">
299
298
  <dt id="example_group_3" class="passed">with content that would fail</dt>
300
- <script type="text/javascript">makeYellow('rspec-header');</script>
301
- <script type="text/javascript">makeYellow('div_group_3');</script>
302
- <script type="text/javascript">makeYellow('example_group_3');</script>
303
299
  <script type="text/javascript">moveProgressBar('28.5');</script>
304
- <dd class="example not_implemented"><span class="not_implemented_spec_name">is pending (PENDING: No reason given)</span></dd>
300
+ <dd class="example passed"><span class="passed_spec_name">is pending</span><span class='duration'>n.nnnns</span></dd>
305
301
  </dl>
306
302
  </div>
307
303
  <div id="div_group_4" class="example_group passed">
@@ -316,19 +312,9 @@ a {
316
312
  <span class="duration">n.nnnns</span>
317
313
  <div class="failure" id="failure_1">
318
314
  <div class="message"><pre>RSpec::Core::Pending::PendingExampleFixedError</pre></div>
319
- <div class="backtrace"><pre>./spec/rspec/core/resources/formatter_specs.rb:18
320
- ./spec/support/sandboxed_mock_space.rb:33:in `run'
321
- ./spec/support/sandboxed_mock_space.rb:72:in `sandboxed'
322
- ./spec/support/sandboxed_mock_space.rb:32:in `run'
323
- ./spec/rspec/core/formatters/html_formatter_spec.rb:37:in `generated_html'
324
- ./spec/rspec/core/formatters/html_formatter_spec.rb:59
325
- ./spec/rspec/core/formatters/html_formatter_spec.rb:59:in `open'
326
- ./spec/rspec/core/formatters/html_formatter_spec.rb:59
327
- ./spec/rspec/core/formatters/html_formatter_spec.rb:58:in `chdir'
328
- ./spec/rspec/core/formatters/html_formatter_spec.rb:58
329
- ./spec/support/sandboxed_mock_space.rb:38:in `sandboxed'</pre></div>
330
- <pre class="ruby"><code><span class="linenum">16</span> context <span class="string"><span class="delimiter">&quot;</span><span class="content">with content that would pass</span><span class="delimiter">&quot;</span></span> <span class="keyword">do</span>
331
- <span class="linenum">17</span> it <span class="string"><span class="delimiter">&quot;</span><span class="content">fails</span><span class="delimiter">&quot;</span></span> <span class="keyword">do</span>
315
+ <div class="backtrace"><pre>./spec/rspec/core/resources/formatter_specs.rb:18</pre></div>
316
+ <pre class="ruby"><code><span class="linenum">16</span> context <span class="string"><span class="delimiter">"</span><span class="content">with content that would pass</span><span class="delimiter">"</span></span> <span class="keyword">do</span>
317
+ <span class="linenum">17</span> it <span class="string"><span class="delimiter">"</span><span class="content">fails</span><span class="delimiter">"</span></span> <span class="keyword">do</span>
332
318
  <span class="offending"><span class="linenum">18</span> pending <span class="keyword">do</span></span>
333
319
  <span class="linenum">19</span> expect(<span class="integer">1</span>).to eq(<span class="integer">1</span>)
334
320
  <span class="linenum">20</span> <span class="keyword">end</span></code></pre>
@@ -340,7 +326,9 @@ a {
340
326
  <dl style="margin-left: 0px;">
341
327
  <dt id="example_group_5" class="passed">passing spec</dt>
342
328
  <script type="text/javascript">moveProgressBar('57.1');</script>
343
- <dd class="example passed"><span class="passed_spec_name">passes</span><span class='duration'>n.nnnns</span></dd>
329
+ <dd class="example passed">
330
+ <span class="passed_spec_name">passes</span><span class="duration">n.nnnns</span>
331
+ </dd>
344
332
  </dl>
345
333
  </div>
346
334
  <div id="div_group_6" class="example_group passed">
@@ -359,19 +347,9 @@ expected: 2
359
347
 
360
348
  (compared using ==)
361
349
  </pre></div>
362
- <div class="backtrace"><pre>./spec/rspec/core/resources/formatter_specs.rb:33
363
- ./spec/support/sandboxed_mock_space.rb:33:in `run'
364
- ./spec/support/sandboxed_mock_space.rb:72:in `sandboxed'
365
- ./spec/support/sandboxed_mock_space.rb:32:in `run'
366
- ./spec/rspec/core/formatters/html_formatter_spec.rb:37:in `generated_html'
367
- ./spec/rspec/core/formatters/html_formatter_spec.rb:59
368
- ./spec/rspec/core/formatters/html_formatter_spec.rb:59:in `open'
369
- ./spec/rspec/core/formatters/html_formatter_spec.rb:59
370
- ./spec/rspec/core/formatters/html_formatter_spec.rb:58:in `chdir'
371
- ./spec/rspec/core/formatters/html_formatter_spec.rb:58
372
- ./spec/support/sandboxed_mock_space.rb:38:in `sandboxed'</pre></div>
373
- <pre class="ruby"><code><span class="linenum">31</span>describe <span class="string"><span class="delimiter">&quot;</span><span class="content">failing spec</span><span class="delimiter">&quot;</span></span> <span class="keyword">do</span>
374
- <span class="linenum">32</span> it <span class="string"><span class="delimiter">&quot;</span><span class="content">fails</span><span class="delimiter">&quot;</span></span> <span class="keyword">do</span>
350
+ <div class="backtrace"><pre>./spec/rspec/core/resources/formatter_specs.rb:33</pre></div>
351
+ <pre class="ruby"><code><span class="linenum">31</span><span class="constant">RSpec</span>.describe <span class="string"><span class="delimiter">"</span><span class="content">failing spec</span><span class="delimiter">"</span></span> <span class="keyword">do</span>
352
+ <span class="linenum">32</span> it <span class="string"><span class="delimiter">"</span><span class="content">fails</span><span class="delimiter">"</span></span> <span class="keyword">do</span>
375
353
  <span class="offending"><span class="linenum">33</span> expect(<span class="integer">1</span>).to eq(<span class="integer">2</span>)</span>
376
354
  <span class="linenum">34</span> <span class="keyword">end</span>
377
355
  <span class="linenum">35</span><span class="keyword">end</span></code></pre>
@@ -390,7 +368,7 @@ expected: 2
390
368
  <span class="duration">n.nnnns</span>
391
369
  <div class="failure" id="failure_3">
392
370
  <div class="message"><pre>foo</pre></div>
393
- <div class="backtrace"><pre>(erb):1</pre></div>
371
+ <div class="backtrace"><pre>./spec/rspec/core/resources/formatter_specs.rb:41</pre></div>
394
372
  <pre class="ruby"><code><span class="linenum">-1</span><span class="comment"># Couldn't get snippet for (erb)</span></code></pre>
395
373
  </div>
396
374
  </dd>
@@ -400,14 +378,14 @@ expected: 2
400
378
  <span class="duration">n.nnnns</span>
401
379
  <div class="failure" id="failure_4">
402
380
  <div class="message"><pre>Exception</pre></div>
403
- <div class="backtrace"><pre>/foo.html.erb:1:in `&lt;main&gt;': foo (RuntimeError)</pre></div>
381
+ <div class="backtrace"><pre></pre></div>
404
382
  <pre class="ruby"><code><span class="linenum">-1</span><span class="comment"># Couldn't get snippet for /foo.html.erb</span></code></pre>
405
383
  </div>
406
384
  </dd>
407
385
  </dl>
408
386
  </div>
409
387
  <script type="text/javascript">document.getElementById('duration').innerHTML = "Finished in <strong>n.nnnn seconds</strong>";</script>
410
- <script type="text/javascript">document.getElementById('totals').innerHTML = "7 examples, 4 failures, 2 pending";</script>
388
+ <script type="text/javascript">document.getElementById('totals').innerHTML = "7 examples, 4 failures, 1 pending";</script>
411
389
  </div>
412
390
  </div>
413
391
  </body>
@@ -1,10 +1,9 @@
1
- <!DOCTYPE html>
2
- <html lang='en'>
1
+ <html lang="en">
3
2
  <head>
4
3
  <title>RSpec results</title>
5
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
6
- <meta http-equiv="Expires" content="-1" />
7
- <meta http-equiv="Pragma" content="no-cache" />
4
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
5
+ <meta http-equiv="Expires" content="-1">
6
+ <meta http-equiv="Pragma" content="no-cache">
8
7
  <style type="text/css">
9
8
  body {
10
9
  margin: 0;
@@ -266,14 +265,14 @@ a {
266
265
  </div>
267
266
 
268
267
  <div id="display-filters">
269
- <input id="passed_checkbox" name="passed_checkbox" type="checkbox" checked="checked" onchange="apply_filters()" value="1" /> <label for="passed_checkbox">Passed</label>
270
- <input id="failed_checkbox" name="failed_checkbox" type="checkbox" checked="checked" onchange="apply_filters()" value="2" /> <label for="failed_checkbox">Failed</label>
271
- <input id="pending_checkbox" name="pending_checkbox" type="checkbox" checked="checked" onchange="apply_filters()" value="3" /> <label for="pending_checkbox">Pending</label>
268
+ <input id="passed_checkbox" name="passed_checkbox" type="checkbox" checked onchange="apply_filters()" value="1"> <label for="passed_checkbox">Passed</label>
269
+ <input id="failed_checkbox" name="failed_checkbox" type="checkbox" checked onchange="apply_filters()" value="2"> <label for="failed_checkbox">Failed</label>
270
+ <input id="pending_checkbox" name="pending_checkbox" type="checkbox" checked onchange="apply_filters()" value="3"> <label for="pending_checkbox">Pending</label>
272
271
  </div>
273
272
 
274
273
  <div id="summary">
275
- <p id="totals">&#160;</p>
276
- <p id="duration">&#160;</p>
274
+ <p id="totals"> </p>
275
+ <p id="duration"> </p>
277
276
  </div>
278
277
  </div>
279
278
 
@@ -315,20 +314,15 @@ a {
315
314
  <span class="failed_spec_name">fails</span>
316
315
  <span class="duration">n.nnnns</span>
317
316
  <div class="failure" id="failure_1">
318
- <div class="message"><pre>RSpec::Core::Pending::PendingExampleFixedError</pre></div>
319
- <div class="backtrace"><pre>./spec/rspec/core/resources/formatter_specs.rb:18:in `(root)'
320
- ./spec/support/sandboxed_mock_space.rb:33:in `run'
321
- ./spec/support/sandboxed_mock_space.rb:72:in `sandboxed'
322
- ./spec/support/sandboxed_mock_space.rb:32:in `run'
323
- ./spec/rspec/core/formatters/html_formatter_spec.rb:37:in `generated_html'
324
- ./spec/rspec/core/formatters/html_formatter_spec.rb:73:in `Formatters'
325
- ./spec/rspec/core/formatters/html_formatter_spec.rb:72:in `Formatters'
326
- ./spec/support/sandboxed_mock_space.rb:38:in `sandboxed'</pre></div>
327
- <pre class="ruby"><code><span class="linenum">16</span> context <span class="string"><span class="delimiter">&quot;</span><span class="content">with content that would pass</span><span class="delimiter">&quot;</span></span> <span class="keyword">do</span>
328
- <span class="linenum">17</span> it <span class="string"><span class="delimiter">&quot;</span><span class="content">fails</span><span class="delimiter">&quot;</span></span> <span class="keyword">do</span>
329
- <span class="offending"><span class="linenum">18</span> pending <span class="keyword">do</span></span>
330
- <span class="linenum">19</span> expect(<span class="integer">1</span>).to eq(<span class="integer">1</span>)
331
- <span class="linenum">20</span> <span class="keyword">end</span></code></pre>
317
+ <div class="message"><pre>Expected example to fail since it is pending, but it passed.</pre></div>
318
+ <div class="backtrace"><pre>./spec/rspec/core/resources/formatter_specs.rb:16
319
+ ./spec/rspec/core/resources/formatter_specs.rb:15
320
+ ./spec/rspec/core/resources/formatter_specs.rb:7</pre></div>
321
+ <pre class="ruby"><code><span class="linenum">14</span>
322
+ <span class="linenum">15</span> context <span class="string"><span class="delimiter">"</span><span class="content">with content that would pass</span><span class="delimiter">"</span></span> <span class="keyword">do</span>
323
+ <span class="offending"><span class="linenum">16</span> it <span class="string"><span class="delimiter">"</span><span class="content">fails</span><span class="delimiter">"</span></span> <span class="keyword">do</span></span>
324
+ <span class="linenum">17</span> pending
325
+ <span class="linenum">18</span> expect(<span class="integer">1</span>).to eq(<span class="integer">1</span>)</code></pre>
332
326
  </div>
333
327
  </dd>
334
328
  </dl>
@@ -337,7 +331,9 @@ a {
337
331
  <dl style="margin-left: 0px;">
338
332
  <dt id="example_group_5" class="passed">passing spec</dt>
339
333
  <script type="text/javascript">moveProgressBar('57.1');</script>
340
- <dd class="example passed"><span class="passed_spec_name">passes</span><span class='duration'>n.nnnns</span></dd>
334
+ <dd class="example passed">
335
+ <span class="passed_spec_name">passes</span><span class="duration">n.nnnns</span>
336
+ </dd>
341
337
  </dl>
342
338
  </div>
343
339
  <div id="div_group_6" class="example_group passed">
@@ -356,19 +352,12 @@ expected: 2
356
352
 
357
353
  (compared using ==)
358
354
  </pre></div>
359
- <div class="backtrace"><pre>./spec/rspec/core/resources/formatter_specs.rb:33:in `(root)'
360
- ./spec/support/sandboxed_mock_space.rb:33:in `run'
361
- ./spec/support/sandboxed_mock_space.rb:72:in `sandboxed'
362
- ./spec/support/sandboxed_mock_space.rb:32:in `run'
363
- ./spec/rspec/core/formatters/html_formatter_spec.rb:37:in `generated_html'
364
- ./spec/rspec/core/formatters/html_formatter_spec.rb:73:in `Formatters'
365
- ./spec/rspec/core/formatters/html_formatter_spec.rb:72:in `Formatters'
366
- ./spec/support/sandboxed_mock_space.rb:38:in `sandboxed'</pre></div>
367
- <pre class="ruby"><code><span class="linenum">31</span>describe <span class="string"><span class="delimiter">&quot;</span><span class="content">failing spec</span><span class="delimiter">&quot;</span></span> <span class="keyword">do</span>
368
- <span class="linenum">32</span> it <span class="string"><span class="delimiter">&quot;</span><span class="content">fails</span><span class="delimiter">&quot;</span></span> <span class="keyword">do</span>
369
- <span class="offending"><span class="linenum">33</span> expect(<span class="integer">1</span>).to eq(<span class="integer">2</span>)</span>
370
- <span class="linenum">34</span> <span class="keyword">end</span>
371
- <span class="linenum">35</span><span class="keyword">end</span></code></pre>
355
+ <div class="backtrace"><pre>./spec/rspec/core/resources/formatter_specs.rb:31</pre></div>
356
+ <pre class="ruby"><code><span class="linenum">29</span><span class="constant">RSpec</span>.describe <span class="string"><span class="delimiter">"</span><span class="content">failing spec</span><span class="delimiter">"</span></span> <span class="keyword">do</span>
357
+ <span class="linenum">30</span> it <span class="string"><span class="delimiter">"</span><span class="content">fails</span><span class="delimiter">"</span></span> <span class="keyword">do</span>
358
+ <span class="offending"><span class="linenum">31</span> expect(<span class="integer">1</span>).to eq(<span class="integer">2</span>)</span>
359
+ <span class="linenum">32</span> <span class="keyword">end</span>
360
+ <span class="linenum">33</span><span class="keyword">end</span></code></pre>
372
361
  </div>
373
362
  </dd>
374
363
  </dl>
@@ -384,15 +373,7 @@ expected: 2
384
373
  <span class="duration">n.nnnns</span>
385
374
  <div class="failure" id="failure_3">
386
375
  <div class="message"><pre>foo</pre></div>
387
- <div class="backtrace"><pre>(erb):1:in `result'
388
- ./spec/rspec/core/resources/formatter_specs.rb:41:in `(root)'
389
- ./spec/support/sandboxed_mock_space.rb:33:in `run'
390
- ./spec/support/sandboxed_mock_space.rb:72:in `sandboxed'
391
- ./spec/support/sandboxed_mock_space.rb:32:in `run'
392
- ./spec/rspec/core/formatters/html_formatter_spec.rb:37:in `generated_html'
393
- ./spec/rspec/core/formatters/html_formatter_spec.rb:73:in `Formatters'
394
- ./spec/rspec/core/formatters/html_formatter_spec.rb:72:in `Formatters'
395
- ./spec/support/sandboxed_mock_space.rb:38:in `sandboxed'</pre></div>
376
+ <div class="backtrace"><pre>./spec/rspec/core/resources/formatter_specs.rb:39</pre></div>
396
377
  <pre class="ruby"><code><span class="linenum">-1</span><span class="comment"># Couldn't get snippet for (erb)</span></code></pre>
397
378
  </div>
398
379
  </dd>
@@ -402,7 +383,7 @@ expected: 2
402
383
  <span class="duration">n.nnnns</span>
403
384
  <div class="failure" id="failure_4">
404
385
  <div class="message"><pre>Exception</pre></div>
405
- <div class="backtrace"><pre>/foo.html.erb:1:in `&lt;main&gt;': foo (RuntimeError)</pre></div>
386
+ <div class="backtrace"><pre></pre></div>
406
387
  <pre class="ruby"><code><span class="linenum">-1</span><span class="comment"># Couldn't get snippet for /foo.html.erb</span></code></pre>
407
388
  </div>
408
389
  </dd>
@@ -413,4 +394,4 @@ expected: 2
413
394
  </div>
414
395
  </div>
415
396
  </body>
416
- </html>
397
+ </html>