Skip to content

Commit 45d5dd2

Browse files
author
Ricard Forniol
committed
Use new :expect syntax
1 parent 46aa33a commit 45d5dd2

4 files changed

Lines changed: 24 additions & 30 deletions

File tree

lib/mongoid/token/collisions.rb

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,8 @@ def raise_collision_retries_exceeded_error(field_name, retry_count)
2828
def is_duplicate_token_error?(err, document, field_name)
2929
err.message =~ /(11000|11001)/ &&
3030
err.message =~ /dup key/ &&
31-
err.message =~ /"#{document.send(field_name)}"/
31+
err.message =~ /"#{document.send(field_name)}"/ &&
32+
true
3233
end
3334
end
3435
end

spec/mongoid/token/collisions_spec.rb

Lines changed: 18 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -7,16 +7,16 @@
77
let(:resolver) { double("Mongoid::Token::CollisionResolver") }
88

99
before(:each) do
10-
resolver.stub(:field_name).and_return(:token)
11-
resolver.stub(:create_new_token_for){|doc|}
10+
allow(resolver).to receive(:field_name).and_return(:token)
11+
allow(resolver).to receive(:create_new_token_for){|doc|}
1212
document.class.send(:include, Mongoid::Token::Collisions)
13-
document.stub(:is_duplicate_token_error?).and_return(true)
14-
document.class.stub(:resolvers).and_return([resolver])
13+
allow(document).to receive(:is_duplicate_token_error?).and_return(true)
14+
allow(document.class).to receive(:resolvers).and_return([resolver])
1515
end
1616

1717
context "and there are zero retries" do
1818
it "should raise an error after the first try" do
19-
resolver.stub(:retry_count).and_return(0)
19+
allow(resolver).to receive(:retry_count).and_return(0)
2020
attempts = 0
2121
expect do
2222
document.resolve_token_collisions do
@@ -30,7 +30,7 @@
3030

3131
context "and retries is set to 1" do
3232
it "should raise an error after retrying once" do
33-
resolver.stub(:retry_count).and_return(1)
33+
allow(resolver).to receive(:retry_count).and_return(1)
3434
attempts = 0
3535
expect do
3636
document.resolve_token_collisions do
@@ -44,7 +44,7 @@
4444

4545
context "and retries is greater than 1" do
4646
it "should raise an error after retrying" do
47-
resolver.stub(:retry_count).and_return(3)
47+
allow(resolver).to receive(:retry_count).and_return(3)
4848
attempts = 0
4949
expect do
5050
document.resolve_token_collisions do
@@ -58,8 +58,8 @@
5858

5959
context "and a different index is violated" do
6060
it "should bubble the operation failure" do
61-
document.stub(:is_duplicate_token_error?).and_return(false)
62-
resolver.stub(:retry_count).and_return(3)
61+
allow(document).to receive(:is_duplicate_token_error?).and_return(false)
62+
allow(resolver).to receive(:retry_count).and_return(3)
6363
e = Mongo::Error::OperationFailure.new("nope")
6464
expect do
6565
document.resolve_token_collisions { raise e }
@@ -77,11 +77,11 @@
7777
it "should warn the rails logger" do
7878
message = nil
7979

80-
stub_const("Rails", Class.new)
80+
stub_const('Rails', Class.new)
8181

82-
logger = double("logger")
83-
logger.stub("warn"){ |msg| message = msg }
84-
Rails.stub("logger").and_return(logger)
82+
logger = double('logger')
83+
allow(logger).to receive('warn') { |msg| message = msg }
84+
allow(Rails).to receive('logger').and_return(logger)
8585

8686
begin
8787
document.raise_collision_retries_exceeded_error(:token, 3)
@@ -103,18 +103,11 @@
103103
end
104104
context "when there is a duplicate key error" do
105105
it "should return true" do
106-
document.stub("token").and_return("tokenvalue123")
107-
err = double("Mongo::Error::OperationFailure")
108-
err.stub("details").and_return do
109-
{
110-
"err" => "E11000 duplicate key error index: mongoid_token_test.links.$token_1 dup key: { : \"tokenvalue123\" }",
111-
"code" => 11000,
112-
"n" => 0,
113-
"connectionId" => 130,
114-
"ok" => 1.0
115-
}
116-
document.is_duplicate_token_error?(err, document, :token)
117-
end
106+
allow(document).to receive('token').and_return('tokenvalue123')
107+
err = double('Mongo::Error::OperationFailure')
108+
allow(err).to(receive('message')
109+
.and_return('insertDocument :: caused by :: 11000 E11000 duplicate key error index: mongoid_token_test.documents.$token_1 dup key: { : "tokenvalue123" } (11000) (on localhost:27017, legacy retry, attempt 1) (on localhost:27017, legacy retry, attempt 1)'))
110+
expect(document.is_duplicate_token_error?(err, document, :token)).to be(true)
118111
end
119112
end
120113
end

spec/mongoid/token/finders_spec.rb

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,21 +10,21 @@
1010
klass = Class.new
1111
field = :another_token
1212
Mongoid::Token::Finders.define_custom_token_finder_for(klass, field)
13-
klass.singleton_methods.should include(:"find_by_#{field}")
13+
expect(klass.singleton_methods).to include(:"find_by_#{field}")
1414
end
1515

1616
it "retrieve a document using the dynamic finder" do
1717
class Document; include Mongoid::Document; field :token; end
1818
document = Document.create!(:token => "1234")
1919
Mongoid::Token::Finders.define_custom_token_finder_for(Document)
20-
Document.find_by_token("1234").should == document
20+
expect(Document.find_by_token("1234")).to eq(document)
2121
end
2222

2323
it 'retrieves multiple documents using the dynamic finder' do
2424
class Document; include Mongoid::Document; field :token; end
2525
document = Document.create!(:token => "1234")
2626
document2 = Document.create!(:token => "5678")
2727
Mongoid::Token::Finders.define_custom_token_finder_for(Document)
28-
Document.find_by_token(["1234", "5678"]).should == [document, document2]
28+
expect(Document.find_by_token(["1234", "5678"])).to eq([document, document2])
2929
end
3030
end

spec/mongoid/token_spec.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -268,7 +268,7 @@ class Doc
268268
document.token = "1234"
269269
document.save
270270
document_class.any_instance.stub(:generate_token).and_return("1234")
271-
expect{document_class.create!}.to raise_exception(Mongoid::Token::CollisionRetriesExceeded)
271+
expect { document_class.create! }.to raise_exception(Mongoid::Token::CollisionRetriesExceeded)
272272
end
273273
end
274274

0 commit comments

Comments
 (0)