Sha256: 1775cd3b570b7ff9d92eb2f808620e3cab6d64b8be3cf2ebb81fea5f8a44833b

Contents?: true

Size: 1.32 KB

Versions: 7

Compression:

Stored size: 1.32 KB

Contents

require 'sequel'

Sequel::Model.db = Sequel.sqlite(':memory:')
Sequel.extension :migration, :core_extensions

require 'flipper/adapters/sequel'
require 'generators/flipper/templates/sequel_migration'

RSpec.describe Flipper::Adapters::Sequel do
  subject do
    described_class.new(feature_class: feature_class,
                        gate_class: gate_class)
  end

  let(:feature_class) { Flipper::Adapters::Sequel::Feature }
  let(:gate_class) { Flipper::Adapters::Sequel::Gate }

  before(:each) do
    CreateFlipperTablesSequel.new(Sequel::Model.db).up
    feature_class.dataset = feature_class.dataset
    gate_class.dataset = gate_class.dataset
  end

  after(:each) do
    CreateFlipperTablesSequel.new(Sequel::Model.db).down
  end

  it_should_behave_like 'a flipper adapter'

  context 'requiring "flipper-sequel"' do
    before do
      Flipper.configuration = nil
      Flipper.instance = nil

      silence { load 'flipper/adapters/sequel.rb' }
    end

    it 'configures itself' do
      expect(Flipper.adapter.adapter).to be_a(Flipper::Adapters::Sequel)
    end

    it "defines #flipper_id on Sequel::Model" do
      expect(Sequel::Model.ancestors).to include(Flipper::Identifier)
    end

    it "defines #flipper_properties on Sequel::Model" do
      expect(Sequel::Model.ancestors).to include(Flipper::Model::Sequel)
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
flipper-sequel-1.3.2 spec/flipper/adapters/sequel_spec.rb
flipper-sequel-1.3.1 spec/flipper/adapters/sequel_spec.rb
flipper-sequel-1.3.0 spec/flipper/adapters/sequel_spec.rb
flipper-sequel-1.3.0.pre spec/flipper/adapters/sequel_spec.rb
flipper-sequel-1.2.2 spec/flipper/adapters/sequel_spec.rb
flipper-sequel-1.2.1 spec/flipper/adapters/sequel_spec.rb
flipper-sequel-1.2.0 spec/flipper/adapters/sequel_spec.rb