@@ -88,6 +88,8 @@ func Test_SearchRepositories(t *testing.T) {
8888 "q" : "golang test" ,
8989 "page" : "1" ,
9090 "per_page" : "30" ,
91+ // Note: Not specifying 'fork' parameter here, which verifies that
92+ // when 'fork' is not provided in the request, it's not added to the query parameters
9193 }).andThen (
9294 mockResponse (t , http .StatusOK , mockSearchResult ),
9395 ),
@@ -99,6 +101,69 @@ func Test_SearchRepositories(t *testing.T) {
99101 expectError : false ,
100102 expectedResult : mockSearchResult ,
101103 },
104+ {
105+ name : "repository search with fork parameter" ,
106+ mockedClient : mock .NewMockedHTTPClient (
107+ mock .WithRequestMatchHandler (
108+ mock .GetSearchRepositories ,
109+ expectQueryParams (t , map [string ]string {
110+ "q" : "golang test fork:only" ,
111+ "page" : "1" ,
112+ "per_page" : "30" ,
113+ }).andThen (
114+ mockResponse (t , http .StatusOK , mockSearchResult ),
115+ ),
116+ ),
117+ ),
118+ requestArgs : map [string ]interface {}{
119+ "query" : "golang test" ,
120+ "fork" : "only" ,
121+ },
122+ expectError : false ,
123+ expectedResult : mockSearchResult ,
124+ },
125+ {
126+ name : "repository search with fork parameter (true)" ,
127+ mockedClient : mock .NewMockedHTTPClient (
128+ mock .WithRequestMatchHandler (
129+ mock .GetSearchRepositories ,
130+ expectQueryParams (t , map [string ]string {
131+ "q" : "golang test fork:true" ,
132+ "page" : "1" ,
133+ "per_page" : "30" ,
134+ }).andThen (
135+ mockResponse (t , http .StatusOK , mockSearchResult ),
136+ ),
137+ ),
138+ ),
139+ requestArgs : map [string ]interface {}{
140+ "query" : "golang test" ,
141+ "fork" : "true" ,
142+ },
143+ expectError : false ,
144+ expectedResult : mockSearchResult ,
145+ },
146+ {
147+ name : "repository search with fork parameter (false)" ,
148+ mockedClient : mock .NewMockedHTTPClient (
149+ mock .WithRequestMatchHandler (
150+ mock .GetSearchRepositories ,
151+ expectQueryParams (t , map [string ]string {
152+ "q" : "golang test" ,
153+ "page" : "1" ,
154+ "per_page" : "30" ,
155+ }).andThen (
156+ mockResponse (t , http .StatusOK , mockSearchResult ),
157+ ),
158+ ),
159+ ),
160+ requestArgs : map [string ]interface {}{
161+ "query" : "golang test" ,
162+ "fork" : "false" ,
163+ },
164+ expectError : false ,
165+ expectedResult : mockSearchResult ,
166+ },
102167 {
103168 name : "search fails" ,
104169 mockedClient : mock .NewMockedHTTPClient (
0 commit comments