Sha256: 3d67df382c4bba61a501d038e70a4e110c9178a6c75bda9da8d10e1e10672979

Contents?: true

Size: 1.16 KB

Versions: 13

Compression:

Stored size: 1.16 KB

Contents

module Woulda
  module ActsAsParanoid
    module Macros
      def should_act_as_paranoid
        klass = model_class
        should_have_db_column :deleted_at

        context "A #{klass.name}" do
          should "be paranoid (it will not be deleted from the database)" do
            assert klass.paranoid?
            assert klass.included_modules.include?(Caboose::Acts::Paranoid)
          end

          should "not have a value for deleted_at" do
            assert object = klass.find(:first)
            assert_nil object.deleted_at
          end

          context "when destroyed" do
            setup do
              assert object = klass.find(:first), "This context requires there to be an existing #{klass}"
              @deleted_id = object.id
              object.destroy
            end

            should "not be found" do
              assert_raise(ActiveRecord::RecordNotFound) { klass.find(@deleted_id) }
            end

            should "still exist in the database" do
              deleted_object = klass.find_with_deleted(@deleted_id)
              assert_not_nil deleted_object.deleted_at
            end
          end
        end
      end
    end
  end
end

Version data entries

13 entries across 13 versions & 3 rubygems

Version Path
clearlynuts-woulda-0.2.3 lib/woulda/acts_as_paranoid/macros.rb
clearlynuts-woulda-0.2.4 lib/woulda/acts_as_paranoid/macros.rb
seanhussey-woulda-0.0.2 lib/woulda/acts_as_paranoid/macros.rb
seanhussey-woulda-0.1.1 lib/woulda/acts_as_paranoid/macros.rb
seanhussey-woulda-0.1.2 lib/woulda/acts_as_paranoid/macros.rb
seanhussey-woulda-0.1.3 lib/woulda/acts_as_paranoid/macros.rb
seanhussey-woulda-0.1.4 lib/woulda/acts_as_paranoid/macros.rb
seanhussey-woulda-0.1.5 lib/woulda/acts_as_paranoid/macros.rb
seanhussey-woulda-0.1.6 lib/woulda/acts_as_paranoid/macros.rb
seanhussey-woulda-0.2.0 lib/woulda/acts_as_paranoid/macros.rb
seanhussey-woulda-0.2.1 lib/woulda/acts_as_paranoid/macros.rb
seanhussey-woulda-0.2.2 lib/woulda/acts_as_paranoid/macros.rb
webmat-woulda-0.1.7 lib/woulda/acts_as_paranoid/macros.rb