Sha256: 35e7113bd9edd8ba32f885eadfbc7ce48db147b878dd3ae5f8a7d5d786c9549f

Contents?: true

Size: 1.65 KB

Versions: 14

Compression:

Stored size: 1.65 KB

Contents

require 'spec_helper'
require 'database_cleaner/shared_strategy'
require 'database_cleaner/generic/base'
require 'active_record'

module ::DatabaseCleaner
  module Generic
    class ExampleStrategy
      include ::DatabaseCleaner::Generic::Base

      def start; end
    end

    describe ExampleStrategy do
      context "class methods" do
        subject { ExampleStrategy }

        describe "#available_strategies" do
          it "should have available strategies" do
            expect(subject.available_strategies).to be_empty
          end
        end
      end

      it_should_behave_like "a generic strategy"

      describe "#db" do
        it "should be :default" do
          expect(subject.db).to eql(:default)
        end
      end

      describe "#cleaning" do
        let (:connection) { double("connection") }
        let (:strategy) { ExampleStrategy.new }
        before do
          # DatabaseCleaner.strategy = :truncation
          connection.stub(:disable_referential_integrity).and_yield
          connection.stub(:database_cleaner_view_cache).and_return([])
          connection.stub(:database_cleaner_table_cache).and_return([])
          ::ActiveRecord::Base.stub(:connection).and_return(connection)
        end

        it "calls #clean even if there is an exception" do
          strategy.should_receive :clean
          expect do
            strategy.cleaning do
              raise NoMethodError
            end
          end.to raise_exception(NoMethodError)
        end

        it "calls #clean after processing the block" do
          strategy.should_receive :clean
          strategy.cleaning do
          end
        end
      end
    end
  end
end

Version data entries

14 entries across 14 versions & 2 rubygems

Version Path
database_cleaner-1.6.2 spec/database_cleaner/generic/base_spec.rb
database_cleaner-1.6.1 spec/database_cleaner/generic/base_spec.rb
database_cleaner-1.6.0 spec/database_cleaner/generic/base_spec.rb
autocompl-0.2.2 test/dummy/vendor/bundle/ruby/2.3.0/gems/database_cleaner-1.5.3/spec/database_cleaner/generic/base_spec.rb
autocompl-0.2.1 test/dummy/vendor/bundle/ruby/2.3.0/gems/database_cleaner-1.5.3/spec/database_cleaner/generic/base_spec.rb
autocompl-0.2.0 test/dummy/vendor/bundle/ruby/2.3.0/gems/database_cleaner-1.5.3/spec/database_cleaner/generic/base_spec.rb
autocompl-0.1.2 test/dummy/vendor/bundle/ruby/2.3.0/gems/database_cleaner-1.5.3/spec/database_cleaner/generic/base_spec.rb
autocompl-0.1.1 test/dummy/vendor/bundle/ruby/2.3.0/gems/database_cleaner-1.5.3/spec/database_cleaner/generic/base_spec.rb
autocompl-0.1.0 test/dummy/vendor/bundle/ruby/2.3.0/gems/database_cleaner-1.5.3/spec/database_cleaner/generic/base_spec.rb
autocompl-0.0.1 test/dummy/vendor/bundle/ruby/2.3.0/gems/database_cleaner-1.5.3/spec/database_cleaner/generic/base_spec.rb
database_cleaner-1.5.3 spec/database_cleaner/generic/base_spec.rb
database_cleaner-1.5.2 spec/database_cleaner/generic/base_spec.rb
database_cleaner-1.5.1 spec/database_cleaner/generic/base_spec.rb
database_cleaner-1.5.0 spec/database_cleaner/generic/base_spec.rb