Sha256: 882145a8c7eabbebc7dffcb5e844872bf38bc74e39ac290df02036f19cb05876

Contents?: true

Size: 1.31 KB

Versions: 3

Compression:

Stored size: 1.31 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

      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

3 entries across 3 versions & 1 rubygems

Version Path
flipper-sequel-1.1.2 spec/flipper/adapters/sequel_spec.rb
flipper-sequel-1.1.1 spec/flipper/adapters/sequel_spec.rb
flipper-sequel-1.1.0 spec/flipper/adapters/sequel_spec.rb