1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187
|
# frozen_string_literal: true
describe Octokit::Client::Projects do
describe '.projects', :vcr do
it 'returns a list of projects for a repository' do
projects = oauth_client.projects('octokit/octokit.rb')
expect(projects).to be_kind_of Array
assert_requested :get, github_url('/repos/octokit/octokit.rb/projects')
end
end # .projects
describe '.create_project', :vcr do
it 'returns the newly created project' do
project = oauth_client.create_project(@test_repo, 'api kpi')
expect(project.name).to eq('api kpi')
assert_requested :post, github_url("/repos/#{@test_repo}/projects")
end
end # .create_project
describe '.org_projects', :vcr do
it 'returns the projects for an organization' do
projects = oauth_client.org_projects(test_github_org)
expect(projects).to be_kind_of Array
assert_requested :get, github_url("/orgs/#{test_github_org}/projects")
end
end # .org_project
describe '.create_org_project', :vcr do
it 'returns the new org project' do
project = oauth_client.create_org_project(test_github_org, 'synergy', body: 'do it')
expect(project.name).to eq 'synergy'
expect(project.body).to eq 'do it'
assert_requested :post, github_url("/orgs/#{test_github_org}/projects")
end
end # .create_org_project
context 'with repository' do
before(:each) do
delete_test_repo
end
after(:each) do
delete_test_repo
end
context 'with project' do
before(:each) do
@project = oauth_client.create_project(@test_repo, 'implement apis')
end
describe '.project', :vcr do
it 'returns a project' do
project = oauth_client.project(@project.id)
expect(project.name).not_to be_nil
assert_requested :get, github_url("/projects/#{@project.id}")
end
end # .project
describe '.update_project', :vcr do
it 'updates the project name and body then returns the updated project' do
name = 'new name'
body = 'new body'
project = oauth_client.update_project(@project.id, { name: name, body: body })
expect(project.name).to eq name
expect(project.body).to eq body
assert_requested :patch, github_url("/projects/#{@project.id}")
end
end # .update_project
describe '.delete_project', :vcr do
it 'returns the result of deleting a project' do
result = oauth_client.delete_project(@project.id)
expect(result).to eq true
assert_requested :delete, github_url("/projects/#{@project.id}")
end
end # .delete_project
describe '.project_columns', :vcr do
it 'returns the columns for a project' do
columns = oauth_client.project_columns(@project.id)
expect(columns).to be_kind_of Array
assert_requested :get, github_url("/projects/#{@project.id}/columns")
end
end # .project_columns
describe '.create_project_column', :vcr do
it 'returns the newly created project column' do
column = oauth_client.create_project_column(@project.id, 'Todos')
expect(column.name).to eq 'Todos'
assert_requested :post, github_url("/projects/#{@project.id}/columns")
end
end # .create_project_column
context 'with project column' do
before(:each) do
@column = oauth_client.create_project_column(@project.id, "Todos #{Time.now.to_f}")
end
describe '.project_column', :vcr do
it 'returns a project column by id' do
column = oauth_client.project_column(@column.id)
expect(column.name).to be_kind_of String
assert_requested :get, github_url("/projects/columns/#{@column.id}")
end
end # .project_column
describe '.update_project_column', :vcr do
it 'updates the project column and returns the updated column' do
column = oauth_client.update_project_column(@column.id, 'new name')
expect(column.name).to eq 'new name'
assert_requested :patch, github_url("/projects/columns/#{@column.id}")
end
end # .update_project_column
describe '.move_project_column', :vcr do
it 'moves the project column' do
result = oauth_client.move_project_column(@column.id, 'last')
expect(result).not_to be_nil
assert_requested :post, github_url("/projects/columns/#{@column.id}/moves")
end
end # .move_project_column
describe '.delete_project_column', :vcr do
it 'deletes the project column' do
result = oauth_client.delete_project_column(@column.id)
expect(result).to eq true
assert_requested :delete, github_url("/projects/columns/#{@column.id}")
end
end # .delete_project_column
describe '.column_cards', :vcr do
it 'returns a list of the cards in a project column' do
cards = oauth_client.column_cards(@column.id)
expect(cards).to be_kind_of Array
assert_requested :get, github_url("/projects/columns/#{@column.id}/cards")
end
end # .column_cards
describe '.create_project_card', :vcr do
it 'creates a new card with a note' do
card = oauth_client.create_project_card(@column.id, note: 'thing')
expect(card.note).to eq 'thing'
assert_requested :post, github_url("/projects/columns/#{@column.id}/cards")
end
end # .create_project_card
context 'with project card' do
before(:each) do
@card = oauth_client.create_project_card(@column.id, note: 'octocard')
end
describe '.project_card', :vcr do
it 'returns a project card by id' do
card = oauth_client.project_card(@card.id)
expect(card.note).to be_kind_of String
assert_requested :get, github_url("/projects/columns/cards/#{@card.id}")
end
end # .project_card
describe '.update_project_card', :vcr do
it 'updates the project card' do
card = oauth_client.update_project_card(@card.id, note: 'new note')
expect(card.note).to eq 'new note'
assert_requested :patch, github_url("/projects/columns/cards/#{@card.id}")
end
end # .update_project_card
describe '.move_project_card', :vcr do
it 'moves the project card' do
result = oauth_client.move_project_card(@card.id, 'bottom')
expect(result).not_to be_nil
assert_requested :post, github_url("/projects/columns/cards/#{@card.id}/moves")
end
end # .move_project_card
describe '.delete_project_card', :vcr do
it 'deletes the project card' do
success = oauth_client.delete_project_card(@card.id)
expect(success).to eq true
assert_requested :delete, github_url("/projects/columns/cards/#{@card.id}")
end
end # .delete_project_card
end # with project card
end # with project column
end # with project
end # with repository
end # Octokit::Client::Projects
|