spec/trackable_spec.rb in mongoid-history-0.1.3 vs spec/trackable_spec.rb in mongoid-history-0.1.4
- old
+ new
@@ -5,64 +5,65 @@
class MyModel
include Mongoid::Document
include Mongoid::History::Trackable
end
end
-
+
after :each do
Mongoid::History.trackable_classes = nil
Mongoid::History.trackable_class_options = nil
end
it "should have #track_history" do
MyModel.should respond_to :track_history
end
-
+
it "should append trackable_classes ONLY when #track_history is called" do
Mongoid::History.trackable_classes.should be_blank
MyModel.track_history
Mongoid::History.trackable_classes.should == [MyModel]
end
-
+
it "should append trackable_class_options ONLY when #track_history is called" do
Mongoid::History.trackable_class_options.should be_blank
MyModel.track_history
Mongoid::History.trackable_class_options.keys.should == [:my_model]
end
-
+
describe "#track_history" do
before :each do
class MyModel
include Mongoid::Document
include Mongoid::History::Trackable
track_history
end
-
+
@expected_option = {
:on => :all,
:modifier_field => :modifier,
:version_field => :version,
:scope => :my_model,
:except => ["created_at", "updated_at", "version", "modifier_id", "_id", "id"],
:track_create => false,
+ :track_update => true,
:track_destroy => false,
}
end
-
+
after :each do
Mongoid::History.trackable_classes = nil
Mongoid::History.trackable_class_options = nil
end
-
+
it "should have default options" do
Mongoid::History.trackable_class_options[:my_model].should == @expected_option
end
-
+
it "should define callback function #track_update" do
MyModel.new.private_methods.collect(&:to_sym).should include(:track_update)
end
-
+
it "should define callback function #track_create" do
MyModel.new.private_methods.collect(&:to_sym).should include(:track_create)
end
it "should define callback function #track_destroy" do
@@ -72,42 +73,42 @@
it "should define #history_trackable_options" do
MyModel.history_trackable_options.should == @expected_option
end
context "track_history" do
-
+
it "should be enabled on the current thread" do
MyModel.new.track_history?.should == true
end
-
+
it "should be disabled within disable_tracking" do
MyModel.disable_tracking do
MyModel.new.track_history?.should == false
end
end
-
+
it "should be rescued if an exception occurs" do
begin
MyModel.disable_tracking do
raise "exception"
end
rescue
end
MyModel.new.track_history?.should == true
end
-
+
it "should be disabled only for the class that calls disable_tracking" do
class MyModel2
include Mongoid::Document
include Mongoid::History::Trackable
track_history
end
-
+
MyModel.disable_tracking do
MyModel2.new.track_history?.should == true
- end
+ end
end
-
+
end
-
+
end
end