From 1ad78383aa58d6b74e237f84310f7440712710ab Mon Sep 17 00:00:00 2001 From: Ben Atkins Date: Wed, 14 Jan 2015 17:10:54 -0500 Subject: [PATCH] Adjust specs regarding #where_object_changes to prevent possible coincidental errors; also acknowledge inconsistent nature of fixnum value args --- README.md | 2 +- spec/models/version_spec.rb | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index bc1a8e0e7..946580786 100644 --- a/README.md +++ b/README.md @@ -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) ``` diff --git a/spec/models/version_spec.rb b/spec/models/version_spec.rb index 85d9b643c..3881e0975 100644 --- a/spec/models/version_spec.rb +++ b/spec/models/version_spec.rb @@ -122,11 +122,11 @@ 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 @@ 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 @@ 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 }