Sha256: c5ea0fb6aa26a2e65e090599096ed26d03643abef3ebb50387531b22865aabab

Contents?: true

Size: 924 Bytes

Versions: 8

Compression:

Stored size: 924 Bytes

Contents

shared_context 'database setup' do
  subject(:rom) { setup.finalize }

  let(:uri) { DB_URI }
  let(:conn) { Sequel.connect(uri) }

  let(:setup) { ROM.setup(:sql, conn) }

  def drop_tables
    [:tasks, :users, :tags, :task_tags, :rabbits, :carrots, :schema_migrations].each do |name|
      conn.drop_table?(name)
    end
  end

  before do
    conn.loggers << LOGGER

    drop_tables

    conn.create_table :users do
      primary_key :id
      String :name, null: false
      index :name, unique: true
      check { char_length(name) > 2 }
    end

    conn.create_table :tasks do
      primary_key :id
      foreign_key :user_id, :users
      String :title
    end

    conn.create_table :tags do
      primary_key :id
      String :name
    end

    conn.create_table :task_tags do
      primary_key :tag_id, :task_id
      Integer :tag_id
      Integer :task_id
    end
  end

  after do
    conn.disconnect
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
rom-sql-0.6.1 spec/shared/database_setup.rb
rom-sql-0.6.0 spec/shared/database_setup.rb
rom-sql-0.6.0.rc1 spec/shared/database_setup.rb
rom-sql-0.6.0.beta1 spec/shared/database_setup.rb
rom-sql-0.5.3 spec/shared/database_setup.rb
rom-sql-0.5.2 spec/shared/database_setup.rb
rom-sql-0.5.1 spec/shared/database_setup.rb
rom-sql-0.5.0 spec/shared/database_setup.rb