MCPcopy
hub / github.com/cli/cli / TestPullRequestResolution

Function TestPullRequestResolution

pkg/cmd/pr/shared/find_refs_resolution_test.go:158–253  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

156}
157
158func TestPullRequestResolution(t *testing.T) {
159 t.Parallel()
160
161 baseRepo := ghrepo.New("owner", "repo")
162 baseRemote := ghContext.Remote{
163 Remote: &git.Remote{
164 Name: "upstream",
165 },
166 Repo: ghrepo.New("owner", "repo"),
167 }
168
169 forkRemote := ghContext.Remote{
170 Remote: &git.Remote{
171 Name: "origin",
172 },
173 Repo: ghrepo.New("otherowner", "repo-fork"),
174 }
175
176 t.Run("when the base repo is nil, returns an error", func(t *testing.T) {
177 t.Parallel()
178
179 resolver := NewPullRequestFindRefsResolver(stubGitConfigClient{}, dummyRemotesFn)
180 _, err := resolver.ResolvePullRequestRefs(nil, "", "")
181 require.Error(t, err)
182 })
183
184 t.Run("when the local branch name is empty, returns an error", func(t *testing.T) {
185 t.Parallel()
186
187 resolver := NewPullRequestFindRefsResolver(stubGitConfigClient{}, dummyRemotesFn)
188 _, err := resolver.ResolvePullRequestRefs(baseRepo, "", "")
189 require.Error(t, err)
190 })
191
192 t.Run("when the default pr head has a repo, it is used for the refs", func(t *testing.T) {
193 t.Parallel()
194
195 // Push revision is the first thing checked for resolution,
196 // so nothing else needs to be stubbed.
197 repoResolvedFromPushRevisionClient := stubGitConfigClient{
198 pushRevisionFn: stubPushRevision(git.RemoteTrackingRef{
199 Remote: "origin",
200 Branch: "feature-branch",
201 }, nil),
202 }
203
204 resolver := NewPullRequestFindRefsResolver(
205 repoResolvedFromPushRevisionClient,
206 stubRemotes(ghContext.Remotes{&baseRemote, &forkRemote}, nil),
207 )
208
209 refs, err := resolver.ResolvePullRequestRefs(baseRepo, "main", "feature-branch")
210 require.NoError(t, err)
211
212 expectedRefs := PRFindRefs{
213 qualifiedHeadRef: QualifiedHeadRef{
214 owner: o.Some("otherowner"),
215 branchName: "feature-branch",

Callers

nothing calls this directly

Calls 11

NewFunction · 0.92
stubPushRevisionFunction · 0.85
stubRemotesFunction · 0.85
stubBranchConfigFunction · 0.85
stubPushDefaultFunction · 0.85
stubRemotePushDefaultFunction · 0.85
EqualMethod · 0.80
RunMethod · 0.65
ErrorMethod · 0.45

Tested by

no test coverage detected