spec/github/issues_spec.rb in github_api-0.4.11 vs spec/github/issues_spec.rb in github_api-0.5.0.rc1
- old
+ new
@@ -5,111 +5,108 @@
describe Github::Issues do
let(:issues_api) { Github::Issues }
let(:github) { Github.new }
let(:user) { 'peter-murach' }
let(:repo) { 'github' }
+ let(:issue_id) { 1347 }
- after { github.user, github.repo, github.oauth_token = nil, nil, nil }
+ after { reset_authentication_for github }
- describe 'modules inclusion' do
- it { issues_api.included_modules.should include Github::Issues::Comments }
- it { issues_api.included_modules.should include Github::Issues::Events }
- it { issues_api.included_modules.should include Github::Issues::Labels }
- it { issues_api.included_modules.should include Github::Issues::Milestones }
+ context 'access to apis' do
+ it { subject.comments.should be_a Github::Issues::Comments }
+ it { subject.events.should be_a Github::Issues::Events }
+ it { subject.labels.should be_a Github::Issues::Labels }
+ it { subject.milestones.should be_a Github::Issues::Milestones }
end
- describe 'issues' do
- it { github.issues.should respond_to :issues }
- it { github.issues.should respond_to :list_issues }
+ context '#list' do
+ it { github.issues.should respond_to(:all) }
context "resource found" do
before do
stub_get("/issues").
to_return(:body => fixture('issues/issues.json'), :status => 200, :headers => {:content_type => "application/json; charset=utf-8"})
end
it "should get the resources" do
- github.issues.issues
+ github.issues.list
a_get("/issues").should have_been_made
end
it "should return array of resources" do
- issues = github.issues.issues
+ issues = github.issues.list
issues.should be_an Array
issues.should have(1).items
end
it "should be a mash type" do
- issues = github.issues.issues
+ issues = github.issues.list
issues.first.should be_a Hashie::Mash
end
it "should get issue information" do
- issues = github.issues.issues
+ issues = github.issues.list
issues.first.title.should == 'Found a bug'
end
it "should yield to a block" do
- github.issues.should_receive(:issues).and_yield('web')
- github.issues.issues { |param| 'web' }.should == 'web'
+ github.issues.should_receive(:list).and_yield('web')
+ github.issues.list { |param| 'web' }.should == 'web'
end
end
context "resource not found" do
before do
stub_get("/issues").
to_return(:body => "", :status => [404, "Not Found"])
end
it "should return 404 with a message 'Not Found'" do
- expect { github.issues.issues }.to raise_error(Github::Error::NotFound)
+ expect { github.issues.list }.to raise_error(Github::Error::NotFound)
end
end
- end # issues
+ end # list
- describe 'repo_issues' do
- it { github.issues.should respond_to :repo_issues }
- it { github.issues.should respond_to :list_repo_issues }
- it { github.issues.should respond_to :list_repository_issues }
+ describe '#list_repo' do
+ it { github.issues.should respond_to :list_repository }
context "resource found" do
before do
- github.user, github.repo = nil, nil
stub_get("/repos/#{user}/#{repo}/issues").
to_return(:body => fixture('issues/issues.json'), :status => 200, :headers => {:content_type => "application/json; charset=utf-8"})
end
it "should raise error if user-name empty" do
expect {
- github.issues.repo_issues nil, repo
+ github.issues.list_repo nil, repo
}.should raise_error(ArgumentError)
end
it "should get the resources" do
- github.issues.repo_issues user, repo
+ github.issues.list_repo user, repo
a_get("/repos/#{user}/#{repo}/issues").should have_been_made
end
it "should return array of resources" do
- repo_issues = github.issues.repo_issues user, repo
+ repo_issues = github.issues.list_repo user, repo
repo_issues.should be_an Array
repo_issues.should have(1).items
end
it "should be a mash type" do
- repo_issues = github.issues.repo_issues user, repo
+ repo_issues = github.issues.list_repo user, repo
repo_issues.first.should be_a Hashie::Mash
end
it "should get repository issue information" do
- repo_issues = github.issues.repo_issues user, repo
+ repo_issues = github.issues.list_repo user, repo
repo_issues.first.title.should == 'Found a bug'
end
it "should yield to a block" do
- github.issues.should_receive(:issues).with(user, repo).and_yield('web')
- github.issues.issues(user, repo) { |param| 'web' }.should == 'web'
+ github.issues.should_receive(:list_repo).with(user, repo).and_yield('web')
+ github.issues.list_repo(user, repo) { |param| 'web' }.should == 'web'
end
end
context "resource not found" do
before do
@@ -117,64 +114,64 @@
to_return(:body => "", :status => [404, "Not Found"])
end
it "should return 404 with a message 'Not Found'" do
expect {
- github.issues.repo_issues user, repo
+ github.issues.list_repo user, repo
}.to raise_error(Github::Error::NotFound)
end
end
- end # repo_issues
+ end # list_repo
- describe "get_issue" do
- let(:issue_id) { 1347 }
+ describe "#find" do
- it { github.issues.should respond_to :issue }
- it { github.issues.should respond_to :get_issue }
-
context "resource found" do
before do
stub_get("/repos/#{user}/#{repo}/issues/#{issue_id}").
- to_return(:body => fixture('issues/issue.json'), :status => 200, :headers => {:content_type => "application/json; charset=utf-8"})
+ to_return(:body => fixture('issues/issue.json'),
+ :status => 200,
+ :headers => {:content_type => "application/json; charset=utf-8"})
end
it "should fail to get resource without issue id" do
- expect { github.issues.issue(user, repo, nil)}.to raise_error(ArgumentError)
+ expect { github.issues.find(user, repo, nil)}.to raise_error(ArgumentError)
end
it "should get the resource" do
- github.issues.issue user, repo, issue_id
+ github.issues.find user, repo, issue_id
a_get("/repos/#{user}/#{repo}/issues/#{issue_id}").should have_been_made
end
it "should get issue information" do
- issue = github.issues.issue user, repo, issue_id
+ issue = github.issues.find user, repo, issue_id
issue.number.should == issue_id
issue.title.should == 'Found a bug'
end
it "should return mash" do
- issue = github.issues.issue user, repo, issue_id
+ issue = github.issues.find user, repo, issue_id
issue.should be_a Hashie::Mash
end
end
context "resource not found" do
before do
stub_get("/repos/#{user}/#{repo}/issues/#{issue_id}").
- to_return(:body => fixture('issues/issue.json'), :status => 404, :headers => {:content_type => "application/json; charset=utf-8"})
+ to_return(:body => fixture('issues/issue.json'),
+ :status => 404,
+ :headers => {:content_type => "application/json; charset=utf-8"})
end
it "should fail to retrive resource" do
expect {
- github.issues.issue user, repo, issue_id
+ github.issues.find user, repo, issue_id
}.to raise_error(Github::Error::NotFound)
end
end
end # get_issue
- describe "create_issue" do
+ describe "#create" do
let(:inputs) {
{
"title" => "Found a bug",
"body" => "I'm having a problem with this.",
"assignee" => "octocat",
@@ -191,26 +188,26 @@
to_return(:body => fixture('issues/issue.json'), :status => 201, :headers => {:content_type => "application/json; charset=utf-8"})
end
it "should fail to create resource if 'title' input is missing" do
expect {
- github.issues.create_issue user, repo, inputs.except('title')
+ github.issues.create user, repo, inputs.except('title')
}.to raise_error(Github::Error::RequiredParams)
end
it "should create resource successfully" do
- github.issues.create_issue user, repo, inputs
+ github.issues.create user, repo, inputs
a_post("/repos/#{user}/#{repo}/issues").with(inputs).should have_been_made
end
it "should return the resource" do
- issue = github.issues.create_issue user, repo, inputs
+ issue = github.issues.create user, repo, inputs
issue.should be_a Hashie::Mash
end
it "should get the issue information" do
- issue = github.issues.create_issue(user, repo, inputs)
+ issue = github.issues.create(user, repo, inputs)
issue.title.should == 'Found a bug'
end
end
context "failed to create resource" do
@@ -219,18 +216,17 @@
to_return(:body => fixture('issues/issue.json'), :status => 404, :headers => {:content_type => "application/json; charset=utf-8"})
end
it "should faile to retrieve resource" do
expect {
- github.issues.create_issue user, repo, inputs
+ github.issues.create user, repo, inputs
}.to raise_error(Github::Error::NotFound)
end
end
- end # create_issue
+ end # create
- describe "edit_issue" do
- let(:issue_id) { 1349 }
+ describe "#edit" do
let(:inputs) {
{
"title" => "Found a bug",
"body" => "I'm having a problem with this.",
"assignee" => "octocat",
@@ -248,26 +244,26 @@
to_return(:body => fixture("issues/issue.json"), :status => 200, :headers => { :content_type => "application/json; charset=utf-8"})
end
it "should fail to edit without 'user/repo' parameters" do
expect {
- github.issues.edit_issue nil, repo, issue_id
+ github.issues.edit nil, repo, issue_id
}.to raise_error(ArgumentError)
end
it "should edit the resource" do
- github.issues.edit_issue user, repo, issue_id, inputs
+ github.issues.edit user, repo, issue_id, inputs
a_patch("/repos/#{user}/#{repo}/issues/#{issue_id}").with(inputs).should have_been_made
end
it "should return resource" do
- issue = github.issues.edit_issue user, repo, issue_id, inputs
+ issue = github.issues.edit user, repo, issue_id, inputs
issue.should be_a Hashie::Mash
end
it "should be able to retrieve information" do
- issue = github.issues.edit_issue user, repo, issue_id, inputs
+ issue = github.issues.edit user, repo, issue_id, inputs
issue.title.should == 'Found a bug'
end
end
context "failed to edit resource" do
@@ -276,10 +272,10 @@
to_return(:body => fixture("issues/issue.json"), :status => 404, :headers => { :content_type => "application/json; charset=utf-8"})
end
it "should fail to find resource" do
expect {
- github.issues.edit_issue user, repo, issue_id, inputs
+ github.issues.edit user, repo, issue_id, inputs
}.to raise_error(Github::Error::NotFound)
end
end
end # edit_issue