require 'spec_helper'
describe Gitlab::Client do
describe ".labels" do
before do
stub_get("/projects/3/labels", "labels")
@labels = Gitlab.labels(3)
end
it "should get the correct resource" do
expect(a_get("/projects/3/labels")).to have_been_made
end
it "should return a paginated response of project's labels" do
expect(@labels).to be_a Gitlab::PaginatedResponse
expect(@labels.first.name).to eq("Backlog")
end
end
describe ".delete" do
before do
stub_delete("/projects/3/labels", "label")
@label = Gitlab.delete_label(3, "Backlog")
end
it "should get the correct resource" do
expect(a_delete("/projects/3/labels").
with(body: { name: 'Backlog' })).to have_been_made
end
it "should return information about a deleted snippet" do
expect(@label.name).to eq("Backlog")
end
end
describe ".edit_label" do
before do
stub_put("/projects/3/labels", "label")
@label = Gitlab.edit_label(3, "TODO", new_name: 'Backlog')
end
it "should get the correct resource" do
expect(a_put("/projects/3/labels").
with(body: { name: 'TODO', new_name: "Backlog" })).to have_been_made
end
it "should return information about an edited label" do
expect(@label.name).to eq("Backlog")
end
end
describe ".create_label" do
before do
stub_post("/projects/3/labels", "label")
@label = Gitlab.create_label(3, 'Backlog', '#DD10AA')
end
it "should get the correct resource" do
expect(a_post("/projects/3/labels").
with(body: { name: 'Backlog', color: '#DD10AA' })).to have_been_made
end
it "should return information about a created label" do
expect(@label.name).to eq('Backlog')
expect(@label.color).to eq('#DD10AA')
end
end
describe ".subscribe_to_label" do
before do
stub_post("/projects/3/labels/Backlog/subscribe", "label")
@label = Gitlab.subscribe_to_label(3, 'Backlog')
end
it "should get the correct resource" do
expect(a_post("/projects/3/labels/Backlog/subscribe")).to have_been_made
end
it "should return information about the label subscribed to" do
expect(@label.name).to eq('Backlog')
expect(@label.subscribed).to eq(true)
end
end
describe ".unsubscribe_from_label" do
before do
stub_post("/projects/3/labels/Backlog/unsubscribe", "label_unsubscribe")
@label = Gitlab.unsubscribe_from_label(3, 'Backlog')
end
it "should get the correct resource" do
expect(a_post("/projects/3/labels/Backlog/unsubscribe")).to have_been_made
end
it "should return information about the label subscribed to" do
expect(@label.name).to eq('Backlog')
expect(@label.subscribed).to eq(false)
end
end
end