aboutsummaryrefslogtreecommitdiffstats
path: root/spec
diff options
context:
space:
mode:
Diffstat (limited to 'spec')
-rw-r--r--spec/factories/referential_suites.rb3
-rw-r--r--spec/factories/workbenches.rb1
-rw-r--r--spec/models/workbench_spec.rb24
-rw-r--r--spec/support/referential.rb17
4 files changed, 43 insertions, 2 deletions
diff --git a/spec/factories/referential_suites.rb b/spec/factories/referential_suites.rb
new file mode 100644
index 000000000..bb17b085c
--- /dev/null
+++ b/spec/factories/referential_suites.rb
@@ -0,0 +1,3 @@
+FactoryGirl.define do
+ factory :referential_suite
+end
diff --git a/spec/factories/workbenches.rb b/spec/factories/workbenches.rb
index d55141513..57bef2203 100644
--- a/spec/factories/workbenches.rb
+++ b/spec/factories/workbenches.rb
@@ -5,5 +5,6 @@ FactoryGirl.define do
association :organisation
association :line_referential
association :stop_area_referential
+ association :output, factory: :referential_suite
end
end
diff --git a/spec/models/workbench_spec.rb b/spec/models/workbench_spec.rb
index 84149ddb0..037537b60 100644
--- a/spec/models/workbench_spec.rb
+++ b/spec/models/workbench_spec.rb
@@ -11,6 +11,7 @@ RSpec.describe Workbench, :type => :model do
it { should belong_to(:organisation) }
it { should belong_to(:line_referential) }
it { should belong_to(:stop_area_referential) }
+ it { should belong_to(:output).class_name('ReferentialSuite') }
it { should have_many(:lines).through(:line_referential) }
it { should have_many(:networks).through(:line_referential) }
@@ -19,6 +20,15 @@ RSpec.describe Workbench, :type => :model do
it { should have_many(:stop_areas).through(:stop_area_referential) }
+ it do
+ # This callback interferes with the validation test
+ Workbench.skip_callback(:validation, :before, :initialize_output)
+
+ should validate_presence_of(:output)
+
+ Workbench.set_callback(:validation, :before, :initialize_output)
+ end
+
context '.lines' do
let!(:ids) { ['STIF:CODIFLIGNE:Line:C00840', 'STIF:CODIFLIGNE:Line:C00086'] }
let!(:organisation) { create :organisation, sso_attributes: { functional_scope: ids.to_json } }
@@ -33,4 +43,18 @@ RSpec.describe Workbench, :type => :model do
expect(lines.map(&:objectid)).to include(*ids)
end
end
+
+ describe ".create" do
+ it "must automatically create a ReferentialSuite when being created" do
+ workbench = Workbench.create
+ expect(workbench.output).to be_an_instance_of(ReferentialSuite)
+ end
+
+ it "must not overwrite a given ReferentialSuite" do
+ referential_suite = create(:referential_suite)
+ workbench = create(:workbench, output: referential_suite)
+
+ expect(workbench.output).to eq(referential_suite)
+ end
+ end
end
diff --git a/spec/support/referential.rb b/spec/support/referential.rb
index 3b74cb639..6f60bd86b 100644
--- a/spec/support/referential.rb
+++ b/spec/support/referential.rb
@@ -52,8 +52,21 @@ RSpec.configure do |config|
referential.add_member organisation, owner: true
end
- workbench = Workbench.create!(:name => "Gestion de l'offre", organisation: organisation, line_referential: line_referential, stop_area_referential: stop_area_referential)
- referential = Referential.create! prefix: "first", name: "first", slug: "first", organisation: organisation, workbench: workbench
+ workbench = FactoryGirl.create(
+ :workbench,
+ name: "Gestion de l'offre",
+ organisation: organisation,
+ line_referential: line_referential,
+ stop_area_referential: stop_area_referential
+ )
+ referential = FactoryGirl.create(
+ :referential,
+ prefix: "first",
+ name: "first",
+ slug: "first",
+ organisation: organisation,
+ workbench: workbench
+ )
end
config.before(:each) do