Skip to content

Commit bce7ce9

Browse files
authored
fix: pass pointers to slices in Call methods for filter operations (#402)
* fix: pass pointers to slices in Call methods for filter operations Fixed 4 instances where slices were passed by value instead of by reference to the Call method, causing JSON unmarshaling to fail silently and return nil: - filter_impl.go: Favorite() method (line 148) - filter_impl.go: My() method (line 173) - filter_share_impl.go: Gets() method (line 148) - filter_share_impl.go: Add() method (line 170) This follows the same pattern as the fix for #400 and ensures proper data population. * test: fix mocks to expect pointer arguments in filter tests Updated test mocks to use mock.Anything instead of specific type assertions since the actual Call method now receives pointers to slices (*[]*Type) instead of values ([]*Type). This matches the implementation changes where we pass &slice instead of slice to properly unmarshal JSON responses.
1 parent ec1fb1d commit bce7ce9

4 files changed

Lines changed: 14 additions & 12 deletions

File tree

jira/internal/filter_impl.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,7 @@ func (i *internalFilterServiceImpl) Favorite(ctx context.Context) ([]*model.Filt
145145
}
146146

147147
var filters []*model.FilterScheme
148-
response, err := i.c.Call(request, filters)
148+
response, err := i.c.Call(request, &filters)
149149
if err != nil {
150150
return nil, response, err
151151
}
@@ -170,7 +170,7 @@ func (i *internalFilterServiceImpl) My(ctx context.Context, favorites bool, expa
170170
}
171171

172172
var filters []*model.FilterScheme
173-
response, err := i.c.Call(request, filters)
173+
response, err := i.c.Call(request, &filters)
174174
if err != nil {
175175
return nil, response, err
176176
}

jira/internal/filter_impl_test.go

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import (
99
"testing"
1010

1111
"github.com/stretchr/testify/assert"
12+
"github.com/stretchr/testify/mock"
1213

1314
model "github.com/ctreminiom/go-atlassian/v2/pkg/infra/models"
1415
"github.com/ctreminiom/go-atlassian/v2/service"
@@ -205,7 +206,7 @@ func TestFilterService_Favorite(t *testing.T) {
205206

206207
client.On("Call",
207208
&http.Request{},
208-
[]*model.FilterScheme(nil)).
209+
mock.Anything).
209210
Return(&model.ResponseScheme{}, nil)
210211

211212
fields.c = client
@@ -233,7 +234,7 @@ func TestFilterService_Favorite(t *testing.T) {
233234

234235
client.On("Call",
235236
&http.Request{},
236-
[]*model.FilterScheme(nil)).
237+
mock.Anything).
237238
Return(&model.ResponseScheme{}, nil)
238239

239240
fields.c = client
@@ -349,7 +350,7 @@ func TestFilterService_My(t *testing.T) {
349350

350351
client.On("Call",
351352
&http.Request{},
352-
[]*model.FilterScheme(nil)).
353+
mock.Anything).
353354
Return(&model.ResponseScheme{}, nil)
354355

355356
fields.c = client
@@ -379,7 +380,7 @@ func TestFilterService_My(t *testing.T) {
379380

380381
client.On("Call",
381382
&http.Request{},
382-
[]*model.FilterScheme(nil)).
383+
mock.Anything).
383384
Return(&model.ResponseScheme{}, nil)
384385

385386
fields.c = client

jira/internal/filter_share_impl.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,7 @@ func (i *internalFilterShareImpl) Gets(ctx context.Context, filterID int) ([]*mo
145145
}
146146

147147
var filters []*model.SharePermissionScheme
148-
response, err := i.c.Call(request, filters)
148+
response, err := i.c.Call(request, &filters)
149149
if err != nil {
150150
return nil, response, err
151151
}
@@ -167,7 +167,7 @@ func (i *internalFilterShareImpl) Add(ctx context.Context, filterID int, payload
167167
}
168168

169169
var permissions []*model.SharePermissionScheme
170-
response, err := i.c.Call(request, permissions)
170+
response, err := i.c.Call(request, &permissions)
171171
if err != nil {
172172
return nil, response, err
173173
}

jira/internal/filter_share_impl_test.go

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import (
99
"testing"
1010

1111
"github.com/stretchr/testify/assert"
12+
"github.com/stretchr/testify/mock"
1213

1314
model "github.com/ctreminiom/go-atlassian/v2/pkg/infra/models"
1415
"github.com/ctreminiom/go-atlassian/v2/service"
@@ -326,7 +327,7 @@ func TestFilterShareService_Gets(t *testing.T) {
326327

327328
client.On("Call",
328329
&http.Request{},
329-
[]*model.SharePermissionScheme(nil)).
330+
mock.Anything).
330331
Return(&model.ResponseScheme{}, nil)
331332

332333
fields.c = client
@@ -354,7 +355,7 @@ func TestFilterShareService_Gets(t *testing.T) {
354355

355356
client.On("Call",
356357
&http.Request{},
357-
[]*model.SharePermissionScheme(nil)).
358+
mock.Anything).
358359
Return(&model.ResponseScheme{}, nil)
359360

360361
fields.c = client
@@ -484,7 +485,7 @@ func TestFilterShareService_Add(t *testing.T) {
484485

485486
client.On("Call",
486487
&http.Request{},
487-
[]*model.SharePermissionScheme(nil)).
488+
mock.Anything).
488489
Return(&model.ResponseScheme{}, nil)
489490

490491
fields.c = client
@@ -513,7 +514,7 @@ func TestFilterShareService_Add(t *testing.T) {
513514

514515
client.On("Call",
515516
&http.Request{},
516-
[]*model.SharePermissionScheme(nil)).
517+
mock.Anything).
517518
Return(&model.ResponseScheme{}, nil)
518519

519520
fields.c = client

0 commit comments

Comments
 (0)