2015-01-21 3 views
0

У меня есть тест RSpec, который делает запрос POST и посылает заголовок с ним, потому что требуется аутентификация:Rspec тест с запросом HTTP POST проходит локально, но не на сервере CI

it 'creates a client for an organization if none exists' do 
    VCR.use_cassette('create_client') do 
    post "/organizations/#{@organization.id}/clients", nil, { 'TOKEN' => @token } 

    expect(last_response.status).to be(201) 
    expect(json_response).to be_a(Hash) 
    expect(json_response["organization_id"]).to eq(@organization.id) 
    expect(json_response.keys).to include('auth_token') 
    end 
    expect(@organization.client).to_not be_nil 
end 

Это проходит без проблем, когда я запустить тесты на моей локальной машине, но не в состоянии на сервере CI (в данном случае Codeship):

Failure/Error: post "/organizations/#{@organization.id}/clients", nil, { 'TOKEN' => @token } 
MyModule::MyClass::Errors::InvalidOptionError: 
    bad URI(is not URI?): 

Когда я удалить часть заголовка из запроса на пост, тест будет, очевидно, не потому, что заголовок маркера требуется, но почтовый запрос будет проходить без ошибок.

Любые идеи, почему это происходит? Буду признателен за любой вклад.

ответ

0

Оказывается, это была проблема с Elasticsearch on Codeship.