rspec-core 3.0.0.beta1 → 3.0.0.beta2

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.
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>