From 00bf38ff1e60ccffa70073f801f56ef0406ec3b2 Mon Sep 17 00:00:00 2001 From: Chulki Lee Date: Tue, 22 Oct 2013 10:12:08 -0700 Subject: [PATCH] Add rspec for concern --- spec/models/version_spec.rb | 46 +++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/spec/models/version_spec.rb b/spec/models/version_spec.rb index d8c83818..2ebf3948 100644 --- a/spec/models/version_spec.rb +++ b/spec/models/version_spec.rb @@ -1,5 +1,51 @@ require 'spec_helper' +module Foo + class Base < ActiveRecord::Base + self.abstract_class = true + end + + class Document < Base + has_paper_trail :class_name => 'Foo::Version' + end + + class Version < Base + include PaperTrail::VersionConcern + end +end +Foo::Base.establish_connection(:adapter => 'sqlite3', :database => File.expand_path('../../../test/dummy/db/test-foo.sqlite3', __FILE__)) + +module Bar + class Base < ActiveRecord::Base + self.abstract_class = true + end + + class Document < Base + has_paper_trail :class_name => 'Bar::Version' + end + + class Version < Base + include PaperTrail::VersionConcern + end +end +Bar::Base.establish_connection(:adapter => 'sqlite3', :database => File.expand_path('../../../test/dummy/db/test-bar.sqlite3', __FILE__)) + +describe PaperTrail::VersionConcern do + it 'allows included class to have different connections' do + Foo::Version.connection.should_not eq Bar::Version.connection + end + + it 'allows custom version class to share connection with superclass' do + Foo::Version.connection.should eq Foo::Document.connection + Bar::Version.connection.should eq Bar::Document.connection + end + + it 'can be used with class_name option' do + Foo::Document.version_class_name.should eq 'Foo::Version' + Bar::Document.version_class_name.should eq 'Bar::Version' + end +end + describe PaperTrail::Version do describe "Attributes" do it { should have_db_column(:item_type).of_type(:string) }