75 lines
1.9 KiB
Ruby
75 lines
1.9 KiB
Ruby
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
|