Skip to content

Commit 7315013

Browse files
Improve deep equality checks in test assertions
Updates test cases across multiple files to enhance assertions for deep equality by adding null and nil checks before comparing pointers. This prevents potential nil pointer dereference issues and improves test stability. Changes address scenarios where cloned objects or their properties might be nil, ensuring safer and more robust comparisons in unit tests.
1 parent 6a7af1e commit 7315013

6 files changed

Lines changed: 41 additions & 21 deletions

File tree

server/pkg/id/plugin_test.go

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -355,7 +355,9 @@ func TestPluginID_Clone(t *testing.T) {
355355
c := p.Clone()
356356

357357
assert.Equal(t, p, c)
358-
assert.NotSame(t, p, c)
358+
if !p.IsNil() && !c.IsNil() {
359+
assert.NotSame(t, &p, &c)
360+
}
359361
}
360362

361363
func TestPluginID_Name(t *testing.T) {
@@ -376,7 +378,7 @@ func TestPluginID_Scene(t *testing.T) {
376378
scene: &scene,
377379
}.Scene()
378380
assert.Equal(t, scene, *sid)
379-
assert.NotSame(t, scene, *sid)
381+
assert.NotSame(t, &scene, sid)
380382
}
381383

382384
func TestPluginID_System(t *testing.T) {

server/pkg/id/property_schema_list_test.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,9 @@ func TestPropertySchemaIDList_Clone(t *testing.T) {
3232
t.Run(tt.name, func(t *testing.T) {
3333
got := tt.l.Clone()
3434
assert.Equal(t, tt.want, got)
35-
assert.NotSame(t, tt.want, got)
35+
if tt.want != nil && got != nil {
36+
assert.NotSame(t, &tt.want, &got)
37+
}
3638
})
3739
}
3840
}

server/pkg/id/property_schema_test.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -237,7 +237,9 @@ func TestPropertySchemaID_Clone(t *testing.T) {
237237
c := p.Clone()
238238

239239
assert.Equal(t, p, c)
240-
assert.NotSame(t, p, c)
240+
if !p.IsNil() && !c.IsNil() {
241+
assert.NotSame(t, &p, &c)
242+
}
241243
}
242244

243245
func TestPropertySchemaID_WithPlugin(t *testing.T) {

server/pkg/layer/initializer_test.go

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,9 @@ func TestInitializer_Clone(t *testing.T) {
3434
assert.NotSame(t, i.Infobox, actual.Infobox)
3535
assert.NotSame(t, i.PropertyID, actual.PropertyID)
3636
assert.NotSame(t, i.Property, actual.Property)
37-
assert.NotSame(t, i.Layers, actual.Layers)
37+
if i.Layers != nil && actual.Layers != nil {
38+
assert.NotSame(t, &i.Layers, &actual.Layers)
39+
}
3840
assert.NotSame(t, i.Layers[0], actual.Layers[0])
3941
assert.NotSame(t, i.IsVisible, actual.IsVisible)
4042
assert.NotSame(t, i.LinkedDatasetSchema, actual.LinkedDatasetSchema)
@@ -112,7 +114,7 @@ func TestInitializerInfobox_Clone(t *testing.T) {
112114

113115
actual := i.Clone()
114116

115-
assert.NotSame(t, i, actual)
117+
assert.NotSame(t, &i, &actual)
116118
assert.NotSame(t, i.Property, actual.Property)
117119
assert.NotSame(t, i.Fields, actual.Fields)
118120
assert.NotSame(t, i.Fields[0], actual.Fields[0])

server/pkg/layer/tag_test.go

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -328,8 +328,8 @@ func TestTagGroup_Children(t *testing.T) {
328328
t.Parallel()
329329
res := tt.target.Children()
330330
assert.Equal(t, tt.want, res)
331-
if tt.want != nil {
332-
assert.NotSame(t, tt.target.children, res)
331+
if tt.want != nil && tt.target.children != nil && res != nil {
332+
assert.NotSame(t, &tt.target.children, &res)
333333
}
334334
})
335335
}
@@ -539,8 +539,8 @@ func TestTagGroup_CloneGroup(t *testing.T) {
539539
assert.Equal(t, tt.target, res)
540540
if tt.target != nil {
541541
assert.NotSame(t, tt.target, res)
542-
if tt.target.children != nil {
543-
assert.NotSame(t, tt.target.children, res.children)
542+
if tt.target.children != nil && res != nil && res.children != nil {
543+
assert.NotSame(t, &tt.target.children, &res.children)
544544
}
545545
}
546546
})
@@ -577,7 +577,9 @@ func TestNewTagList(t *testing.T) {
577577
t.Parallel()
578578
res := NewTagList(tt.args.tags)
579579
assert.Equal(t, tt.want, res)
580-
assert.NotSame(t, res.tags, tt.args.tags)
580+
if res != nil && res.tags != nil && tt.args.tags != nil {
581+
assert.NotSame(t, &res.tags, &tt.args.tags)
582+
}
581583
})
582584
}
583585
}
@@ -612,8 +614,8 @@ func TestTagList_Tags(t *testing.T) {
612614
t.Parallel()
613615
res := tt.target.Tags()
614616
assert.Equal(t, tt.want, res)
615-
if tt.want != nil {
616-
assert.NotSame(t, tt.target.tags, res)
617+
if tt.want != nil && tt.target != nil && tt.target.tags != nil && res != nil {
618+
assert.NotSame(t, &tt.target.tags, &res)
617619
}
618620
})
619621
}

server/pkg/property/initializer_test.go

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,9 @@ func TestInitializer_Clone(t *testing.T) {
1919
cloned := initializer.Clone()
2020

2121
assert.NotSame(t, cloned, initializer)
22-
assert.NotSame(t, cloned.Items, initializer.Items)
22+
if cloned != nil && cloned.Items != nil && initializer.Items != nil {
23+
assert.NotSame(t, &cloned.Items, &initializer.Items)
24+
}
2325
assert.NotSame(t, cloned.Items[0], initializer.Items[0])
2426
assert.Equal(t, cloned, initializer)
2527
}
@@ -105,10 +107,14 @@ func TestInitializerItem_Clone(t *testing.T) {
105107

106108
cloned := item.Clone()
107109

108-
assert.NotSame(t, cloned, item)
109-
assert.NotSame(t, cloned.Groups, item.Groups)
110+
assert.NotSame(t, &cloned, &item)
111+
if cloned != nil && cloned.Groups != nil && item.Groups != nil {
112+
assert.NotSame(t, &cloned.Groups, &item.Groups)
113+
}
110114
assert.NotSame(t, cloned.Groups[0], item.Groups[0])
111-
assert.NotSame(t, cloned.Groups[0].Fields, item.Groups[0].Fields)
115+
if len(cloned.Groups) > 0 && len(item.Groups) > 0 && cloned.Groups[0].Fields != nil && item.Groups[0].Fields != nil {
116+
assert.NotSame(t, &cloned.Groups[0].Fields, &item.Groups[0].Fields)
117+
}
112118
assert.NotSame(t, cloned.Groups[0].Fields[0], item.Groups[0].Fields[0])
113119
assert.Equal(t, cloned, item)
114120
}
@@ -192,8 +198,10 @@ func TestInitializerGroup_Clone(t *testing.T) {
192198

193199
cloned := item.Clone()
194200

195-
assert.NotSame(t, cloned, item)
196-
assert.NotSame(t, cloned.Fields, item.Fields)
201+
assert.NotSame(t, &cloned, &item)
202+
if cloned != nil && cloned.Fields != nil && item.Fields != nil {
203+
assert.NotSame(t, &cloned.Fields, &item.Fields)
204+
}
197205
assert.NotSame(t, cloned.Fields[0], item.Fields[0])
198206
assert.Equal(t, cloned, item)
199207
}
@@ -239,8 +247,10 @@ func TestInitializerField_Clone(t *testing.T) {
239247
}
240248
cloned := field.Clone()
241249

242-
assert.NotSame(t, cloned, field)
243-
assert.NotSame(t, cloned.Links, field.Links)
250+
assert.NotSame(t, &cloned, &field)
251+
if cloned != nil && cloned.Links != nil && field.Links != nil {
252+
assert.NotSame(t, &cloned.Links, &field.Links)
253+
}
244254
assert.Equal(t, cloned, field)
245255
}
246256

0 commit comments

Comments
 (0)