Próbuję zapisać testy dla kontrolera, który pobiera żądania z usług zewnętrznych. Do tej pory jest to moja próba:Dołączanie nagłówków do testów kontrolera Rspec
describe ApplyController do
context 'when valid' do
let(:parameters) do
file = File.join File.dirname(__FILE__), '..', 'samples', 'Indeed.json'
JSON.parse(File.read file)
end
let(:signature) { 'GC02UVj0d4bqa5peNFHdPQAZ2BI=' }
subject(:response) { post :indeed, parameters, 'X-Indeed-Signature' => signature }
it 'returns 200 ok if Request is valid' do
expect(response.status).to eq 200
end
end
end
ten powinien działać zgodnie z documentation mogłem find.
Mój kontroler teraz wygląda mniej więcej tak:
class ApplyController < Application Controller
def indeed
binding.pry
end
end
Kiedy dostać się wtrącać w moje badania i próby w celu sprawdzenia wartości request.headers['X-Indeed-Signature']
I zawsze po prostu nil
Czy jest coś, co ja jestem zaginiony? Używam Rails 3.2 i rspec 3
Okazuje się, że faktycznie potrzebowałem użyć '@ request.env ['X-Indeed-Signature']' zamiast '@ request.headers' –
Wygląda na to, że potrzebujesz' @ request.env' w Railsach 3 i '@ request.headers' w Railsach 4. –