@@ -160,7 +160,7 @@ func TestCheckout_NumericTarget_StacksNotAvailable(t *testing.T) {
160160 cfg , outR , errR := config .NewTestConfig ()
161161 setTestTokenForHost (cfg , "gho_test_oauth_token" )
162162 cfg .GitHubClientOverride = & github.MockClient {
163- ListStacksFn : func () ([] github.RemoteStack , error ) {
163+ FindStackForPRFn : func (int ) (* github.RemoteStack , error ) {
164164 return nil , & api.HTTPError {StatusCode : 404 , Message : "Not Found" }
165165 },
166166 }
@@ -184,10 +184,8 @@ func TestCheckout_NumericTarget_PRNotInStack(t *testing.T) {
184184
185185 cfg , outR , errR := config .NewTestConfig ()
186186 cfg .GitHubClientOverride = & github.MockClient {
187- ListStacksFn : func () ([]github.RemoteStack , error ) {
188- return []github.RemoteStack {
189- {ID : 1 , PullRequests : []int {10 , 11 }},
190- }, nil
187+ FindStackForPRFn : func (int ) (* github.RemoteStack , error ) {
188+ return nil , nil // PR 99 is not part of any stack
191189 },
192190 }
193191
@@ -243,10 +241,8 @@ func TestCheckout_NumericTarget_NewStack(t *testing.T) {
243241
244242 cfg , outR , errR := config .NewTestConfig ()
245243 cfg .GitHubClientOverride = & github.MockClient {
246- ListStacksFn : func () ([]github.RemoteStack , error ) {
247- return []github.RemoteStack {
248- {ID : 42 , PullRequests : []int {10 , 11 , 12 }},
249- }, nil
244+ FindStackForPRFn : func (int ) (* github.RemoteStack , error ) {
245+ return & github.RemoteStack {ID : 42 , Number : 42 , PullRequests : []int {10 , 11 , 12 }}, nil
250246 },
251247 FindPRByNumberFn : func (number int ) (* github.PullRequest , error ) {
252248 prs := map [int ]* github.PullRequest {
@@ -331,10 +327,8 @@ func TestCheckout_NumericTarget_BranchExistsNoStack(t *testing.T) {
331327
332328 cfg , outR , errR := config .NewTestConfig ()
333329 cfg .GitHubClientOverride = & github.MockClient {
334- ListStacksFn : func () ([]github.RemoteStack , error ) {
335- return []github.RemoteStack {
336- {ID : 99 , PullRequests : []int {10 , 11 }},
337- }, nil
330+ FindStackForPRFn : func (int ) (* github.RemoteStack , error ) {
331+ return & github.RemoteStack {ID : 99 , Number : 99 , PullRequests : []int {10 , 11 }}, nil
338332 },
339333 FindPRByNumberFn : func (number int ) (* github.PullRequest , error ) {
340334 prs := map [int ]* github.PullRequest {
@@ -445,11 +439,9 @@ func TestCheckout_NumericTarget_LocalMiss_RemoteMatch(t *testing.T) {
445439 apiCalled := false
446440 cfg , outR , errR := config .NewTestConfig ()
447441 cfg .GitHubClientOverride = & github.MockClient {
448- ListStacksFn : func () ([] github.RemoteStack , error ) {
442+ FindStackForPRFn : func (int ) (* github.RemoteStack , error ) {
449443 apiCalled = true
450- return []github.RemoteStack {
451- {ID : 99 , PullRequests : []int {10 , 11 }},
452- }, nil
444+ return & github.RemoteStack {ID : 99 , Number : 99 , PullRequests : []int {10 , 11 }}, nil
453445 },
454446 FindPRByNumberFn : func (number int ) (* github.PullRequest , error ) {
455447 prs := map [int ]* github.PullRequest {
@@ -464,7 +456,7 @@ func TestCheckout_NumericTarget_LocalMiss_RemoteMatch(t *testing.T) {
464456 _ = collectOutput (cfg , outR , errR )
465457
466458 require .NoError (t , err )
467- assert .True (t , apiCalled , "should have called ListStacks API when local miss" )
459+ assert .True (t , apiCalled , "should have queried the remote stack API when local miss" )
468460 assert .Equal (t , "feat-2" , checkedOut )
469461}
470462
@@ -493,8 +485,8 @@ func TestCheckout_NumericTarget_FallbackToBranchName(t *testing.T) {
493485
494486 cfg , outR , errR := config .NewTestConfig ()
495487 cfg .GitHubClientOverride = & github.MockClient {
496- ListStacksFn : func () ([] github.RemoteStack , error ) {
497- return []github. RemoteStack {} , nil // no remote stacks
488+ FindStackForPRFn : func (int ) (* github.RemoteStack , error ) {
489+ return nil , nil // no remote stack contains this PR
498490 },
499491 }
500492
@@ -527,11 +519,9 @@ func TestCheckout_NumericTarget_CompositionMismatch_NonInteractive(t *testing.T)
527519
528520 cfg , outR , errR := config .NewTestConfig ()
529521 cfg .GitHubClientOverride = & github.MockClient {
530- ListStacksFn : func () ([] github.RemoteStack , error ) {
522+ FindStackForPRFn : func (int ) (* github.RemoteStack , error ) {
531523 // Remote stack has PRs 10, 11, 12 (extra PR added)
532- return []github.RemoteStack {
533- {ID : 42 , PullRequests : []int {10 , 11 , 12 }},
534- }, nil
524+ return & github.RemoteStack {ID : 42 , Number : 42 , PullRequests : []int {10 , 11 , 12 }}, nil
535525 },
536526 FindPRByNumberFn : func (number int ) (* github.PullRequest , error ) {
537527 prs := map [int ]* github.PullRequest {
@@ -590,10 +580,8 @@ func TestCheckout_NumericTarget_ClosedMergedPR(t *testing.T) {
590580
591581 cfg , outR , errR := config .NewTestConfig ()
592582 cfg .GitHubClientOverride = & github.MockClient {
593- ListStacksFn : func () ([]github.RemoteStack , error ) {
594- return []github.RemoteStack {
595- {ID : 50 , PullRequests : []int {10 , 11 }},
596- }, nil
583+ FindStackForPRFn : func (int ) (* github.RemoteStack , error ) {
584+ return & github.RemoteStack {ID : 50 , Number : 50 , PullRequests : []int {10 , 11 }}, nil
597585 },
598586 FindPRByNumberFn : func (number int ) (* github.PullRequest , error ) {
599587 prs := map [int ]* github.PullRequest {
@@ -662,10 +650,8 @@ func TestCheckout_NumericTarget_MergedBranchDeletedFromRemote(t *testing.T) {
662650
663651 cfg , outR , errR := config .NewTestConfig ()
664652 cfg .GitHubClientOverride = & github.MockClient {
665- ListStacksFn : func () ([]github.RemoteStack , error ) {
666- return []github.RemoteStack {
667- {ID : 60 , PullRequests : []int {10 , 11 }},
668- }, nil
653+ FindStackForPRFn : func (int ) (* github.RemoteStack , error ) {
654+ return & github.RemoteStack {ID : 60 , Number : 60 , PullRequests : []int {10 , 11 }}, nil
669655 },
670656 FindPRByNumberFn : func (number int ) (* github.PullRequest , error ) {
671657 prs := map [int ]* github.PullRequest {
@@ -698,10 +684,8 @@ func TestCheckout_NumericTarget_AllPRsMerged(t *testing.T) {
698684
699685 cfg , outR , errR := config .NewTestConfig ()
700686 cfg .GitHubClientOverride = & github.MockClient {
701- ListStacksFn : func () ([]github.RemoteStack , error ) {
702- return []github.RemoteStack {
703- {ID : 70 , PullRequests : []int {10 , 11 }},
704- }, nil
687+ FindStackForPRFn : func (int ) (* github.RemoteStack , error ) {
688+ return & github.RemoteStack {ID : 70 , Number : 70 , PullRequests : []int {10 , 11 }}, nil
705689 },
706690 FindPRByNumberFn : func (number int ) (* github.PullRequest , error ) {
707691 prs := map [int ]* github.PullRequest {
@@ -732,7 +716,7 @@ func TestCheckout_NumericTarget_APIError(t *testing.T) {
732716
733717 cfg , outR , errR := config .NewTestConfig ()
734718 cfg .GitHubClientOverride = & github.MockClient {
735- ListStacksFn : func () ([] github.RemoteStack , error ) {
719+ FindStackForPRFn : func (int ) (* github.RemoteStack , error ) {
736720 return nil , fmt .Errorf ("network error" )
737721 },
738722 }
@@ -796,8 +780,8 @@ func TestCheckout_NumericTarget_EmptyStacks(t *testing.T) {
796780
797781 cfg , outR , errR := config .NewTestConfig ()
798782 cfg .GitHubClientOverride = & github.MockClient {
799- ListStacksFn : func () ([] github.RemoteStack , error ) {
800- return []github. RemoteStack {} , nil // no stacks at all
783+ FindStackForPRFn : func (int ) (* github.RemoteStack , error ) {
784+ return nil , nil // no stacks at all
801785 },
802786 }
803787
@@ -903,34 +887,6 @@ func TestStackCompositionMatches(t *testing.T) {
903887 }
904888}
905889
906- func TestFindRemoteStackForPR (t * testing.T ) {
907- mock := & github.MockClient {
908- ListStacksFn : func () ([]github.RemoteStack , error ) {
909- return []github.RemoteStack {
910- {ID : 1 , PullRequests : []int {10 , 11 }},
911- {ID : 2 , PullRequests : []int {20 , 21 , 22 }},
912- }, nil
913- },
914- }
915-
916- // Found in first stack
917- rs , err := findRemoteStackForPR (mock , 11 )
918- require .NoError (t , err )
919- require .NotNil (t , rs )
920- assert .Equal (t , 1 , rs .ID )
921-
922- // Found in second stack
923- rs , err = findRemoteStackForPR (mock , 21 )
924- require .NoError (t , err )
925- require .NotNil (t , rs )
926- assert .Equal (t , 2 , rs .ID )
927-
928- // Not found
929- rs , err = findRemoteStackForPR (mock , 99 )
930- require .NoError (t , err )
931- assert .Nil (t , rs )
932- }
933-
934890func TestCheckout_ByPRURL_Local (t * testing.T ) {
935891 // When a PR URL resolves to a locally tracked stack, no API call needed
936892 gitDir := t .TempDir ()
@@ -973,14 +929,14 @@ func TestCheckout_ByPRURL_Remote(t *testing.T) {
973929 }
974930
975931 restore := git .SetOps (& git.MockOps {
976- GitDirFn : func () (string , error ) { return gitDir , nil },
977- CurrentBranchFn : func () (string , error ) { return "main" , nil },
978- BranchExistsFn : func (name string ) bool { return name == "main" },
979- FetchFn : func (string ) error { return nil },
980- CreateBranchFn : func (string , string ) error { return nil },
932+ GitDirFn : func () (string , error ) { return gitDir , nil },
933+ CurrentBranchFn : func () (string , error ) { return "main" , nil },
934+ BranchExistsFn : func (name string ) bool { return name == "main" },
935+ FetchFn : func (string ) error { return nil },
936+ CreateBranchFn : func (string , string ) error { return nil },
981937 SetUpstreamTrackingFn : func (string , string ) error { return nil },
982- RevParseFn : func (string ) (string , error ) { return "abc123" , nil },
983- ResolveRemoteFn : func (string ) (string , error ) { return "origin" , nil },
938+ RevParseFn : func (string ) (string , error ) { return "abc123" , nil },
939+ ResolveRemoteFn : func (string ) (string , error ) { return "origin" , nil },
984940 CheckoutBranchFn : func (name string ) error {
985941 checkedOut = name
986942 return nil
@@ -993,10 +949,8 @@ func TestCheckout_ByPRURL_Remote(t *testing.T) {
993949
994950 cfg , outR , errR := config .NewTestConfig ()
995951 cfg .GitHubClientOverride = & github.MockClient {
996- ListStacksFn : func () ([]github.RemoteStack , error ) {
997- return []github.RemoteStack {
998- {ID : 1 , PullRequests : []int {10 , 11 }},
999- }, nil
952+ FindStackForPRFn : func (int ) (* github.RemoteStack , error ) {
953+ return & github.RemoteStack {ID : 1 , Number : 1 , PullRequests : []int {10 , 11 }}, nil
1000954 },
1001955 FindPRByNumberFn : func (n int ) (* github.PullRequest , error ) {
1002956 if pr , ok := prDB [n ]; ok {
0 commit comments