You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
49 lines
1.6 KiB
49 lines
1.6 KiB
require 'spec_helper'
|
|
|
|
describe Gitlab::Request do
|
|
it { should respond_to :get }
|
|
it { should respond_to :post }
|
|
it { should respond_to :put }
|
|
it { should respond_to :delete }
|
|
|
|
describe ".default_options" do
|
|
it "should have default values" do
|
|
default_options = Gitlab::Request.default_options
|
|
expect(default_options).to be_a Hash
|
|
expect(default_options[:parser]).to be_a Proc
|
|
expect(default_options[:format]).to eq(:json)
|
|
expect(default_options[:headers]).to eq({'Accept' => 'application/json'})
|
|
expect(default_options[:default_params]).to be_nil
|
|
end
|
|
end
|
|
|
|
describe ".parse" do
|
|
it "should return ObjectifiedHash" do
|
|
body = JSON.unparse({a: 1, b: 2})
|
|
expect(Gitlab::Request.parse(body)).to be_an Gitlab::ObjectifiedHash
|
|
end
|
|
end
|
|
|
|
describe "#set_request_defaults" do
|
|
context "when endpoint is not set" do
|
|
it "should raise Error::MissingCredentials" do
|
|
expect {
|
|
Gitlab::Request.new.set_request_defaults(nil, 1234000)
|
|
}.to raise_error(Gitlab::Error::MissingCredentials, 'Please set an endpoint to API')
|
|
end
|
|
end
|
|
|
|
context "when endpoint is set" do
|
|
it "should set base_uri" do
|
|
Gitlab::Request.new.set_request_defaults('http://rabbit-hole.example.org', 1234000)
|
|
expect(Gitlab::Request.base_uri).to eq("http://rabbit-hole.example.org")
|
|
end
|
|
|
|
it "should set default_params" do
|
|
Gitlab::Request.new.set_request_defaults('http://rabbit-hole.example.org', 1234000, 'sudoer')
|
|
expect(Gitlab::Request.default_params).to eq({:sudo => 'sudoer'})
|
|
end
|
|
end
|
|
end
|
|
end
|