aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTeddy Wing2017-11-28 17:48:38 +0100
committerTeddy Wing2017-11-29 13:18:08 +0100
commit77c7751694feae5c4b7d119d1d5e6134307909cc (patch)
tree52cbc3b2fec7d707656eb6c19982265d48534765
parent65c42c9f176cbaedb53e5c7a49ce4e3724b04fb8 (diff)
downloadchouette-core-77c7751694feae5c4b7d119d1d5e6134307909cc.tar.bz2
referential_spec: Duplicate Referential spec not working
I removed the threads to try to test this synchronously. What should happen is, the second referential should not be created. But it does get created. So I'm thinking I made a mistake in setting up the data, and the validation for 'same referentials' isn't run: Failures: 1) Referential when two identical Referentials are created at the same time only creates one Referential Failure/Error: expect(referential_2).not_to be_persisted expected `#<Referential id: 3, name: "Test 1", slug: "test_1_different", created_at: "2017-11-28 15:41:04", upd...t: nil, created_from_id: nil, ready: true, referential_suite_id: nil, objectid_format: "stif_netex">.persisted?` to return false, got true # ./spec/models/referential_spec.rb:174:in `block (3 levels) in <top (required)>' # .../.gem/ruby/2.3.3/gems/activesupport-4.2.8/lib/active_support/dependencies.rb:268:in `load' # .../.gem/ruby/2.3.3/gems/activesupport-4.2.8/lib/active_support/dependencies.rb:268:in `block in load' # .../.gem/ruby/2.3.3/gems/activesupport-4.2.8/lib/active_support/dependencies.rb:240:in `load_dependency' # .../.gem/ruby/2.3.3/gems/activesupport-4.2.8/lib/active_support/dependencies.rb:268:in `load' # .../.gem/ruby/2.3.3/gems/spring-commands-rspec-1.0.4/lib/spring/commands/rspec.rb:18:in `call' # -e:1:in `<main>' Finished in 8.46 seconds (files took 0.82295 seconds to load) 1 example, 1 failure Just committing this to have it around since I spent a long time fiddling with it. Next, planning to replace the factories with actual imports to see if I can get the right result. Edit: just realised that actually I can't try it with actual imports because that's handled by Java. Refs #5024
-rw-r--r--spec/models/referential_spec.rb43
1 files changed, 30 insertions, 13 deletions
diff --git a/spec/models/referential_spec.rb b/spec/models/referential_spec.rb
index d717511a1..8fc9f359e 100644
--- a/spec/models/referential_spec.rb
+++ b/spec/models/referential_spec.rb
@@ -132,26 +132,43 @@ describe Referential, :type => :model do
# TODO: Rename js: true to no transaction something
it "only creates one Referential", js: true do
begin
- referential_1 = build(:referential)
+ workbench = build(:workbench)
+ referential_1 = build(
+ :referential,
+ workbench: workbench
+ )
referential_2 = referential_1.dup
referential_2.slug = "#{referential_1.slug}_different"
- thread_1 = Thread.new do
- ActiveRecord::Base.transaction do
+ metadata_1 = build(
+ :referential_metadata,
+ referential: referential_1
+ )
+ # referential_1.metadatas << metadata
+ # referential_2.metadatas << metadata
+ metadata_2 = metadata_1.dup
+ metadata_2.referential = referential_2
+ metadata_1.save
+ metadata_2.save
+ # puts Referential.all.inspect
+ # puts referential_1.inspect
+
+ # thread_1 = Thread.new do
+ # ActiveRecord::Base.transaction do
referential_1.save
- sleep 10
- end
- end
+ # sleep 10
+ # end
+ # end
- thread_2 = Thread.new do
- sleep 5
- ActiveRecord::Base.transaction do
+ # thread_2 = Thread.new do
+ # sleep 5
+ # ActiveRecord::Base.transaction do
referential_2.save
- end
- end
+ # end
+ # end
- thread_1.join
- thread_2.join
+ # thread_1.join
+ # thread_2.join
expect(referential_1).to be_persisted
expect(referential_2).not_to be_persisted