(t *testing.T)
| 156 | } |
| 157 | |
| 158 | func 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", |
nothing calls this directly
no test coverage detected