Skip to content

Commit c8a4ac6

Browse files
committed
start on fixing tests
1 parent 135c63a commit c8a4ac6

File tree

4 files changed

+229
-129
lines changed

4 files changed

+229
-129
lines changed

command/issue_test.go

Lines changed: 105 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,33 @@ import (
99
"regexp"
1010
"testing"
1111

12+
"github.com/cli/cli/context"
1213
"github.com/cli/cli/utils"
1314
)
1415

1516
func TestIssueStatus(t *testing.T) {
16-
initBlankContext("OWNER/REPO", "master")
17+
ctx := context.NewBlank()
18+
ctx.SetBranch("master")
19+
ctx.SetRemotes(map[string]string{
20+
"origin": "OWNER/REPO",
21+
})
22+
initContext = func() context.Context {
23+
return ctx
24+
}
1725
http := initFakeHTTP()
1826

27+
http.StubResponse(200, bytes.NewBufferString(`
28+
{ "data": { "repo_000": {
29+
"id": "REPOID",
30+
"name": "REPO",
31+
"owner": {"login": "OWNER"},
32+
"defaultBranchRef": {
33+
"name": "master",
34+
"target": {"oid": "deadbeef"}
35+
},
36+
"viewerPermission": "WRITE"
37+
} } }
38+
`))
1939
jsonFile, _ := os.Open("../test/fixtures/issueStatus.json")
2040
defer jsonFile.Close()
2141
http.StubResponse(200, jsonFile)
@@ -41,9 +61,29 @@ func TestIssueStatus(t *testing.T) {
4161
}
4262

4363
func TestIssueStatus_blankSlate(t *testing.T) {
44-
initBlankContext("OWNER/REPO", "master")
64+
ctx := context.NewBlank()
65+
ctx.SetBranch("master")
66+
ctx.SetRemotes(map[string]string{
67+
"origin": "OWNER/REPO",
68+
})
69+
initContext = func() context.Context {
70+
return ctx
71+
}
4572
http := initFakeHTTP()
4673

74+
http.StubResponse(200, bytes.NewBufferString(`
75+
{ "data": { "repo_000": {
76+
"id": "REPOID",
77+
"name": "REPO",
78+
"owner": {"login": "OWNER"},
79+
"defaultBranchRef": {
80+
"name": "master",
81+
"target": {"oid": "deadbeef"}
82+
},
83+
"viewerPermission": "WRITE"
84+
} } }
85+
`))
86+
4787
http.StubResponse(200, bytes.NewBufferString(`
4888
{ "data": { "repository": {
4989
"hasIssuesEnabled": true,
@@ -77,9 +117,29 @@ Issues opened by you
77117
}
78118

79119
func TestIssueStatus_disabledIssues(t *testing.T) {
80-
initBlankContext("OWNER/REPO", "master")
120+
ctx := context.NewBlank()
121+
ctx.SetBranch("master")
122+
ctx.SetRemotes(map[string]string{
123+
"origin": "OWNER/REPO",
124+
})
125+
initContext = func() context.Context {
126+
return ctx
127+
}
81128
http := initFakeHTTP()
82129

130+
http.StubResponse(200, bytes.NewBufferString(`
131+
{ "data": { "repo_000": {
132+
"id": "REPOID",
133+
"name": "REPO",
134+
"owner": {"login": "OWNER"},
135+
"defaultBranchRef": {
136+
"name": "master",
137+
"target": {"oid": "deadbeef"}
138+
},
139+
"viewerPermission": "WRITE"
140+
} } }
141+
`))
142+
83143
http.StubResponse(200, bytes.NewBufferString(`
84144
{ "data": { "repository": {
85145
"hasIssuesEnabled": false
@@ -93,9 +153,29 @@ func TestIssueStatus_disabledIssues(t *testing.T) {
93153
}
94154

95155
func TestIssueList(t *testing.T) {
96-
initBlankContext("OWNER/REPO", "master")
156+
ctx := context.NewBlank()
157+
ctx.SetBranch("master")
158+
ctx.SetRemotes(map[string]string{
159+
"origin": "OWNER/REPO",
160+
})
161+
initContext = func() context.Context {
162+
return ctx
163+
}
97164
http := initFakeHTTP()
98165

166+
http.StubResponse(200, bytes.NewBufferString(`
167+
{ "data": { "repo_000": {
168+
"id": "REPOID",
169+
"name": "REPO",
170+
"owner": {"login": "OWNER"},
171+
"defaultBranchRef": {
172+
"name": "master",
173+
"target": {"oid": "deadbeef"}
174+
},
175+
"viewerPermission": "WRITE"
176+
} } }
177+
`))
178+
99179
jsonFile, _ := os.Open("../test/fixtures/issueList.json")
100180
defer jsonFile.Close()
101181
http.StubResponse(200, jsonFile)
@@ -120,9 +200,29 @@ func TestIssueList(t *testing.T) {
120200
}
121201

122202
func TestIssueList_withFlags(t *testing.T) {
123-
initBlankContext("OWNER/REPO", "master")
203+
ctx := context.NewBlank()
204+
ctx.SetBranch("master")
205+
ctx.SetRemotes(map[string]string{
206+
"origin": "OWNER/REPO",
207+
})
208+
initContext = func() context.Context {
209+
return ctx
210+
}
124211
http := initFakeHTTP()
125212

213+
http.StubResponse(200, bytes.NewBufferString(`
214+
{ "data": { "repo_000": {
215+
"id": "REPOID",
216+
"name": "REPO",
217+
"owner": {"login": "OWNER"},
218+
"defaultBranchRef": {
219+
"name": "master",
220+
"target": {"oid": "deadbeef"}
221+
},
222+
"viewerPermission": "WRITE"
223+
} } }
224+
`))
225+
126226
http.StubResponse(200, bytes.NewBufferString(`
127227
{ "data": { "repository": {
128228
"hasIssuesEnabled": true,

command/pr_create_test.go

Lines changed: 0 additions & 110 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,8 @@ import (
1010
"strings"
1111
"testing"
1212

13-
"github.com/cli/cli/api"
1413
"github.com/cli/cli/context"
1514
"github.com/cli/cli/git"
16-
"github.com/cli/cli/internal/ghrepo"
1715
"github.com/cli/cli/test"
1816
"github.com/cli/cli/utils"
1917
)
@@ -190,111 +188,3 @@ Creating pull request for feature into master in OWNER/REPO
190188
191189
`)
192190
}
193-
194-
func Test_resolvedRemotes_clonedFork(t *testing.T) {
195-
resolved := resolvedRemotes{
196-
baseOverride: nil,
197-
remotes: context.Remotes{
198-
&context.Remote{
199-
Remote: &git.Remote{Name: "origin"},
200-
Owner: "OWNER",
201-
Repo: "REPO",
202-
},
203-
},
204-
network: api.RepoNetworkResult{
205-
Repositories: []*api.Repository{
206-
&api.Repository{
207-
Name: "REPO",
208-
Owner: api.RepositoryOwner{Login: "OWNER"},
209-
ViewerPermission: "ADMIN",
210-
Parent: &api.Repository{
211-
Name: "REPO",
212-
Owner: api.RepositoryOwner{Login: "PARENTOWNER"},
213-
ViewerPermission: "READ",
214-
},
215-
},
216-
},
217-
},
218-
}
219-
220-
baseRepo, err := resolved.BaseRepo()
221-
if err != nil {
222-
t.Fatalf("got %v", err)
223-
}
224-
eq(t, ghrepo.FullName(baseRepo), "PARENTOWNER/REPO")
225-
baseRemote, err := resolved.RemoteForRepo(baseRepo)
226-
if baseRemote != nil || err == nil {
227-
t.Error("did not expect any remote for base")
228-
}
229-
230-
headRepo, err := resolved.HeadRepo()
231-
if err != nil {
232-
t.Fatalf("got %v", err)
233-
}
234-
eq(t, ghrepo.FullName(headRepo), "OWNER/REPO")
235-
headRemote, err := resolved.RemoteForRepo(headRepo)
236-
if err != nil {
237-
t.Fatalf("got %v", err)
238-
}
239-
if headRemote.Name != "origin" {
240-
t.Errorf("got remote %q", headRemote.Name)
241-
}
242-
}
243-
244-
func Test_resolvedRemotes_triangularSetup(t *testing.T) {
245-
resolved := resolvedRemotes{
246-
baseOverride: nil,
247-
remotes: context.Remotes{
248-
&context.Remote{
249-
Remote: &git.Remote{Name: "origin"},
250-
Owner: "OWNER",
251-
Repo: "REPO",
252-
},
253-
&context.Remote{
254-
Remote: &git.Remote{Name: "fork"},
255-
Owner: "MYSELF",
256-
Repo: "REPO",
257-
},
258-
},
259-
network: api.RepoNetworkResult{
260-
Repositories: []*api.Repository{
261-
&api.Repository{
262-
Name: "NEWNAME",
263-
Owner: api.RepositoryOwner{Login: "NEWOWNER"},
264-
ViewerPermission: "READ",
265-
},
266-
&api.Repository{
267-
Name: "REPO",
268-
Owner: api.RepositoryOwner{Login: "MYSELF"},
269-
ViewerPermission: "ADMIN",
270-
},
271-
},
272-
},
273-
}
274-
275-
baseRepo, err := resolved.BaseRepo()
276-
if err != nil {
277-
t.Fatalf("got %v", err)
278-
}
279-
eq(t, ghrepo.FullName(baseRepo), "NEWOWNER/NEWNAME")
280-
baseRemote, err := resolved.RemoteForRepo(baseRepo)
281-
if err != nil {
282-
t.Fatalf("got %v", err)
283-
}
284-
if baseRemote.Name != "origin" {
285-
t.Errorf("got remote %q", baseRemote.Name)
286-
}
287-
288-
headRepo, err := resolved.HeadRepo()
289-
if err != nil {
290-
t.Fatalf("got %v", err)
291-
}
292-
eq(t, ghrepo.FullName(headRepo), "MYSELF/REPO")
293-
headRemote, err := resolved.RemoteForRepo(headRepo)
294-
if err != nil {
295-
t.Fatalf("got %v", err)
296-
}
297-
if headRemote.Name != "fork" {
298-
t.Errorf("got remote %q", headRemote.Name)
299-
}
300-
}

context/context.go

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -51,38 +51,38 @@ func ResolveRemotesToRepos(remotes Remotes, client *api.Client, base string) (Re
5151
repos = append(repos, baseOverride)
5252
}
5353

54-
result := ResolvedRemotes{remotes: remotes}
54+
result := ResolvedRemotes{Remotes: remotes}
5555
if hasBaseOverride {
56-
result.baseOverride = baseOverride
56+
result.BaseOverride = baseOverride
5757
}
5858
networkResult, err := api.RepoNetwork(client, repos)
5959
if err != nil {
6060
return result, err
6161
}
62-
result.network = networkResult
62+
result.Network = networkResult
6363
return result, nil
6464
}
6565

6666
type ResolvedRemotes struct {
67-
baseOverride ghrepo.Interface
68-
remotes Remotes
69-
network api.RepoNetworkResult
67+
BaseOverride ghrepo.Interface
68+
Remotes Remotes
69+
Network api.RepoNetworkResult
7070
}
7171

7272
// BaseRepo is the first found repository in the "upstream", "github", "origin"
7373
// git remote order, resolved to the parent repo if the git remote points to a fork
7474
func (r ResolvedRemotes) BaseRepo() (*api.Repository, error) {
75-
if r.baseOverride != nil {
76-
for _, repo := range r.network.Repositories {
77-
if repo != nil && ghrepo.IsSame(repo, r.baseOverride) {
75+
if r.BaseOverride != nil {
76+
for _, repo := range r.Network.Repositories {
77+
if repo != nil && ghrepo.IsSame(repo, r.BaseOverride) {
7878
return repo, nil
7979
}
8080
}
8181
return nil, fmt.Errorf("failed looking up information about the '%s' repository",
82-
ghrepo.FullName(r.baseOverride))
82+
ghrepo.FullName(r.BaseOverride))
8383
}
8484

85-
for _, repo := range r.network.Repositories {
85+
for _, repo := range r.Network.Repositories {
8686
if repo == nil {
8787
continue
8888
}
@@ -97,7 +97,7 @@ func (r ResolvedRemotes) BaseRepo() (*api.Repository, error) {
9797

9898
// HeadRepo is the first found repository that has push access
9999
func (r ResolvedRemotes) HeadRepo() (*api.Repository, error) {
100-
for _, repo := range r.network.Repositories {
100+
for _, repo := range r.Network.Repositories {
101101
if repo != nil && repo.ViewerCanPush() {
102102
return repo, nil
103103
}
@@ -107,11 +107,11 @@ func (r ResolvedRemotes) HeadRepo() (*api.Repository, error) {
107107

108108
// RemoteForRepo finds the git remote that points to a repository
109109
func (r ResolvedRemotes) RemoteForRepo(repo ghrepo.Interface) (*Remote, error) {
110-
for i, remote := range r.remotes {
110+
for i, remote := range r.Remotes {
111111
if ghrepo.IsSame(remote, repo) ||
112112
// additionally, look up the resolved repository name in case this
113113
// git remote points to this repository via a redirect
114-
(r.network.Repositories[i] != nil && ghrepo.IsSame(r.network.Repositories[i], repo)) {
114+
(r.Network.Repositories[i] != nil && ghrepo.IsSame(r.Network.Repositories[i], repo)) {
115115
return remote, nil
116116
}
117117
}

0 commit comments

Comments
 (0)