diff options
| author | Luc Donnet | 2018-05-04 09:55:12 +0200 | 
|---|---|---|
| committer | GitHub | 2018-05-04 09:55:12 +0200 | 
| commit | 4438611e99c12faefdc73ff6cbd966951bc6dd1b (patch) | |
| tree | aaa19e2a194063c222c0e26c7a16877dcbecdf7c | |
| parent | fc71f67eb75f956aa2c3e1aae85e99b5b82bc0a3 (diff) | |
| parent | fc427e5807f62416fdc93a8c6dda006137f06537 (diff) | |
| download | chouette-core-4438611e99c12faefdc73ff6cbd966951bc6dd1b.tar.bz2 | |
Merge pull request #549 from af83/6920-activate-newly-created-referentials
6920 activate newly created referentials
| -rw-r--r-- | app/decorators/referential_decorator.rb | 2 | ||||
| -rw-r--r-- | app/models/referential.rb | 1 | ||||
| -rw-r--r-- | spec/controllers/statuses_controller_spec.rb | 2 | ||||
| -rw-r--r-- | spec/decorators/referential_decorator_spec.rb | 18 | ||||
| -rw-r--r-- | spec/factories/referentials.rb | 7 | ||||
| -rw-r--r-- | spec/features/workbenches/workbenches_show_spec.rb | 1 | ||||
| -rw-r--r-- | spec/models/import/netex_import_spec.rb | 2 | ||||
| -rw-r--r-- | spec/models/referential_spec.rb | 11 | 
8 files changed, 39 insertions, 5 deletions
| diff --git a/app/decorators/referential_decorator.rb b/app/decorators/referential_decorator.rb index e01987e59..db6261120 100644 --- a/app/decorators/referential_decorator.rb +++ b/app/decorators/referential_decorator.rb @@ -36,7 +36,7 @@ class ReferentialDecorator < AF83::Decorator        l.method :put      end -    instance_decorator.action_link policy: :unarchive, secondary: :show, on: :show do |l| +    instance_decorator.action_link policy: :unarchive, secondary: :show do |l|        l.content t('actions.unarchive')        l.href { h.unarchive_referential_path(object.id) }        l.method :put diff --git a/app/models/referential.rb b/app/models/referential.rb index b4f64fad1..792353a73 100644 --- a/app/models/referential.rb +++ b/app/models/referential.rb @@ -322,6 +322,7 @@ class Referential < ApplicationModel    before_create :create_schema    after_create :clone_schema, if: :created_from +  after_create :active!, unless: :created_from    before_destroy :destroy_schema    before_destroy :destroy_jobs diff --git a/spec/controllers/statuses_controller_spec.rb b/spec/controllers/statuses_controller_spec.rb index 8a6db8e28..65b338888 100644 --- a/spec/controllers/statuses_controller_spec.rb +++ b/spec/controllers/statuses_controller_spec.rb @@ -31,7 +31,7 @@ RSpec.describe StatusesController, :type => :controller do      context "with a blocked object" do        before do -        create :referential, created_at: 5.hours.ago, ready: false +        r = create :referential, created_at: 5.hours.ago, status: :pending          create :import          create :compliance_check_set          request diff --git a/spec/decorators/referential_decorator_spec.rb b/spec/decorators/referential_decorator_spec.rb index 98546f28b..88c7df666 100644 --- a/spec/decorators/referential_decorator_spec.rb +++ b/spec/decorators/referential_decorator_spec.rb @@ -100,7 +100,10 @@ RSpec.describe ReferentialDecorator, type: [:helper, :decorator] do      end      context 'archived referential' do -      before { referential.archived_at = 42.seconds.ago } +      before { +        referential.ready = true +        referential.archived_at = 42.seconds.ago +      }        context 'no rights' do          it 'has only show and calendar actions' do            expect_action_link_hrefs.to eq([[object], referential_time_tables_path(object)]) @@ -118,6 +121,19 @@ RSpec.describe ReferentialDecorator, type: [:helper, :decorator] do            ])          end        end + +      context 'all rights and same organisation' do +        let( :user ){ build_stubbed :allmighty_user, organisation: referential.organisation } +        it 'has only default actions' do +          expect_action_link_elements.to eq ["Consulter", "Calendriers", "Dupliquer", "Désarchiver"] +          expect_action_link_hrefs.to eq([ +            [object], +            referential_time_tables_path(object), +            new_workbench_referential_path(referential.workbench, from: object.id), +            unarchive_referential_path(object), +          ]) +        end +      end      end    end diff --git a/spec/factories/referentials.rb b/spec/factories/referentials.rb index 0276a47be..bbaa7c313 100644 --- a/spec/factories/referentials.rb +++ b/spec/factories/referentials.rb @@ -9,6 +9,13 @@ FactoryGirl.define do      time_zone "Europe/Paris"      ready { true }      objectid_format "stif_netex" +    transient do +      status :active +    end + +    after(:create) do |referential, evaluator| +      referential.send "#{evaluator.status}!" +    end      factory :workbench_referential do        association :workbench diff --git a/spec/features/workbenches/workbenches_show_spec.rb b/spec/features/workbenches/workbenches_show_spec.rb index 427b526cf..e892f00e7 100644 --- a/spec/features/workbenches/workbenches_show_spec.rb +++ b/spec/features/workbenches/workbenches_show_spec.rb @@ -74,6 +74,7 @@ RSpec.describe 'Workbenches', type: :feature do          organisation: @user.organisation,          ready: false        ) +      pending_referential.pending!        visit workbench_path(workbench) diff --git a/spec/models/import/netex_import_spec.rb b/spec/models/import/netex_import_spec.rb index 6424fbfe1..bc3b9f7ed 100644 --- a/spec/models/import/netex_import_spec.rb +++ b/spec/models/import/netex_import_spec.rb @@ -32,7 +32,7 @@ RSpec.describe Import::Netex, type: [:model, :with_commit] do    describe "#destroy" do      it "must destroy its associated Referential if ready: false" do        workbench_import = create(:workbench_import) -      referential_ready_false = create(:referential, ready: false) +      referential_ready_false = create(:referential, status: :pending)        referential_ready_true = create(:referential, ready: true)        create(          :netex_import, diff --git a/spec/models/referential_spec.rb b/spec/models/referential_spec.rb index 720cec48c..2ca0e737d 100644 --- a/spec/models/referential_spec.rb +++ b/spec/models/referential_spec.rb @@ -29,6 +29,14 @@ describe Referential, :type => :model do      end    end +  context "creation" do +    subject(:referential) { Referential.create name: "test", objectid_format: :netex, organisation: create(:organisation), line_referential: create(:line_referential), stop_area_referential: create(:stop_area_referential) } +    it "should activate by default" do +      expect(referential).to be_valid +      expect(referential.state).to eq :active +    end +  end +    context ".last_operation" do      subject(:operation){ referential.last_operation }      it "should return nothing" do @@ -110,7 +118,8 @@ describe Referential, :type => :model do      context "the scopes" do        it "should filter the referentials" do -        referential = create :referential, ready: false +        referential = create :referential +        referential.pending!          expect(Referential.pending).to include referential          expect(Referential.failed).to_not include referential          expect(Referential.active).to_not include referential | 
