@@ -23,7 +23,7 @@ import (
2323
2424 "github.com/jarcoal/httpmock"
2525
26- "github.com/openfga/go-sdk"
26+ openfga "github.com/openfga/go-sdk"
2727 . "github.com/openfga/go-sdk/client"
2828)
2929
@@ -218,6 +218,53 @@ func TestOpenFgaClient(t *testing.T) {
218218 }
219219 })
220220
221+ t .Run ("ListStoresWithNameFilter" , func (t * testing.T ) {
222+ filteredStoreName := "Filtered Store"
223+ test := TestDefinition {
224+ Name : "ListStoresWithNameFilter" ,
225+ JsonResponse : fmt .Sprintf (`{"stores":[{"id":"01GXSA8YR785C4FYS3C0RTG7B1","name":"%s","created_at":"2023-01-01T23:23:23.000000000Z","updated_at":"2023-01-01T23:23:23.000000000Z"}]}` , filteredStoreName ),
226+ ResponseStatus : http .StatusOK ,
227+ Method : http .MethodGet ,
228+ }
229+
230+ var expectedResponse openfga.ListStoresResponse
231+ if err := json .Unmarshal ([]byte (test .JsonResponse ), & expectedResponse ); err != nil {
232+ t .Fatalf ("%v" , err )
233+ }
234+
235+ httpmock .Activate ()
236+ defer httpmock .DeactivateAndReset ()
237+ httpmock .RegisterResponder (test .Method , fmt .Sprintf ("%s/stores" , fgaClient .GetConfig ().ApiUrl ),
238+ func (req * http.Request ) (* http.Response , error ) {
239+ // Verify that the name parameter is included in the query
240+ if req .URL .Query ().Get ("name" ) != filteredStoreName {
241+ t .Fatalf ("expected name parameter to be '%s', got %s" , filteredStoreName , req .URL .Query ().Get ("name" ))
242+ }
243+ resp , err := httpmock .NewJsonResponse (test .ResponseStatus , expectedResponse )
244+ if err != nil {
245+ return httpmock .NewStringResponse (http .StatusInternalServerError , "" ), nil
246+ }
247+ return resp , nil
248+ },
249+ )
250+
251+ options := ClientListStoresOptions {
252+ Name : openfga .PtrString (filteredStoreName ),
253+ }
254+ got , err := fgaClient .ListStores (context .Background ()).Options (options ).Execute ()
255+ if err != nil {
256+ t .Fatalf ("%v" , err )
257+ }
258+
259+ if len (got .Stores ) != 1 {
260+ t .Fatalf ("expected stores of length 1, got %v" , len (got .Stores ))
261+ }
262+
263+ if got .Stores [0 ].Name != filteredStoreName {
264+ t .Fatalf ("expected store name to be '%s', got %s" , filteredStoreName , got .Stores [0 ].Name )
265+ }
266+ })
267+
221268 t .Run ("CreateStore" , func (t * testing.T ) {
222269 test := TestDefinition {
223270 Name : "CreateStore" ,
0 commit comments