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.
educoder/lib/gitlab-cli/spec/spec_helper.rb

75 lines
2.0 KiB

6 years ago
require 'rspec'
require 'webmock/rspec'
require File.expand_path('../../lib/gitlab', __FILE__)
require File.expand_path('../../lib/gitlab/cli', __FILE__)
def capture_output
out = StringIO.new
$stdout = out
$stderr = out
yield
$stdout = STDOUT
$stderr = STDERR
out.string
end
def load_fixture(name)
File.new(File.dirname(__FILE__) + "/fixtures/#{name}.json")
end
RSpec.configure do |config|
config.before(:all) do
Gitlab.endpoint = 'https://api.example.com'
Gitlab.private_token = 'secret'
end
end
# GET
def stub_get(path, fixture)
stub_request(:get, "#{Gitlab.endpoint}#{path}").
with(:headers => {'PRIVATE-TOKEN' => Gitlab.private_token}).
to_return(:body => load_fixture(fixture))
end
def a_get(path)
a_request(:get, "#{Gitlab.endpoint}#{path}").
with(:headers => {'PRIVATE-TOKEN' => Gitlab.private_token})
end
# POST
def stub_post(path, fixture, status_code=200)
stub_request(:post, "#{Gitlab.endpoint}#{path}").
with(:headers => {'PRIVATE-TOKEN' => Gitlab.private_token}).
to_return(:body => load_fixture(fixture), :status => status_code)
end
def a_post(path)
a_request(:post, "#{Gitlab.endpoint}#{path}").
with(:headers => {'PRIVATE-TOKEN' => Gitlab.private_token})
end
# PUT
def stub_put(path, fixture)
stub_request(:put, "#{Gitlab.endpoint}#{path}").
with(:headers => {'PRIVATE-TOKEN' => Gitlab.private_token}).
to_return(:body => load_fixture(fixture))
end
def a_put(path)
a_request(:put, "#{Gitlab.endpoint}#{path}").
with(:headers => {'PRIVATE-TOKEN' => Gitlab.private_token})
end
# DELETE
def stub_delete(path, fixture)
stub_request(:delete, "#{Gitlab.endpoint}#{path}").
with(:headers => {'PRIVATE-TOKEN' => Gitlab.private_token}).
to_return(:body => load_fixture(fixture))
end
def a_delete(path)
a_request(:delete, "#{Gitlab.endpoint}#{path}").
with(:headers => {'PRIVATE-TOKEN' => Gitlab.private_token})
end