diff options
| -rw-r--r-- | app/controllers/exports_controller.rb | 12 | ||||
| -rw-r--r-- | spec/controllers/exports_controller_spec.rb | 18 | ||||
| -rw-r--r-- | spec/factories/exports/exports.rb | 1 | ||||
| -rw-r--r-- | spec/factories/exports/netex_exports.rb | 6 | ||||
| -rw-r--r-- | spec/factories/exports/workgroup_exports.rb | 3 | 
5 files changed, 33 insertions, 7 deletions
| diff --git a/app/controllers/exports_controller.rb b/app/controllers/exports_controller.rb index 7ea57341a..36d752347 100644 --- a/app/controllers/exports_controller.rb +++ b/app/controllers/exports_controller.rb @@ -2,9 +2,19 @@ class ExportsController < ChouetteController    include PolicyChecker    include RansackDateFilter    include IevInterfaces -  # skip_before_action :authenticate_user!, only: [:upload] +  skip_before_action :authenticate_user!, only: [:upload]    defaults resource_class: Export::Base, collection_name: 'exports', instance_name: 'export' +  def upload +    if params[:token] == resource.token_upload +      resource.file = params[:file] +      resource.save! +      redirect_to [resource.workbench, resource] +    else +      user_not_authorized +    end +  end +    private    def index_model diff --git a/spec/controllers/exports_controller_spec.rb b/spec/controllers/exports_controller_spec.rb index a070cfb1f..dbc8b3f35 100644 --- a/spec/controllers/exports_controller_spec.rb +++ b/spec/controllers/exports_controller_spec.rb @@ -2,7 +2,7 @@ RSpec.describe ExportsController, :type => :controller do    login_user    let(:workbench) { create :workbench } -  let(:export)    { create :export, workbench: workbench } +  let(:export)    { create(:netex_export, workbench: workbench) }    describe 'GET #new' do      it 'should be successful if authorized' do @@ -76,4 +76,20 @@ RSpec.describe ExportsController, :type => :controller do        end      end    end + +  describe 'POST #upload' do +    context "with the token" do +      it 'should be successful' do +        post :upload, workbench_id: workbench.id, id: export.id, token: export.token_upload +        expect(response).to be_redirect +      end +    end + +    context "without the token" do +      it 'should be unsuccessful' do +        post :upload, workbench_id: workbench.id, id: export.id, token: "foo" +        expect(response).to_not be_success +      end +    end +  end  end diff --git a/spec/factories/exports/exports.rb b/spec/factories/exports/exports.rb index 66afe7652..c8aaf30a9 100644 --- a/spec/factories/exports/exports.rb +++ b/spec/factories/exports/exports.rb @@ -5,7 +5,6 @@ FactoryGirl.define do      current_step_progress 1.5      association :workbench      association :referential -    file {File.open(File.join(Rails.root, 'spec', 'fixtures', 'OFFRE_TRANSDEV_2017030112251.zip'))}      status :new      started_at nil      ended_at nil diff --git a/spec/factories/exports/netex_exports.rb b/spec/factories/exports/netex_exports.rb index 288bba314..0648bbc56 100644 --- a/spec/factories/exports/netex_exports.rb +++ b/spec/factories/exports/netex_exports.rb @@ -1,7 +1,7 @@  FactoryGirl.define do    factory :netex_export, class: Export::Netex, parent: :export do -    file { File.open(Rails.root.join('spec', 'fixtures', 'OFFRE_TRANSDEV_2017030112251.zip')) } -    association :parent, factory: :workbench_export - +    association :parent, factory: :workgroup_export +    export_type :line +    duration 90    end  end diff --git a/spec/factories/exports/workgroup_exports.rb b/spec/factories/exports/workgroup_exports.rb index 4b1ef45ab..f5dfb6b94 100644 --- a/spec/factories/exports/workgroup_exports.rb +++ b/spec/factories/exports/workgroup_exports.rb @@ -1,4 +1,5 @@  FactoryGirl.define do -  factory :workbench_export, class: Export::Workgroup, parent: :export do +  factory :workgroup_export, class: Export::Workgroup, parent: :export do +    duration 90    end  end | 
