Adjust specs regarding #where_object_changes to prevent possible coincidental errors; also acknowledge inconsistent nature of fixnum value args

This commit is contained in:
Ben Atkins 2015-01-14 17:10:54 -05:00
parent cd7c09e258
commit 1ad78383aa
2 changed files with 7 additions and 7 deletions

View File

@ -174,7 +174,7 @@ version.event
# Query versions objects by attributes.
PaperTrail::Version.where_object(attr1: val1, attr2: val2)
# Query versions object_changes field by attributes (requires [`object_changes`](https://github.com/airblade/paper_trail#diffing-versions) column on versions table)
# Query versions object_changes field by attributes (requires [`object_changes`](https://github.com/airblade/paper_trail#diffing-versions) column on versions table). Also can't guarantee consistent results for values of type Fixnum due to limitations of wildcard matchers against the column.
PaperTrail::Version.where_object_changes(attr1: val1)
```

View File

@ -122,11 +122,11 @@ describe PaperTrail::Version, :type => :model do
context "valid arguments", :versioning => true do
let(:widget) { Widget.new }
let(:name) { Faker::Name.first_name }
let(:int) { rand(10) + 1 }
let(:int) { rand(5) + 2 }
before do
widget.update_attributes!(:name => name, :an_integer => 0)
widget.update_attributes!(:name => 'foobar', :an_integer => 100)
widget.update_attributes!(:name => 'foobar', :an_integer => 77)
widget.update_attributes!(:name => Faker::Name.last_name, :an_integer => int)
end
@ -135,12 +135,12 @@ describe PaperTrail::Version, :type => :model do
it "should be able to locate versions according to their `object_changes` contents" do
expect(widget.versions.where_object_changes(:name => name)).to eq(widget.versions[0..1])
expect(widget.versions.where_object_changes(:an_integer => 100)).to eq(widget.versions[1..2])
expect(widget.versions.where_object_changes(:an_integer => 77)).to eq(widget.versions[1..2])
expect(widget.versions.where_object_changes(:an_integer => int)).to eq([widget.versions.last])
end
it "should be able to handle queries for multiple attributes" do
expect(widget.versions.where_object_changes(:an_integer => 100, :name => 'foobar')).to eq(widget.versions[1..2])
expect(widget.versions.where_object_changes(:an_integer => 77, :name => 'foobar')).to eq(widget.versions[1..2])
end
end
@ -150,12 +150,12 @@ describe PaperTrail::Version, :type => :model do
it "should be able to locate versions according to their `object_changes` contents" do
expect(widget.versions.where_object_changes(:name => name)).to eq(widget.versions[0..1])
expect(widget.versions.where_object_changes(:an_integer => 100)).to eq(widget.versions[1..2])
expect(widget.versions.where_object_changes(:an_integer => 77)).to eq(widget.versions[1..2])
expect(widget.versions.where_object_changes(:an_integer => int)).to eq([widget.versions.last])
end
it "should be able to handle queries for multiple attributes" do
expect(widget.versions.where_object_changes(:an_integer => 100, :name => 'foobar')).to eq(widget.versions[1..2])
expect(widget.versions.where_object_changes(:an_integer => 77, :name => 'foobar')).to eq(widget.versions[1..2])
end
after(:all) { PaperTrail.serializer = PaperTrail::Serializers::YAML }