2019-12-04 20:38:33 +05:30
|
|
|
# frozen_string_literal: true
|
|
|
|
|
|
|
|
require 'spec_helper'
|
|
|
|
|
2020-07-28 23:09:34 +05:30
|
|
|
RSpec.describe 'HangoutsChat::Sender Gitlab::HTTP override' do
|
2019-12-04 20:38:33 +05:30
|
|
|
describe 'HangoutsChat::Sender::HTTP#post' do
|
|
|
|
it 'calls Gitlab::HTTP.post with default protection settings' do
|
|
|
|
webhook_url = 'https://example.gitlab.com'
|
|
|
|
payload = { key: 'value' }
|
|
|
|
http = HangoutsChat::Sender::HTTP.new(webhook_url)
|
|
|
|
mock_response = double(response: 'the response')
|
|
|
|
|
|
|
|
expect(Gitlab::HTTP).to receive(:post)
|
|
|
|
.with(
|
|
|
|
URI.parse(webhook_url),
|
|
|
|
body: payload.to_json,
|
|
|
|
headers: { 'Content-Type' => 'application/json' },
|
|
|
|
parse: nil
|
|
|
|
)
|
|
|
|
.and_return(mock_response)
|
|
|
|
|
|
|
|
expect(http.post(payload)).to eq(mock_response.response)
|
|
|
|
end
|
|
|
|
|
|
|
|
it_behaves_like 'a request using Gitlab::UrlBlocker' do
|
|
|
|
let(:http_method) { :post }
|
|
|
|
let(:url_blocked_error_class) { Gitlab::HTTP::BlockedUrlError }
|
|
|
|
|
|
|
|
def make_request(uri)
|
|
|
|
HangoutsChat::Sender::HTTP.new(uri).post({})
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|