From 3579e0e3344d75c2424c4c83fbd623fa5f86b7fb Mon Sep 17 00:00:00 2001 From: Sam Lown Date: Thu, 9 Jun 2011 01:05:22 +0200 Subject: [PATCH] Refactoring tests and Validation callbacks --- lib/couchrest/model/base.rb | 2 +- lib/couchrest/model/callbacks.rb | 24 ++++++------ lib/couchrest/model/casted_model.rb | 2 +- lib/couchrest/model/validations.rb | 27 ++++++++++---- lib/couchrest_model.rb | 2 +- spec/fixtures/{more => models}/article.rb | 0 spec/fixtures/{ => models}/base.rb | 0 spec/fixtures/{more => models}/card.rb | 2 + spec/fixtures/{more => models}/cat.rb | 0 spec/fixtures/{more => models}/client.rb | 0 spec/fixtures/{more => models}/course.rb | 4 +- spec/fixtures/{more => models}/event.rb | 0 spec/fixtures/{more => models}/invoice.rb | 4 +- spec/fixtures/{more => models}/key_chain.rb | 0 spec/fixtures/models/membership.rb | 4 ++ spec/fixtures/{more => models}/person.rb | 2 + spec/fixtures/{more => models}/question.rb | 0 spec/fixtures/{more => models}/sale_entry.rb | 0 .../fixtures/{more => models}/sale_invoice.rb | 7 ++-- spec/fixtures/{more => models}/service.rb | 0 spec/fixtures/{more => models}/user.rb | 0 spec/functional/validations_spec.rb | 8 ++++ spec/spec_helper.rb | 37 ++++++++++++------- spec/unit/active_model_lint_spec.rb | 30 +++++++++++++++ spec/{couchrest => unit}/assocations_spec.rb | 4 +- spec/{couchrest => unit}/attachment_spec.rb | 2 +- spec/{couchrest => unit}/base_spec.rb | 8 +--- spec/{couchrest => unit}/casted_model_spec.rb | 9 +---- spec/{couchrest => unit}/casted_spec.rb | 5 +-- spec/{couchrest => unit}/class_proxy_spec.rb | 2 +- spec/{couchrest => unit}/collection_spec.rb | 3 +- .../{couchrest => unit}/configuration_spec.rb | 5 +-- spec/{couchrest => unit}/connection_spec.rb | 4 +- .../core_extensions/time_parsing.rb | 0 spec/{couchrest => unit}/design_doc_spec.rb | 7 +--- spec/{couchrest => unit}/designs/view_spec.rb | 0 spec/{couchrest => unit}/designs_spec.rb | 5 +-- spec/{couchrest => unit}/dirty_spec.rb | 8 +--- spec/{couchrest => unit}/inherited_spec.rb | 2 +- spec/{couchrest => unit}/persistence_spec.rb | 10 +---- .../property_protection_spec.rb | 2 +- spec/{couchrest => unit}/property_spec.rb | 15 +------- spec/{couchrest => unit}/proxyable_spec.rb | 6 +-- spec/{couchrest => unit}/subclass_spec.rb | 6 +-- spec/{couchrest => unit}/typecast_spec.rb | 5 +-- spec/{couchrest => unit}/validations_spec.rb | 12 +----- spec/{couchrest => unit}/view_spec.rb | 9 +---- 47 files changed, 142 insertions(+), 142 deletions(-) rename spec/fixtures/{more => models}/article.rb (100%) rename spec/fixtures/{ => models}/base.rb (100%) rename spec/fixtures/{more => models}/card.rb (95%) rename spec/fixtures/{more => models}/cat.rb (100%) rename spec/fixtures/{more => models}/client.rb (100%) rename spec/fixtures/{more => models}/course.rb (88%) rename spec/fixtures/{more => models}/event.rb (100%) rename spec/fixtures/{more => models}/invoice.rb (98%) rename spec/fixtures/{more => models}/key_chain.rb (100%) create mode 100644 spec/fixtures/models/membership.rb rename spec/fixtures/{more => models}/person.rb (91%) rename spec/fixtures/{more => models}/question.rb (100%) rename spec/fixtures/{more => models}/sale_entry.rb (100%) rename spec/fixtures/{more => models}/sale_invoice.rb (72%) rename spec/fixtures/{more => models}/service.rb (100%) rename spec/fixtures/{more => models}/user.rb (100%) create mode 100644 spec/functional/validations_spec.rb create mode 100644 spec/unit/active_model_lint_spec.rb rename spec/{couchrest => unit}/assocations_spec.rb (98%) rename spec/{couchrest => unit}/attachment_spec.rb (99%) rename spec/{couchrest => unit}/base_spec.rb (98%) rename spec/{couchrest => unit}/casted_model_spec.rb (97%) rename spec/{couchrest => unit}/casted_spec.rb (89%) rename spec/{couchrest => unit}/class_proxy_spec.rb (98%) rename spec/{couchrest => unit}/collection_spec.rb (97%) rename spec/{couchrest => unit}/configuration_spec.rb (92%) rename spec/{couchrest => unit}/connection_spec.rb (97%) rename spec/{couchrest => unit}/core_extensions/time_parsing.rb (100%) rename spec/{couchrest => unit}/design_doc_spec.rb (97%) rename spec/{couchrest => unit}/designs/view_spec.rb (100%) rename spec/{couchrest => unit}/designs_spec.rb (97%) rename spec/{couchrest => unit}/dirty_spec.rb (97%) rename spec/{couchrest => unit}/inherited_spec.rb (92%) rename spec/{couchrest => unit}/persistence_spec.rb (97%) rename spec/{couchrest => unit}/property_protection_spec.rb (99%) rename spec/{couchrest => unit}/property_spec.rb (96%) rename spec/{couchrest => unit}/proxyable_spec.rb (98%) rename spec/{couchrest => unit}/subclass_spec.rb (89%) rename spec/{couchrest => unit}/typecast_spec.rb (98%) rename spec/{couchrest => unit}/validations_spec.rb (92%) rename spec/{couchrest => unit}/view_spec.rb (97%) diff --git a/lib/couchrest/model/base.rb b/lib/couchrest/model/base.rb index bf64e4b..f9bcec9 100644 --- a/lib/couchrest/model/base.rb +++ b/lib/couchrest/model/base.rb @@ -7,7 +7,6 @@ module CouchRest include CouchRest::Model::Configuration include CouchRest::Model::Connection include CouchRest::Model::Persistence - include CouchRest::Model::Callbacks include CouchRest::Model::DocumentQueries include CouchRest::Model::Views include CouchRest::Model::DesignDoc @@ -18,6 +17,7 @@ module CouchRest include CouchRest::Model::PropertyProtection include CouchRest::Model::Associations include CouchRest::Model::Validations + include CouchRest::Model::Callbacks include CouchRest::Model::Designs include CouchRest::Model::CastedBy include CouchRest::Model::Dirty diff --git a/lib/couchrest/model/callbacks.rb b/lib/couchrest/model/callbacks.rb index 3037810..18a36e9 100644 --- a/lib/couchrest/model/callbacks.rb +++ b/lib/couchrest/model/callbacks.rb @@ -5,21 +5,23 @@ module CouchRest #:nodoc: module Callbacks extend ActiveSupport::Concern + + CALLBACKS = [ + :before_validation, :after_validation, + :after_initialize, + :before_create, :around_create, :after_create, + :before_destroy, :around_destroy, :after_destroy, + :before_save, :around_save, :after_save, + :before_update, :around_update, :after_update, + ] + included do extend ActiveModel::Callbacks + include ActiveModel::Validations::Callbacks - define_model_callbacks \ - :create, - :destroy, - :save, - :update - + define_model_callbacks :initialize, :only => :after + define_model_callbacks :create, :destroy, :save, :update end - - def valid?(*) #nodoc - _run_validation_callbacks { super } - end - end end diff --git a/lib/couchrest/model/casted_model.rb b/lib/couchrest/model/casted_model.rb index f20de16..aa27e0a 100644 --- a/lib/couchrest/model/casted_model.rb +++ b/lib/couchrest/model/casted_model.rb @@ -5,11 +5,11 @@ module CouchRest::Model included do include CouchRest::Model::Configuration - include CouchRest::Model::Callbacks include CouchRest::Model::Properties include CouchRest::Model::PropertyProtection include CouchRest::Model::Associations include CouchRest::Model::Validations + include CouchRest::Model::Callbacks include CouchRest::Model::CastedBy include CouchRest::Model::Dirty class_eval do diff --git a/lib/couchrest/model/validations.rb b/lib/couchrest/model/validations.rb index 11a2571..825b169 100644 --- a/lib/couchrest/model/validations.rb +++ b/lib/couchrest/model/validations.rb @@ -13,22 +13,33 @@ module CouchRest # Validations may be applied to both Model::Base and Model::CastedModel module Validations extend ActiveSupport::Concern - included do - include ActiveModel::Validations - include ActiveModel::Validations::Callbacks + include ActiveModel::Validations + + # Determine if the document is valid. + # + # @example Is the document valid? + # person.valid? + # + # @example Is the document valid in a context? + # person.valid?(:create) + # + # @param [ Symbol ] context The optional validation context. + # + # @return [ true, false ] True if valid, false if not. + # + def valid?(context = nil) + super context ? context : (new? ? :create : :update) end - module ClassMethods - - # Validates the associated casted model. This method should not be + + # Validates the associated casted model. This method should not be # used within your code as it is automatically included when a CastedModel # is used inside the model. - # def validates_casted_model(*args) validates_with(CastedModelValidator, _merge_attributes(args)) end - + # Validates if the field is unique for this type of document. Automatically creates # a view if one does not already exist and performs a search for all matching # documents. diff --git a/lib/couchrest_model.rb b/lib/couchrest_model.rb index 956a2a6..97a491c 100644 --- a/lib/couchrest_model.rb +++ b/lib/couchrest_model.rb @@ -60,8 +60,8 @@ require "couchrest/model/core_extensions/time_parsing" # Base libraries require "couchrest/model/casted_model" require "couchrest/model/base" -# Add rails support *after* everything has loaded +# Add rails support *after* everything has loaded if defined?(Rails) require "couchrest/railtie" end diff --git a/spec/fixtures/more/article.rb b/spec/fixtures/models/article.rb similarity index 100% rename from spec/fixtures/more/article.rb rename to spec/fixtures/models/article.rb diff --git a/spec/fixtures/base.rb b/spec/fixtures/models/base.rb similarity index 100% rename from spec/fixtures/base.rb rename to spec/fixtures/models/base.rb diff --git a/spec/fixtures/more/card.rb b/spec/fixtures/models/card.rb similarity index 95% rename from spec/fixtures/more/card.rb rename to spec/fixtures/models/card.rb index 7494b44..8cf72ab 100644 --- a/spec/fixtures/more/card.rb +++ b/spec/fixtures/models/card.rb @@ -1,3 +1,5 @@ +require 'person' + class Card < CouchRest::Model::Base # Set the default database to use use_database DB diff --git a/spec/fixtures/more/cat.rb b/spec/fixtures/models/cat.rb similarity index 100% rename from spec/fixtures/more/cat.rb rename to spec/fixtures/models/cat.rb diff --git a/spec/fixtures/more/client.rb b/spec/fixtures/models/client.rb similarity index 100% rename from spec/fixtures/more/client.rb rename to spec/fixtures/models/client.rb diff --git a/spec/fixtures/more/course.rb b/spec/fixtures/models/course.rb similarity index 88% rename from spec/fixtures/more/course.rb rename to spec/fixtures/models/course.rb index d06f6a0..2998bb2 100644 --- a/spec/fixtures/more/course.rb +++ b/spec/fixtures/models/course.rb @@ -1,5 +1,5 @@ -require File.join(FIXTURE_PATH, 'more', 'question') -require File.join(FIXTURE_PATH, 'more', 'person') +require 'question' +require 'person' class Course < CouchRest::Model::Base use_database TEST_SERVER.default_database diff --git a/spec/fixtures/more/event.rb b/spec/fixtures/models/event.rb similarity index 100% rename from spec/fixtures/more/event.rb rename to spec/fixtures/models/event.rb diff --git a/spec/fixtures/more/invoice.rb b/spec/fixtures/models/invoice.rb similarity index 98% rename from spec/fixtures/more/invoice.rb rename to spec/fixtures/models/invoice.rb index 540c9ff..927fd8f 100644 --- a/spec/fixtures/more/invoice.rb +++ b/spec/fixtures/models/invoice.rb @@ -6,9 +6,9 @@ class Invoice < CouchRest::Model::Base property :client_name property :employee_name property :location - + # Validation validates_presence_of :client_name, :employee_name validates_presence_of :location, :message => "Hey stupid!, you forgot the location" - + end diff --git a/spec/fixtures/more/key_chain.rb b/spec/fixtures/models/key_chain.rb similarity index 100% rename from spec/fixtures/more/key_chain.rb rename to spec/fixtures/models/key_chain.rb diff --git a/spec/fixtures/models/membership.rb b/spec/fixtures/models/membership.rb new file mode 100644 index 0000000..0c7f639 --- /dev/null +++ b/spec/fixtures/models/membership.rb @@ -0,0 +1,4 @@ +class Membership < Hash + include CouchRest::Model::CastedModel + +end diff --git a/spec/fixtures/more/person.rb b/spec/fixtures/models/person.rb similarity index 91% rename from spec/fixtures/more/person.rb rename to spec/fixtures/models/person.rb index 076bbc0..de5de5c 100644 --- a/spec/fixtures/more/person.rb +++ b/spec/fixtures/models/person.rb @@ -1,3 +1,5 @@ +require 'cat' + class Person < Hash include ::CouchRest::Model::CastedModel property :pet, Cat diff --git a/spec/fixtures/more/question.rb b/spec/fixtures/models/question.rb similarity index 100% rename from spec/fixtures/more/question.rb rename to spec/fixtures/models/question.rb diff --git a/spec/fixtures/more/sale_entry.rb b/spec/fixtures/models/sale_entry.rb similarity index 100% rename from spec/fixtures/more/sale_entry.rb rename to spec/fixtures/models/sale_entry.rb diff --git a/spec/fixtures/more/sale_invoice.rb b/spec/fixtures/models/sale_invoice.rb similarity index 72% rename from spec/fixtures/more/sale_invoice.rb rename to spec/fixtures/models/sale_invoice.rb index ad6beb2..290dd9c 100644 --- a/spec/fixtures/more/sale_invoice.rb +++ b/spec/fixtures/models/sale_invoice.rb @@ -1,5 +1,6 @@ -require File.join(FIXTURE_PATH, 'more', 'client') -require File.join(FIXTURE_PATH, 'more', 'sale_entry') +require 'client' +require 'sale_entry' + class SaleInvoice < CouchRest::Model::Base use_database DB @@ -10,4 +11,4 @@ class SaleInvoice < CouchRest::Model::Base property :date, Date property :price, Integer -end \ No newline at end of file +end diff --git a/spec/fixtures/more/service.rb b/spec/fixtures/models/service.rb similarity index 100% rename from spec/fixtures/more/service.rb rename to spec/fixtures/models/service.rb diff --git a/spec/fixtures/more/user.rb b/spec/fixtures/models/user.rb similarity index 100% rename from spec/fixtures/more/user.rb rename to spec/fixtures/models/user.rb diff --git a/spec/functional/validations_spec.rb b/spec/functional/validations_spec.rb new file mode 100644 index 0000000..fc06203 --- /dev/null +++ b/spec/functional/validations_spec.rb @@ -0,0 +1,8 @@ +require File.expand_path('../../spec_helper', __FILE__) + +describe CouchRest::Model::Validations do + + let(:invoice) do + Invoice.new() + end +end diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 75ed89d..284d0d1 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -1,9 +1,14 @@ +$LOAD_PATH.unshift(File.dirname(__FILE__)) +$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), "..", "lib")) + +MODELS = File.join(File.dirname(__FILE__), "fixtures", "models") +$LOAD_PATH.unshift(MODELS) + require "bundler/setup" require "rubygems" -require "rspec" # Satisfies Autotest and anyone else not using the Rake tasks +require "rspec" -require File.join(File.dirname(__FILE__), '..','lib','couchrest_model') -# check the following file to see how to use the spec'd features. +require 'couchrest_model' unless defined?(FIXTURE_PATH) FIXTURE_PATH = File.join(File.dirname(__FILE__), '/fixtures') @@ -16,6 +21,21 @@ unless defined?(FIXTURE_PATH) DB = TEST_SERVER.database(TESTDB) end +RSpec.configure do |config| + config.before(:all) { reset_test_db! } + + config.after(:all) do + cr = TEST_SERVER + test_dbs = cr.databases.select { |db| db =~ /^#{TESTDB}/ } + test_dbs.each do |db| + cr.database(db).delete! rescue nil + end + end +end + +# Require each of the fixture models +Dir[ File.join(MODELS, "*.rb") ].sort.each { |file| require File.basename(file) } + class Basic < CouchRest::Model::Base use_database TEST_SERVER.default_database end @@ -27,17 +47,6 @@ def reset_test_db! DB end -RSpec.configure do |config| - config.before(:all) { reset_test_db! } - - config.after(:all) do - cr = TEST_SERVER - test_dbs = cr.databases.select { |db| db =~ /^#{TESTDB}/ } - test_dbs.each do |db| - cr.database(db).delete! rescue nil - end - end -end def couchdb_lucene_available? lucene_path = "http://localhost:5985/" diff --git a/spec/unit/active_model_lint_spec.rb b/spec/unit/active_model_lint_spec.rb new file mode 100644 index 0000000..3cc5d3d --- /dev/null +++ b/spec/unit/active_model_lint_spec.rb @@ -0,0 +1,30 @@ +# encoding: utf-8 +require 'spec_helper' +require 'test/unit/assertions' +require 'active_model/lint' + +class CompliantModel < CouchRest::Model::Base +end + + +describe CouchRest::Model::Base do + include Test::Unit::Assertions + include ActiveModel::Lint::Tests + + before :each do + @model = CompliantModel.new + end + + describe "active model lint tests" do + ActiveModel::Lint::Tests.public_instance_methods.map{|m| m.to_s}.grep(/^test/).each do |m| + example m.gsub('_',' ') do + send m + end + end + end + + def model + @model + end + +end diff --git a/spec/couchrest/assocations_spec.rb b/spec/unit/assocations_spec.rb similarity index 98% rename from spec/couchrest/assocations_spec.rb rename to spec/unit/assocations_spec.rb index 0affb6e..528b5d0 100644 --- a/spec/couchrest/assocations_spec.rb +++ b/spec/unit/assocations_spec.rb @@ -1,7 +1,5 @@ # encoding: utf-8 -require File.expand_path('../../spec_helper', __FILE__) -require File.join(FIXTURE_PATH, 'more', 'sale_invoice') - +require 'spec_helper' describe "Assocations" do diff --git a/spec/couchrest/attachment_spec.rb b/spec/unit/attachment_spec.rb similarity index 99% rename from spec/couchrest/attachment_spec.rb rename to spec/unit/attachment_spec.rb index 420b88c..0d050d3 100644 --- a/spec/couchrest/attachment_spec.rb +++ b/spec/unit/attachment_spec.rb @@ -1,4 +1,4 @@ -require File.expand_path('../../spec_helper', __FILE__) +require 'spec_helper' describe "Model attachments" do diff --git a/spec/couchrest/base_spec.rb b/spec/unit/base_spec.rb similarity index 98% rename from spec/couchrest/base_spec.rb rename to spec/unit/base_spec.rb index e3c665f..c375a7c 100644 --- a/spec/couchrest/base_spec.rb +++ b/spec/unit/base_spec.rb @@ -1,11 +1,5 @@ # encoding: utf-8 - -require File.expand_path("../../spec_helper", __FILE__) -require File.join(FIXTURE_PATH, 'more', 'cat') -require File.join(FIXTURE_PATH, 'more', 'article') -require File.join(FIXTURE_PATH, 'more', 'course') -require File.join(FIXTURE_PATH, 'more', 'card') -require File.join(FIXTURE_PATH, 'base') +require "spec_helper" describe "Model Base" do diff --git a/spec/couchrest/casted_model_spec.rb b/spec/unit/casted_model_spec.rb similarity index 97% rename from spec/couchrest/casted_model_spec.rb rename to spec/unit/casted_model_spec.rb index 2bed08c..9e47ab0 100644 --- a/spec/couchrest/casted_model_spec.rb +++ b/spec/unit/casted_model_spec.rb @@ -1,12 +1,5 @@ # encoding: utf-8 - -require File.expand_path('../../spec_helper', __FILE__) -require File.join(FIXTURE_PATH, 'more', 'cat') -require File.join(FIXTURE_PATH, 'more', 'person') -require File.join(FIXTURE_PATH, 'more', 'card') -require File.join(FIXTURE_PATH, 'more', 'question') -require File.join(FIXTURE_PATH, 'more', 'course') - +require "spec_helper" class WithCastedModelMixin < Hash include CouchRest::Model::CastedModel diff --git a/spec/couchrest/casted_spec.rb b/spec/unit/casted_spec.rb similarity index 89% rename from spec/couchrest/casted_spec.rb rename to spec/unit/casted_spec.rb index 44e4231..a7b4860 100644 --- a/spec/couchrest/casted_spec.rb +++ b/spec/unit/casted_spec.rb @@ -1,7 +1,4 @@ -require File.expand_path('../../spec_helper', __FILE__) -require File.join(FIXTURE_PATH, 'more', 'cat') -require File.join(FIXTURE_PATH, 'more', 'person') -require File.join(FIXTURE_PATH, 'more', 'card') +require "spec_helper" class Driver < CouchRest::Model::Base use_database TEST_SERVER.default_database diff --git a/spec/couchrest/class_proxy_spec.rb b/spec/unit/class_proxy_spec.rb similarity index 98% rename from spec/couchrest/class_proxy_spec.rb rename to spec/unit/class_proxy_spec.rb index 1572d8d..f945d30 100644 --- a/spec/couchrest/class_proxy_spec.rb +++ b/spec/unit/class_proxy_spec.rb @@ -1,4 +1,4 @@ -require File.expand_path("../../spec_helper", __FILE__) +require "spec_helper" class UnattachedDoc < CouchRest::Model::Base # Note: no use_database here diff --git a/spec/couchrest/collection_spec.rb b/spec/unit/collection_spec.rb similarity index 97% rename from spec/couchrest/collection_spec.rb rename to spec/unit/collection_spec.rb index 63a1626..e501072 100644 --- a/spec/couchrest/collection_spec.rb +++ b/spec/unit/collection_spec.rb @@ -1,5 +1,4 @@ -require File.expand_path("../../spec_helper", __FILE__) -require File.join(FIXTURE_PATH, 'more', 'article') +require "spec_helper" describe "Collections" do diff --git a/spec/couchrest/configuration_spec.rb b/spec/unit/configuration_spec.rb similarity index 92% rename from spec/couchrest/configuration_spec.rb rename to spec/unit/configuration_spec.rb index 9053eab..26255f9 100644 --- a/spec/couchrest/configuration_spec.rb +++ b/spec/unit/configuration_spec.rb @@ -1,8 +1,7 @@ # encoding: utf-8 -require File.expand_path('../../spec_helper', __FILE__) -require File.join(FIXTURE_PATH, 'more', 'cat') +require "spec_helper" -describe CouchRest::Model::Base do +describe CouchRest::Model::Configuration do before do @class = Class.new(CouchRest::Model::Base) diff --git a/spec/couchrest/connection_spec.rb b/spec/unit/connection_spec.rb similarity index 97% rename from spec/couchrest/connection_spec.rb rename to spec/unit/connection_spec.rb index 4fc6b74..4607991 100644 --- a/spec/couchrest/connection_spec.rb +++ b/spec/unit/connection_spec.rb @@ -1,7 +1,7 @@ # encoding: utf-8 -require File.expand_path('../../spec_helper', __FILE__) +require 'spec_helper' -describe CouchRest::Model::Base do +describe CouchRest::Model::Connection do before do @class = Class.new(CouchRest::Model::Base) diff --git a/spec/couchrest/core_extensions/time_parsing.rb b/spec/unit/core_extensions/time_parsing.rb similarity index 100% rename from spec/couchrest/core_extensions/time_parsing.rb rename to spec/unit/core_extensions/time_parsing.rb diff --git a/spec/couchrest/design_doc_spec.rb b/spec/unit/design_doc_spec.rb similarity index 97% rename from spec/couchrest/design_doc_spec.rb rename to spec/unit/design_doc_spec.rb index fcd40c1..d034d68 100644 --- a/spec/couchrest/design_doc_spec.rb +++ b/spec/unit/design_doc_spec.rb @@ -1,10 +1,7 @@ # encoding: utf-8 +require 'spec_helper' -require File.expand_path("../../spec_helper", __FILE__) -require File.join(FIXTURE_PATH, 'base') -require File.join(FIXTURE_PATH, 'more', 'article') - -describe "Design Documents" do +describe CouchRest::Model::DesignDoc do before :all do reset_test_db! diff --git a/spec/couchrest/designs/view_spec.rb b/spec/unit/designs/view_spec.rb similarity index 100% rename from spec/couchrest/designs/view_spec.rb rename to spec/unit/designs/view_spec.rb diff --git a/spec/couchrest/designs_spec.rb b/spec/unit/designs_spec.rb similarity index 97% rename from spec/couchrest/designs_spec.rb rename to spec/unit/designs_spec.rb index 3fa2f6a..e4e981d 100644 --- a/spec/couchrest/designs_spec.rb +++ b/spec/unit/designs_spec.rb @@ -1,10 +1,9 @@ -require File.expand_path("../../spec_helper", __FILE__) +require "spec_helper" class DesignModel < CouchRest::Model::Base - end -describe "Design" do +describe CouchRest::Model::Designs do it "should accessable from model" do DesignModel.respond_to?(:design).should be_true diff --git a/spec/couchrest/dirty_spec.rb b/spec/unit/dirty_spec.rb similarity index 97% rename from spec/couchrest/dirty_spec.rb rename to spec/unit/dirty_spec.rb index 9129a23..f527d9c 100644 --- a/spec/couchrest/dirty_spec.rb +++ b/spec/unit/dirty_spec.rb @@ -1,10 +1,4 @@ -require File.expand_path("../../spec_helper", __FILE__) - -require File.join(FIXTURE_PATH, 'more', 'cat') -require File.join(FIXTURE_PATH, 'more', 'article') -require File.join(FIXTURE_PATH, 'more', 'course') -require File.join(FIXTURE_PATH, 'more', 'card') -require File.join(FIXTURE_PATH, 'base') +require "spec_helper" class WithCastedModelMixin < Hash include CouchRest::Model::CastedModel diff --git a/spec/couchrest/inherited_spec.rb b/spec/unit/inherited_spec.rb similarity index 92% rename from spec/couchrest/inherited_spec.rb rename to spec/unit/inherited_spec.rb index f19546f..04b8e3d 100644 --- a/spec/couchrest/inherited_spec.rb +++ b/spec/unit/inherited_spec.rb @@ -1,4 +1,4 @@ -require File.expand_path('../../spec_helper', __FILE__) +require 'spec_helper' class PlainParent class_inheritable_accessor :foo diff --git a/spec/couchrest/persistence_spec.rb b/spec/unit/persistence_spec.rb similarity index 97% rename from spec/couchrest/persistence_spec.rb rename to spec/unit/persistence_spec.rb index 71ced97..3a8a042 100644 --- a/spec/couchrest/persistence_spec.rb +++ b/spec/unit/persistence_spec.rb @@ -1,13 +1,7 @@ # encoding: utf-8 -require File.expand_path('../../spec_helper', __FILE__) -require File.join(FIXTURE_PATH, 'base') -require File.join(FIXTURE_PATH, 'more', 'cat') -require File.join(FIXTURE_PATH, 'more', 'article') -require File.join(FIXTURE_PATH, 'more', 'course') -require File.join(FIXTURE_PATH, 'more', 'card') -require File.join(FIXTURE_PATH, 'more', 'event') +require 'spec_helper' -describe "Model Persistence" do +describe CouchRest::Model::Persistence do before(:each) do @obj = WithDefaultValues.new diff --git a/spec/couchrest/property_protection_spec.rb b/spec/unit/property_protection_spec.rb similarity index 99% rename from spec/couchrest/property_protection_spec.rb rename to spec/unit/property_protection_spec.rb index eb5ca55..9de0d94 100644 --- a/spec/couchrest/property_protection_spec.rb +++ b/spec/unit/property_protection_spec.rb @@ -1,4 +1,4 @@ -require File.expand_path("../../spec_helper", __FILE__) +require "spec_helper" describe "Model Attributes" do diff --git a/spec/couchrest/property_spec.rb b/spec/unit/property_spec.rb similarity index 96% rename from spec/couchrest/property_spec.rb rename to spec/unit/property_spec.rb index 6da6b3b..b799908 100644 --- a/spec/couchrest/property_spec.rb +++ b/spec/unit/property_spec.rb @@ -1,18 +1,7 @@ # encoding: utf-8 -require File.expand_path('../../spec_helper', __FILE__) -require File.join(FIXTURE_PATH, 'more', 'article') -require File.join(FIXTURE_PATH, 'more', 'cat') -require File.join(FIXTURE_PATH, 'more', 'person') -require File.join(FIXTURE_PATH, 'more', 'card') -require File.join(FIXTURE_PATH, 'more', 'invoice') -require File.join(FIXTURE_PATH, 'more', 'service') -require File.join(FIXTURE_PATH, 'more', 'event') -require File.join(FIXTURE_PATH, 'more', 'user') -require File.join(FIXTURE_PATH, 'more', 'course') -require File.join(FIXTURE_PATH, "more", "key_chain") +require 'spec_helper' - -describe "Model properties" do +describe CouchRest::Model::Property do before(:each) do reset_test_db! diff --git a/spec/couchrest/proxyable_spec.rb b/spec/unit/proxyable_spec.rb similarity index 98% rename from spec/couchrest/proxyable_spec.rb rename to spec/unit/proxyable_spec.rb index 3dc2064..fd38fbc 100644 --- a/spec/couchrest/proxyable_spec.rb +++ b/spec/unit/proxyable_spec.rb @@ -1,6 +1,4 @@ -require File.expand_path("../../spec_helper", __FILE__) - -require File.join(FIXTURE_PATH, 'more', 'cat') +require "spec_helper" class DummyProxyable < CouchRest::Model::Base proxy_database_method :db @@ -12,7 +10,7 @@ end class ProxyKitten < CouchRest::Model::Base end -describe "Proxyable" do +describe CouchRest::Model::Proxyable do describe "#proxy_database" do diff --git a/spec/couchrest/subclass_spec.rb b/spec/unit/subclass_spec.rb similarity index 89% rename from spec/couchrest/subclass_spec.rb rename to spec/unit/subclass_spec.rb index 75ab218..d8f835e 100644 --- a/spec/couchrest/subclass_spec.rb +++ b/spec/unit/subclass_spec.rb @@ -1,8 +1,4 @@ -require File.expand_path("../../spec_helper", __FILE__) -require File.join(FIXTURE_PATH, 'more', 'cat') -require File.join(FIXTURE_PATH, 'more', 'person') -require File.join(FIXTURE_PATH, 'more', 'card') -require File.join(FIXTURE_PATH, 'more', 'course') +require "spec_helper" # add a default value Card.property :bg_color, :default => '#ccc' diff --git a/spec/couchrest/typecast_spec.rb b/spec/unit/typecast_spec.rb similarity index 98% rename from spec/couchrest/typecast_spec.rb rename to spec/unit/typecast_spec.rb index 4174001..6db127e 100644 --- a/spec/couchrest/typecast_spec.rb +++ b/spec/unit/typecast_spec.rb @@ -1,8 +1,5 @@ # encoding: utf-8 -require File.expand_path('../../spec_helper', __FILE__) -require File.join(FIXTURE_PATH, 'more', 'cat') -require File.join(FIXTURE_PATH, 'more', 'person') -require File.join(FIXTURE_PATH, 'more', 'course') +require 'spec_helper' describe "Type Casting" do diff --git a/spec/couchrest/validations_spec.rb b/spec/unit/validations_spec.rb similarity index 92% rename from spec/couchrest/validations_spec.rb rename to spec/unit/validations_spec.rb index b387323..b9e2b09 100644 --- a/spec/couchrest/validations_spec.rb +++ b/spec/unit/validations_spec.rb @@ -1,14 +1,6 @@ -require File.expand_path("../../spec_helper", __FILE__) +require "spec_helper" -require File.join(FIXTURE_PATH, 'more', 'cat') -require File.join(FIXTURE_PATH, 'more', 'article') -require File.join(FIXTURE_PATH, 'more', 'course') -require File.join(FIXTURE_PATH, 'more', 'card') -require File.join(FIXTURE_PATH, 'base') - -# TODO Move validations from other specs to here - -describe "Validations" do +describe CouchRest::Model::Validations do describe "Uniqueness" do diff --git a/spec/couchrest/view_spec.rb b/spec/unit/view_spec.rb similarity index 97% rename from spec/couchrest/view_spec.rb rename to spec/unit/view_spec.rb index d54d252..b58e037 100644 --- a/spec/couchrest/view_spec.rb +++ b/spec/unit/view_spec.rb @@ -1,10 +1,6 @@ -require File.expand_path("../../spec_helper", __FILE__) -require File.join(FIXTURE_PATH, 'more', 'cat') -require File.join(FIXTURE_PATH, 'more', 'person') -require File.join(FIXTURE_PATH, 'more', 'article') -require File.join(FIXTURE_PATH, 'more', 'course') +require "spec_helper" -describe "Model views" do +describe CouchRest::Model::Views do class Unattached < CouchRest::Model::Base property :title @@ -17,7 +13,6 @@ describe "Model views" do nil end end - describe "ClassMethods" do # NOTE! Add more unit tests!