Modified to allow only string as example doc string.
Fixes rspec/rspec#40
corresponding PR that adds warnings in 3.99 rspec/rspec-core#3073
a case of rspec below
$ cat test.rb
context do
it :pending do
# Only pending option without reason
expect(true).to eq false
end
it pending: 'only pending option' do
expect(true).to eq false
end
it 'description with option', pending: 'some reason' do
expect(true).to eq false
end
end
before
Two examples failed because pending option was recognized as description and invalid.
$ bundle exec rspec test.rb --format documentation
pending (FAILED - 1)
{:pending=>"only pending option"} (FAILED - 2)
description with option (PENDING: some reason)
Pending: (Failures listed here are expected and do not affect your suite's status)
1) description with option
# some reason
Failure/Error: expect(true).to eq false
expected: false
got: true
(compared using ==)
Diff:
@@ -1 +1 @@
-false
+true
# ./test.rb:12:in `block (2 levels) in <top (required)>'
Failures:
1) pending
Failure/Error: expect(true).to eq false
expected: false
got: true
(compared using ==)
Diff:
@@ -1 +1 @@
-false
+true
# ./test.rb:4:in `block (2 levels) in <top (required)>'
2) {:pending=>"only pending option"}
Failure/Error: expect(true).to eq false
expected: false
got: true
(compared using ==)
Diff:
@@ -1 +1 @@
-false
+true
# ./test.rb:8:in `block (2 levels) in <top (required)>'
Finished in 0.01356 seconds (files took 0.08744 seconds to load)
3 examples, 2 failures, 1 pending
Failed examples:
rspec ./test.rb:2 # pending
rspec ./test.rb:7 # {:pending=>"only pending option"}
after
Every pending option is valid because example recognized description only if the first argument is string object.
$ bundle exec rspec test.rb --format documentation
is expected to eq false (PENDING: No reason given)
is expected to eq false (PENDING: only pending option)
description with option (PENDING: some reason)
Pending: (Failures listed here are expected and do not affect your suite's status)
1) is expected to eq false
# No reason given
Failure/Error: expect(true).to eq false
expected: false
got: true
(compared using ==)
Diff:
@@ -1 +1 @@
-false
+true
# ./test.rb:4:in `block (2 levels) in <top (required)>'
2) is expected to eq false
# only pending option
Failure/Error: expect(true).to eq false
expected: false
got: true
(compared using ==)
Diff:
@@ -1 +1 @@
-false
+true
# ./test.rb:8:in `block (2 levels) in <top (required)>'
3) description with option
# some reason
Failure/Error: expect(true).to eq false
expected: false
got: true
(compared using ==)
Diff:
@@ -1 +1 @@
-false
+true
# ./test.rb:12:in `block (2 levels) in <top (required)>'
Finished in 0.01475 seconds (files took 0.08761 seconds to load)
3 examples, 0 failures, 3 pending
Modified to allow only string as example doc string. Fixes rspec/rspec#40
corresponding PR that adds warnings in 3.99 rspec/rspec-core#3073
a case of rspec below
before
Two examples failed because pending option was recognized as description and invalid.
after
Every pending option is valid because example recognized description only if the first argument is string object.