diff --git a/spec/dynamoid/transaction_write/build_spec.rb b/spec/dynamoid/transaction_write/build_spec.rb index 324cb5e7..efd95fa4 100644 --- a/spec/dynamoid/transaction_write/build_spec.rb +++ b/spec/dynamoid/transaction_write/build_spec.rb @@ -12,6 +12,8 @@ context "incrementally builds" do it "executes" do + klass.create_table + klass_with_composite_key.create_table transaction = Dynamoid::TransactionWrite.new obj1 = transaction.create!(klass, { name: "one" }) obj2_id = SecureRandom.uuid diff --git a/spec/dynamoid/transaction_write/context.rb b/spec/dynamoid/transaction_write/context.rb index 74b79783..20c2fc88 100644 --- a/spec/dynamoid/transaction_write/context.rb +++ b/spec/dynamoid/transaction_write/context.rb @@ -43,10 +43,4 @@ end end - before do - klass.create_table - klass_with_composite_key.create_table - klass_with_callback.create_table - klass_with_validation.create_table - end end diff --git a/spec/dynamoid/transaction_write/create_spec.rb b/spec/dynamoid/transaction_write/create_spec.rb index 9caa6414..b658a075 100644 --- a/spec/dynamoid/transaction_write/create_spec.rb +++ b/spec/dynamoid/transaction_write/create_spec.rb @@ -12,6 +12,9 @@ context 'creates' do context 'simple primary key' do + before do + klass.create_table + end it 'with attribute in constructor' do obj1 = klass.new(name: "one") expect(obj1.persisted?).to eql(false) @@ -44,6 +47,9 @@ end context 'composite key' do + before do + klass_with_composite_key.create_table + end it 'with attribute in constructor' do obj1 = klass_with_composite_key.new(name: "one", age: 1) Dynamoid::TransactionWrite.execute do |txn| @@ -74,6 +80,7 @@ end it 'creates timestamps' do + klass.create_table obj1 = klass.new(name: "one") expect(obj1.created_at).to be_nil expect(obj1.updated_at).to be_nil @@ -85,67 +92,73 @@ expect(obj1_found.updated_at.to_f).to be_within(1.seconds).of Time.now.to_f end - it 'does not create when invalid' do - obj1 = klass_with_validation.new(name: "one") - obj2 = klass_with_validation.new(name: "twotwo") - Dynamoid::TransactionWrite.execute do |txn| - expect(txn.create(obj1)).to eql(false) - expect(txn.create(obj2)).to be_present + context 'validates' do + before do + klass_with_validation.create_table + end + it 'does not create when invalid' do + obj1 = klass_with_validation.new(name: "one") + obj2 = klass_with_validation.new(name: "twotwo") + Dynamoid::TransactionWrite.execute do |txn| + expect(txn.create(obj1)).to eql(false) + expect(txn.create(obj2)).to be_present + end + expect(obj1.id).to be_present + expect(klass_with_validation.exists?(obj1.id)).to be_falsey + expect(klass_with_validation.exists?(obj2.id)).to be_truthy end - expect(obj1.id).to be_present - expect(klass_with_validation.exists?(obj1.id)).to be_falsey - expect(klass_with_validation.exists?(obj2.id)).to be_truthy - end - it 'succeeds when valid' do - obj1 = klass_with_validation.new(name: "oneone") - Dynamoid::TransactionWrite.execute do |txn| - expect(txn.create(obj1)).to be_present + it 'succeeds when valid' do + obj1 = klass_with_validation.new(name: "oneone") + Dynamoid::TransactionWrite.execute do |txn| + expect(txn.create(obj1)).to be_present + end + + obj1_found = klass_with_validation.find(obj1.id) + expect(obj1_found).to eql(obj1) + expect(obj1_found.name).to eql("oneone") end - obj1_found = klass_with_validation.find(obj1.id) - expect(obj1_found).to eql(obj1) - expect(obj1_found.name).to eql("oneone") - end + it 'raises DocumentNotValid when not valid' do + obj1 = klass_with_validation.new(name: "one") + obj2 = klass_with_validation.new(name: "twotwo") + expect { + Dynamoid::TransactionWrite.execute do |txn| + txn.create! obj2 + txn.create! obj1 + end + }.to raise_error(Dynamoid::Errors::DocumentNotValid) + expect(obj1.id).to be_present + expect(klass_with_validation.exists?(obj1.id)).to be_falsey + expect(obj2.id).to be_present + expect(klass_with_validation.exists?(obj2.id)).to be_falsey + end - it 'raises DocumentNotValid when not valid' do - obj1 = klass_with_validation.new(name: "one") - obj2 = klass_with_validation.new(name: "twotwo") - expect { + it 'does not raise exception when valid' do + obj1 = klass_with_validation.new(name: "oneone") Dynamoid::TransactionWrite.execute do |txn| - txn.create! obj2 - txn.create! obj1 + txn.create!(obj1) end - }.to raise_error(Dynamoid::Errors::DocumentNotValid) - expect(obj1.id).to be_present - expect(klass_with_validation.exists?(obj1.id)).to be_falsey - expect(obj2.id).to be_present - expect(klass_with_validation.exists?(obj2.id)).to be_falsey - end - it 'does not raise exception when valid' do - obj1 = klass_with_validation.new(name: "oneone") - Dynamoid::TransactionWrite.execute do |txn| - txn.create!(obj1) + obj1_found = klass_with_validation.find(obj1.id) + expect(obj1_found).to eql(obj1) + expect(obj1_found.name).to eql("oneone") end - obj1_found = klass_with_validation.find(obj1.id) - expect(obj1_found).to eql(obj1) - expect(obj1_found.name).to eql("oneone") - end + it 'does not raise exception when skipping validation' do + obj1 = klass_with_validation.new(name: "one") + Dynamoid::TransactionWrite.execute do |txn| + txn.create!(obj1, options: {skip_validation: true}) + end - it 'does not raise exception when skipping validation' do - obj1 = klass_with_validation.new(name: "one") - Dynamoid::TransactionWrite.execute do |txn| - txn.create!(obj1, options: {skip_validation: true}) + obj1_found = klass_with_validation.find(obj1.id) + expect(obj1_found).to eql(obj1) + expect(obj1_found.name).to eql("one") end - - obj1_found = klass_with_validation.find(obj1.id) - expect(obj1_found).to eql(obj1) - expect(obj1_found.name).to eql("one") end it 'uses callbacks' do + klass_with_callback.create_table obj2 = klass_with_callback.new(name: "two") Dynamoid::TransactionWrite.execute do |txn| txn.create! obj2, {says_more: "bark2"} diff --git a/spec/dynamoid/transaction_write/delete_spec.rb b/spec/dynamoid/transaction_write/delete_spec.rb index 0f4fc9b1..aeb434f1 100644 --- a/spec/dynamoid/transaction_write/delete_spec.rb +++ b/spec/dynamoid/transaction_write/delete_spec.rb @@ -12,6 +12,9 @@ context 'deletes' do context 'simple primary key' do + before do + klass.create_table + end it 'with instance' do obj1 = klass.create!(name: "one") obj1_found = klass.find(obj1.id) @@ -33,6 +36,9 @@ end context 'composite key' do + before do + klass_with_composite_key.create_table + end it 'with instance' do obj1 = klass_with_composite_key.create!(name: "one", age: 1) obj1_found = klass_with_composite_key.find(obj1.id, range_key: 1) diff --git a/spec/dynamoid/transaction_write/destroy_spec.rb b/spec/dynamoid/transaction_write/destroy_spec.rb index 2be52bfd..bf4bdaf1 100644 --- a/spec/dynamoid/transaction_write/destroy_spec.rb +++ b/spec/dynamoid/transaction_write/destroy_spec.rb @@ -12,6 +12,9 @@ context 'destroys' do context 'simple primary key' do + before do + klass.create_table + end it 'with instance' do obj1 = klass.create!(name: "one") obj1_found = klass.find(obj1.id) @@ -37,6 +40,9 @@ end context 'composite key' do + before do + klass_with_composite_key.create_table + end it 'with instance' do obj1 = klass_with_composite_key.create!(name: "one", age: 1) obj2 = klass_with_composite_key.create!(name: "two", age: 2) @@ -73,6 +79,7 @@ end it 'uses callbacks' do + klass_with_callback.create_table obj1 = klass_with_callback.create!(name: "one", says_more: "bark1") Dynamoid::TransactionWrite.execute do |txn| txn.destroy! obj1 diff --git a/spec/dynamoid/transaction_write/put_spec.rb b/spec/dynamoid/transaction_write/put_spec.rb index b173ce81..c47acf26 100644 --- a/spec/dynamoid/transaction_write/put_spec.rb +++ b/spec/dynamoid/transaction_write/put_spec.rb @@ -13,6 +13,9 @@ # a 'put' is a create that overwrites existing records if present context 'puts' do context 'simple primary key' do + before do + klass.create_table + end it 'fails without skip_existence_check' do obj1 = klass.create!(name: "one") expect { @@ -44,6 +47,9 @@ end context 'composite key' do + before do + klass_with_composite_key.create_table + end it 'fails without skip_existence_check' do obj1 = klass_with_composite_key.create!(name: "one", age: 1) expect { diff --git a/spec/dynamoid/transaction_write/save_spec.rb b/spec/dynamoid/transaction_write/save_spec.rb index 19c44ee1..6f5ce633 100644 --- a/spec/dynamoid/transaction_write/save_spec.rb +++ b/spec/dynamoid/transaction_write/save_spec.rb @@ -13,6 +13,9 @@ # a 'save' does an update or create depending on if the record is new or not context 'saves' do context 'simple primary key' do + before do + klass.create_table + end it 'with an update' do obj1 = klass.create!(name: "one") Dynamoid::TransactionWrite.execute do |txn| @@ -36,6 +39,9 @@ context 'composite key' do + before do + klass_with_composite_key.create_table + end it 'with an update' do obj1 = klass_with_composite_key.create!(name: "one", age: 1) Dynamoid::TransactionWrite.execute do |txn| @@ -57,46 +63,51 @@ end end - it 'does not save when invalid' do - obj1 = klass_with_validation.new(name: "one") - Dynamoid::TransactionWrite.execute do |txn| - expect(txn.save(obj1)).to eql(false) + context 'validates' do + before do + klass_with_validation.create_table end - expect(obj1.id).to be_present - expect(klass_with_validation.exists?(obj1.id)).to be_falsey - end + it 'does not save when invalid' do + obj1 = klass_with_validation.new(name: "one") + Dynamoid::TransactionWrite.execute do |txn| + expect(txn.save(obj1)).to eql(false) + end + expect(obj1.id).to be_present + expect(klass_with_validation.exists?(obj1.id)).to be_falsey + end + + it 'saves when valid' do + obj1 = klass_with_validation.new(name: "oneone") + Dynamoid::TransactionWrite.execute do |txn| + expect(txn.save(obj1)).to be_present + end - it 'saves when valid' do - obj1 = klass_with_validation.new(name: "oneone") - Dynamoid::TransactionWrite.execute do |txn| - expect(txn.save(obj1)).to be_present + obj1_found = klass_with_validation.find(obj1.id) + expect(obj1_found).to eql(obj1) + expect(obj1_found.name).to eql("oneone") end - obj1_found = klass_with_validation.find(obj1.id) - expect(obj1_found).to eql(obj1) - expect(obj1_found.name).to eql("oneone") - end + it 'raises DocumentNotValid when not valid' do + obj1 = klass_with_validation.new(name: "one") + expect { + Dynamoid::TransactionWrite.execute do |txn| + txn.save! obj1 + end + }.to raise_error(Dynamoid::Errors::DocumentNotValid) + expect(obj1.id).to be_present + expect(klass_with_validation.exists?(obj1.id)).to be_falsey + end - it 'raises DocumentNotValid when not valid' do - obj1 = klass_with_validation.new(name: "one") - expect { + it 'does not raise exception when valid' do + obj1 = klass_with_validation.new(name: "oneone") Dynamoid::TransactionWrite.execute do |txn| - txn.save! obj1 + txn.save!(obj1) end - }.to raise_error(Dynamoid::Errors::DocumentNotValid) - expect(obj1.id).to be_present - expect(klass_with_validation.exists?(obj1.id)).to be_falsey - end - it 'does not raise exception when valid' do - obj1 = klass_with_validation.new(name: "oneone") - Dynamoid::TransactionWrite.execute do |txn| - txn.save!(obj1) + obj1_found = klass_with_validation.find(obj1.id) + expect(obj1_found).to eql(obj1) + expect(obj1_found.name).to eql("oneone") end - - obj1_found = klass_with_validation.find(obj1.id) - expect(obj1_found).to eql(obj1) - expect(obj1_found.name).to eql("oneone") end end end diff --git a/spec/dynamoid/transaction_write/update_spec.rb b/spec/dynamoid/transaction_write/update_spec.rb index 1a5afcd2..a0ecc9cb 100644 --- a/spec/dynamoid/transaction_write/update_spec.rb +++ b/spec/dynamoid/transaction_write/update_spec.rb @@ -12,6 +12,9 @@ context 'updates' do context 'simple primary key' do + before do + klass.create_table + end it 'with attribute outside transaction' do obj1 = klass.create!(name: "one") obj1.name = "oneone" @@ -43,6 +46,9 @@ end context 'composite key' do + before do + klass_with_composite_key.create_table + end it 'with attribute outside transaction' do obj1 = klass_with_composite_key.create!(name: "one", age: 1) obj1.name = "oneone" @@ -75,6 +81,7 @@ end it 'updates timestamps of instance' do + klass.create_table obj1 = klass.new(name: "one", created_at: Time.now - 48.hours, updated_at: Time.now - 24.hours) Dynamoid::TransactionWrite.execute do |txn| txn.create! obj1 @@ -85,6 +92,7 @@ end it 'updates timestamps by class' do + klass.create_table obj3 = klass.create!(name: "three", created_at: Time.now - 48.hours, updated_at: Time.now - 24.hours) Dynamoid::TransactionWrite.execute do |txn| txn.update! klass, {id: obj3.id, name: "threethree"} @@ -94,85 +102,90 @@ expect(obj3_found.updated_at.to_f).to be_within(1.seconds).of Time.now.to_f end - it 'does not update when invalid' do - obj1 = klass_with_validation.create!(name: "onelong") - obj2 = klass_with_validation.create!(name: "twolong") - Dynamoid::TransactionWrite.execute do |txn| - obj1.name = "one" - expect(txn.update(obj1)).to eql(false) - obj2.name = "twotwo" - expect(txn.update(obj2)).to be_truthy - end - obj1_found = klass_with_validation.find(obj1.id) - expect(obj1_found.name).to eql("onelong") - obj2_found = klass_with_validation.find(obj2.id) - expect(obj2_found.name).to eql("twotwo") - end + context 'validates' do + before do + klass_with_validation.create_table + end + it 'does not update when invalid' do + obj1 = klass_with_validation.create!(name: "onelong") + obj2 = klass_with_validation.create!(name: "twolong") + Dynamoid::TransactionWrite.execute do |txn| + obj1.name = "one" + expect(txn.update(obj1)).to eql(false) + obj2.name = "twotwo" + expect(txn.update(obj2)).to be_truthy + end + obj1_found = klass_with_validation.find(obj1.id) + expect(obj1_found.name).to eql("onelong") + obj2_found = klass_with_validation.find(obj2.id) + expect(obj2_found.name).to eql("twotwo") + end - it 'succeeds when valid' do - obj1 = klass_with_validation.create!(name: "onelong") - Dynamoid::TransactionWrite.execute do |txn| - obj1.name = "oneone" - expect(txn.update(obj1)).to be_present + it 'succeeds when valid' do + obj1 = klass_with_validation.create!(name: "onelong") + Dynamoid::TransactionWrite.execute do |txn| + obj1.name = "oneone" + expect(txn.update(obj1)).to be_present + end + + obj1_found = klass_with_validation.find(obj1.id) + expect(obj1_found).to eql(obj1) + expect(obj1_found.name).to eql("oneone") end - obj1_found = klass_with_validation.find(obj1.id) - expect(obj1_found).to eql(obj1) - expect(obj1_found.name).to eql("oneone") - end + it 'raises DocumentNotValid when not valid' do + obj1 = klass_with_validation.create!(name: "onelong") + obj2 = klass_with_validation.create!(name: "twolong") + expect { + Dynamoid::TransactionWrite.execute do |txn| + obj2.name = "twotwo" + txn.update! obj2 + obj1.name = "one" + txn.update! obj1 + end + }.to raise_error(Dynamoid::Errors::DocumentNotValid) + obj1_found = klass_with_validation.find(obj1.id) + expect(obj1_found.name).to eql("onelong") + obj2_found = klass_with_validation.find(obj2.id) + expect(obj2_found.name).to eql("twolong") + end - it 'raises DocumentNotValid when not valid' do - obj1 = klass_with_validation.create!(name: "onelong") - obj2 = klass_with_validation.create!(name: "twolong") - expect { + it 'does not raise exception when valid' do + obj1 = klass_with_validation.create!(name: "onelong") Dynamoid::TransactionWrite.execute do |txn| - obj2.name = "twotwo" - txn.update! obj2 - obj1.name = "one" + obj1.name = "oneone" txn.update! obj1 end - }.to raise_error(Dynamoid::Errors::DocumentNotValid) - obj1_found = klass_with_validation.find(obj1.id) - expect(obj1_found.name).to eql("onelong") - obj2_found = klass_with_validation.find(obj2.id) - expect(obj2_found.name).to eql("twolong") - end - it 'does not raise exception when valid' do - obj1 = klass_with_validation.create!(name: "onelong") - Dynamoid::TransactionWrite.execute do |txn| - obj1.name = "oneone" - txn.update! obj1 + obj1_found = klass_with_validation.find(obj1.id) + expect(obj1_found).to eql(obj1) + expect(obj1_found.name).to eql("oneone") end - obj1_found = klass_with_validation.find(obj1.id) - expect(obj1_found).to eql(obj1) - expect(obj1_found.name).to eql("oneone") - end + it 'does not raise exception when skipping validation' do + obj1 = klass_with_validation.create!(name: "onelong") + Dynamoid::TransactionWrite.execute do |txn| + obj1.name = "one" + txn.update! obj1, options: {skip_validation: true} + end - it 'does not raise exception when skipping validation' do - obj1 = klass_with_validation.create!(name: "onelong") - Dynamoid::TransactionWrite.execute do |txn| - obj1.name = "one" - txn.update! obj1, options: {skip_validation: true} + obj1_found = klass_with_validation.find(obj1.id) + expect(obj1_found).to eql(obj1) + expect(obj1_found.name).to eql("one") end - obj1_found = klass_with_validation.find(obj1.id) - expect(obj1_found).to eql(obj1) - expect(obj1_found.name).to eql("one") - end - - it 'uses callbacks' do - obj1 = klass_with_callback.create!(name: "one") - Dynamoid::TransactionWrite.execute do |txn| - obj1.name = "oneone" - txn.update! obj1, {says_more: "bark1"} + it 'uses callbacks' do + obj1 = klass_with_callback.create!(name: "one") + Dynamoid::TransactionWrite.execute do |txn| + obj1.name = "oneone" + txn.update! obj1, {says_more: "bark1"} + end + obj1_found = klass_with_callback.find(obj1.id) + expect(obj1_found).to eql(obj1) + expect(obj1_found.name).to eql("oneone") + expect(obj1_found.says).to eql("bark1 saving updating") + expect(obj1.says).to eql("bark1 saving updating updated saved") # unpersisted changes end - obj1_found = klass_with_callback.find(obj1.id) - expect(obj1_found).to eql(obj1) - expect(obj1_found.name).to eql("oneone") - expect(obj1_found.says).to eql("bark1 saving updating") - expect(obj1.says).to eql("bark1 saving updating updated saved") # unpersisted changes end end end diff --git a/spec/dynamoid/transaction_write/upsert_spec.rb b/spec/dynamoid/transaction_write/upsert_spec.rb index cb124110..64039270 100644 --- a/spec/dynamoid/transaction_write/upsert_spec.rb +++ b/spec/dynamoid/transaction_write/upsert_spec.rb @@ -12,6 +12,9 @@ context 'upserts' do context 'simple primary key' do + before do + klass.create_table + end it 'with attribute outside transaction' do obj1 = klass.create!(name: "one") obj1.name = "oneone" @@ -66,6 +69,9 @@ end context 'composite key' do + before do + klass_with_composite_key.create_table + end it 'with attribute outside transaction' do obj1 = klass_with_composite_key.create!(name: "one", age: 1) obj1.name = "oneone" @@ -141,6 +147,7 @@ end it 'updates timestamps of instance' do + klass.create_table obj1 = klass.create!(name: "one", created_at: Time.now - 48.hours, updated_at: Time.now - 24.hours) obj1.name = "oneone" Dynamoid::TransactionWrite.execute do |txn| @@ -152,6 +159,7 @@ end it 'updates timestamps by class when existing' do + klass.create_table obj3 = klass.create!(name: "three", created_at: Time.now - 48.hours, updated_at: Time.now - 24.hours) Dynamoid::TransactionWrite.execute do |txn| txn.upsert! klass, {id: obj3.id, name: "threethree"} @@ -162,6 +170,7 @@ end it 'updates timestamps by class when not existing' do + klass.create_table obj3_id = SecureRandom.uuid Dynamoid::TransactionWrite.execute do |txn| txn.upsert! klass, {id: obj3_id, name: "threethree"} @@ -171,65 +180,70 @@ expect(obj3_found.updated_at.to_f).to be_within(1.seconds).of Time.now.to_f end - it 'does not create when invalid' do - obj1 = klass_with_validation.new(id: SecureRandom.uuid, name: "one") - obj2 = klass_with_validation.new(id: SecureRandom.uuid, name: "twolong") - Dynamoid::TransactionWrite.execute do |txn| - expect(txn.upsert(obj1)).to eql(false) - expect(txn.upsert(obj2)).to be_truthy + context 'validation' do + before do + klass_with_validation.create_table + end + it 'does not create when invalid' do + obj1 = klass_with_validation.new(id: SecureRandom.uuid, name: "one") + obj2 = klass_with_validation.new(id: SecureRandom.uuid, name: "twolong") + Dynamoid::TransactionWrite.execute do |txn| + expect(txn.upsert(obj1)).to eql(false) + expect(txn.upsert(obj2)).to be_truthy + end + expect(obj1.id).to be_present + expect(klass_with_validation.exists?(obj1.id)).to be_falsey + expect(obj2.id).to be_present + expect(klass_with_validation.exists?(obj2.id)).to be_truthy end - expect(obj1.id).to be_present - expect(klass_with_validation.exists?(obj1.id)).to be_falsey - expect(obj2.id).to be_present - expect(klass_with_validation.exists?(obj2.id)).to be_truthy - end - it 'succeeds when valid' do - obj1 = klass_with_validation.new(id: SecureRandom.uuid, name: "oneone") - Dynamoid::TransactionWrite.execute do |txn| - expect(txn.upsert(obj1)).to be_present + it 'succeeds when valid' do + obj1 = klass_with_validation.new(id: SecureRandom.uuid, name: "oneone") + Dynamoid::TransactionWrite.execute do |txn| + expect(txn.upsert(obj1)).to be_present + end + + obj1_found = klass_with_validation.find(obj1.id) + expect(obj1_found).to eql(obj1) + expect(obj1_found.name).to eql("oneone") end - obj1_found = klass_with_validation.find(obj1.id) - expect(obj1_found).to eql(obj1) - expect(obj1_found.name).to eql("oneone") - end + it 'raises DocumentNotValid when not valid' do + obj1 = klass_with_validation.new(id: SecureRandom.uuid, name: "one") + obj2 = klass_with_validation.new(id: SecureRandom.uuid, name: "twolong") + expect { + Dynamoid::TransactionWrite.execute do |txn| + txn.upsert! obj2 + txn.upsert! obj1 + end + }.to raise_error(Dynamoid::Errors::DocumentNotValid) + expect(obj1.id).to be_present + expect(klass_with_validation.exists?(obj1.id)).to be_falsey + expect(obj2.id).to be_present + expect(klass_with_validation.exists?(obj2.id)).to be_falsey + end - it 'raises DocumentNotValid when not valid' do - obj1 = klass_with_validation.new(id: SecureRandom.uuid, name: "one") - obj2 = klass_with_validation.new(id: SecureRandom.uuid, name: "twolong") - expect { + it 'does not raise exception when valid' do + obj1 = klass_with_validation.new(id: SecureRandom.uuid, name: "oneone") Dynamoid::TransactionWrite.execute do |txn| - txn.upsert! obj2 - txn.upsert! obj1 + txn.upsert!(obj1) end - }.to raise_error(Dynamoid::Errors::DocumentNotValid) - expect(obj1.id).to be_present - expect(klass_with_validation.exists?(obj1.id)).to be_falsey - expect(obj2.id).to be_present - expect(klass_with_validation.exists?(obj2.id)).to be_falsey - end - it 'does not raise exception when valid' do - obj1 = klass_with_validation.new(id: SecureRandom.uuid, name: "oneone") - Dynamoid::TransactionWrite.execute do |txn| - txn.upsert!(obj1) + obj1_found = klass_with_validation.find(obj1.id) + expect(obj1_found).to eql(obj1) + expect(obj1_found.name).to eql("oneone") end - obj1_found = klass_with_validation.find(obj1.id) - expect(obj1_found).to eql(obj1) - expect(obj1_found.name).to eql("oneone") - end + it 'does not raise exception when skipping validation' do + obj1 = klass_with_validation.new(id: SecureRandom.uuid, name: "one") + Dynamoid::TransactionWrite.execute do |txn| + txn.upsert! obj1, options: {skip_validation: true} + end - it 'does not raise exception when skipping validation' do - obj1 = klass_with_validation.new(id: SecureRandom.uuid, name: "one") - Dynamoid::TransactionWrite.execute do |txn| - txn.upsert! obj1, options: {skip_validation: true} + obj1_found = klass_with_validation.find(obj1.id) + expect(obj1_found).to eql(obj1) + expect(obj1_found.name).to eql("one") end - - obj1_found = klass_with_validation.find(obj1.id) - expect(obj1_found).to eql(obj1) - expect(obj1_found.name).to eql("one") end end end