X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/1765cd327b15151c113890860dd8818c6fc44962..9b3223e5cbcd1eb89193e8421d430025ddf791d1:/apps/workbench/test/test_helper.rb diff --git a/apps/workbench/test/test_helper.rb b/apps/workbench/test/test_helper.rb index f335722c07..89d15c67d8 100644 --- a/apps/workbench/test/test_helper.rb +++ b/apps/workbench/test/test_helper.rb @@ -95,22 +95,40 @@ module ApiFixtureLoader end module ApiMockHelpers - def stub_api_calls_with_body body, status_code=200 + def fake_api_response body, status_code, headers resp = mock - stubbed_client = ArvadosApiClient.new - stubbed_client.instance_eval do - resp.responds_like_instance_of HTTP::Message - resp.stubs(:content).returns body - resp.stubs(:status_code).returns status_code + resp.responds_like_instance_of HTTP::Message + resp.stubs(:headers).returns headers + resp.stubs(:content).returns body + resp.stubs(:status_code).returns status_code + resp + end + + def stub_api_calls_with_body body, status_code=200, headers={} + stub_api_calls + resp = fake_api_response body, status_code, headers + stub_api_client.stubs(:post).returns resp + end + + def stub_api_calls + @stubbed_client = ArvadosApiClient.new + @stubbed_client.instance_eval do @api_client = HTTPClient.new - @api_client.stubs(:post).returns resp end - ArvadosApiClient.stubs(:new_or_current).returns(stubbed_client) + ArvadosApiClient.stubs(:new_or_current).returns(@stubbed_client) end def stub_api_calls_with_invalid_json stub_api_calls_with_body ']"omg,bogus"[' end + + # Return the HTTPClient mock used by the ArvadosApiClient mock. You + # must have called stub_api_calls first. + def stub_api_client + @stubbed_client.instance_eval do + @api_client + end + end end class ActiveSupport::TestCase