Sha256: e954dda6104d7f55b18310a556db79eb3ea4fadbbac1dd66d2522c2a8760a1c6

Contents?: true

Size: 1.09 KB

Versions: 84

Compression:

Stored size: 1.09 KB

Contents

require "spec_helper"

describe "Simple::SQL.duplicate/unique indices" do
  let!(:unique_users) { 1.upto(USER_COUNT).map { create(:unique_user) } }

  let!(:source_ids) { SQL.all("SELECT id FROM unique_users") }

  it "cannot duplicate unique_user" do
    expect {
      SQL.duplicate "unique_users", source_ids
    }.to raise_error(PG::UniqueViolation)
  end

  it "raises an ArgumentError when called with unknown columns" do
    expect {
      SQL.duplicate "unique_users", source_ids, foo: SQL.fragment("baz")
    }.to raise_error(ArgumentError)
  end

  it "raises an ArgumentError when called with invalid overrides" do
    expect {
      SQL.duplicate "unique_users", source_ids, first_name: "I am invalid"
    }.to raise_error(ArgumentError)
  end

  it "duplicates unique_users" do
    overrides = {
      first_name:  SQL.fragment("first_name || '.' || id"),
      last_name:   SQL.fragment("last_name || '.' || id")
    }

    dupe_ids = SQL.duplicate "unique_users", source_ids, overrides

    expect(dupe_ids.length).to eq(2)
    expect(SQL.ask("SELECT COUNT(*) FROM unique_users")).to eq(4)
  end
end

Version data entries

84 entries across 84 versions & 1 rubygems

Version Path
simple-sql-0.5.37 spec/simple/sql/duplicate_unique_spec.rb
simple-sql-0.5.36 spec/simple/sql/duplicate_unique_spec.rb
simple-sql-0.5.35 spec/simple/sql/duplicate_unique_spec.rb
simple-sql-0.5.34 spec/simple/sql/duplicate_unique_spec.rb
simple-sql-0.5.33 spec/simple/sql/duplicate_unique_spec.rb
simple-sql-0.5.32 spec/simple/sql/duplicate_unique_spec.rb
simple-sql-0.5.31 spec/simple/sql/duplicate_unique_spec.rb
simple-sql-0.5.30 spec/simple/sql/duplicate_unique_spec.rb
simple-sql-0.5.29 spec/simple/sql/duplicate_unique_spec.rb
simple-sql-0.5.28 spec/simple/sql/duplicate_unique_spec.rb
simple-sql-0.5.27 spec/simple/sql/duplicate_unique_spec.rb
simple-sql-0.5.26 spec/simple/sql/duplicate_unique_spec.rb
simple-sql-0.5.25 spec/simple/sql/duplicate_unique_spec.rb
simple-sql-0.5.24 spec/simple/sql/duplicate_unique_spec.rb
simple-sql-0.5.23 spec/simple/sql/duplicate_unique_spec.rb
simple-sql-0.5.22 spec/simple/sql/duplicate_unique_spec.rb
simple-sql-0.5.21 spec/simple/sql/duplicate_unique_spec.rb
simple-sql-0.5.20 spec/simple/sql/duplicate_unique_spec.rb
simple-sql-0.5.19 spec/simple/sql/duplicate_unique_spec.rb
simple-sql-0.5.18 spec/simple/sql/duplicate_unique_spec.rb