diff options
| author | Robert | 2017-07-19 16:40:45 +0200 | 
|---|---|---|
| committer | Robert | 2017-07-20 11:49:34 +0200 | 
| commit | a1368a9730e20b2e3a85885740e6fb7ffec435ad (patch) | |
| tree | 0c8b5ad5b6da7d9813abb7feb16601afae8b8507 /spec | |
| parent | fba2bbccba9670d8d786781e7ec82f06b7a7fddc (diff) | |
| download | chouette-core-a1368a9730e20b2e3a85885740e6fb7ffec435ad.tar.bz2 | |
bup working on WorkbenchImportWorker's integration spec [amend me]
Diffstat (limited to 'spec')
| -rw-r--r-- | spec/controllers/imports_controller_spec.rb | 1 | ||||
| -rw-r--r-- | spec/factories/api_keys.rb | 6 | ||||
| -rw-r--r-- | spec/support/api_key.rb | 4 | ||||
| -rw-r--r-- | spec/support/json_helper.rb | 11 | ||||
| -rw-r--r-- | spec/workers/stop_area_referential_sync_worker_spec.rb | 1 | ||||
| -rw-r--r-- | spec/workers/workbench_import_worker_spec.rb | 25 | 
6 files changed, 47 insertions, 1 deletions
| diff --git a/spec/controllers/imports_controller_spec.rb b/spec/controllers/imports_controller_spec.rb index 7b575ab61..f07190496 100644 --- a/spec/controllers/imports_controller_spec.rb +++ b/spec/controllers/imports_controller_spec.rb @@ -15,6 +15,7 @@ RSpec.describe ImportsController, :type => :controller do      it 'should be successful' do        get :download, workbench_id: workbench.id, id: import.id, token: import.token_download        expect(response).to be_success +      expect( response.body ).to eq(import.file.read)      end    end  end diff --git a/spec/factories/api_keys.rb b/spec/factories/api_keys.rb new file mode 100644 index 000000000..bd31edecc --- /dev/null +++ b/spec/factories/api_keys.rb @@ -0,0 +1,6 @@ +FactoryGirl.define do +  factory :api_key, class: Api::V1::ApiKey do +    token { "#{referential.id}-#{SecureRandom.hex}" } +    referential +  end +end diff --git a/spec/support/api_key.rb b/spec/support/api_key.rb index 9353fac15..561e1f796 100644 --- a/spec/support/api_key.rb +++ b/spec/support/api_key.rb @@ -1,5 +1,9 @@  module ApiKeyHelper +  def authorization_token_header(key) +    {'Authorization' => "Token token=#{key}"} +  end +    def get_api_key      Api::V1::ApiKey.first_or_create( :referential_id => referential.id, :name => "test")    end diff --git a/spec/support/json_helper.rb b/spec/support/json_helper.rb new file mode 100644 index 000000000..a383981a0 --- /dev/null +++ b/spec/support/json_helper.rb @@ -0,0 +1,11 @@ +module Support +  module JsonHelper +    def json_response_body +      JSON.parse(response.body) +    end +  end +end + +RSpec.configure do | config | +  config.include Support::JsonHelper, type: :request +end diff --git a/spec/workers/stop_area_referential_sync_worker_spec.rb b/spec/workers/stop_area_referential_sync_worker_spec.rb index 48b64e55e..50c7cf45f 100644 --- a/spec/workers/stop_area_referential_sync_worker_spec.rb +++ b/spec/workers/stop_area_referential_sync_worker_spec.rb @@ -1,4 +1,3 @@ -require 'rails_helper'  RSpec.describe StopAreaReferentialSyncWorker, type: :worker do    let!(:stop_area_referential_sync) { create :stop_area_referential_sync } diff --git a/spec/workers/workbench_import_worker_spec.rb b/spec/workers/workbench_import_worker_spec.rb new file mode 100644 index 000000000..bfe631fc4 --- /dev/null +++ b/spec/workers/workbench_import_worker_spec.rb @@ -0,0 +1,25 @@ +RSpec.describe WorkbenchImportWorker, type: [:worker, :request] do + +  let( :worker ) { described_class.new } +  let( :import ){ build_stubbed :import } +  let( :workbench ){ import.workbench } +  let( :referential ){ import.referential } +  let( :api_key ){ build_stubbed :api_key, referential: referential } + +  let( :path ){ download_workbench_import_path(workbench, import) } +  let( :result ){ import.file.read } + +  before do +    # That should be `build_stubbed's` job, no? +    allow(Import).to receive(:find).with(import.id).and_return(import) +  end +  it 'downloads a zip file' do +    # /workbenches/:workbench_id/imports/:id/download +    stub_request(:get, path) +      .with(headers: authorization_token_header(api_key)) +      .to_return(body: result) +    # WTH was I trying to test ;) Ah yeah HTTP into download +    worker.perform import.id +    expect( worker.downloaded ).to eq( result ) +  end +end | 
