Chore: Fix DiffReporter.Paths to properly initialize slice (#70870)

This commit is contained in:
Yuri Tseretyan 2023-06-28 18:08:05 -04:00 committed by GitHub
parent 7f8fe45a06
commit 2e0dae8fa0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 8 additions and 1 deletions

View File

@ -86,7 +86,7 @@ func (r DiffReport) String() string {
// Paths returns the slice of paths of the current DiffReport
func (r DiffReport) Paths() []string {
var result = make([]string, len(r))
var result = make([]string, 0, len(r))
for _, diff := range r {
result = append(result, diff.Path)
}

View File

@ -92,6 +92,7 @@ func TestIsAddedDeleted_Collections(t *testing.T) {
t.Run("IsAddOperation=true, IsDeleted=false", func(t *testing.T) {
diff := testStructDiff(left, right)
require.Lenf(t, diff, 1, "diff was expected to have only one field %s but got %v", field, diff.String())
require.Len(t, diff.Paths(), 1)
d := diff[0]
require.Truef(t, d.IsAddOperation(), "diff %v should be treated as Add operation but it wasn't", d)
require.Falsef(t, d.IsDeleteOperation(), "diff %v should not be treated as Delete operation but it was", d)
@ -99,6 +100,7 @@ func TestIsAddedDeleted_Collections(t *testing.T) {
t.Run("IsDeleted=true, IsAddOperation=false", func(t *testing.T) {
diff := testStructDiff(right, left)
require.Lenf(t, diff, 1, "diff was expected to have only one field %s but got %v", field, diff.String())
require.Len(t, diff.Paths(), 1)
d := diff[0]
require.Truef(t, d.IsDeleteOperation(), "diff %v should be treated as Delete operation but it wasn't", d)
require.Falsef(t, d.IsAddOperation(), "diff %v should not be treated as Delete operation but it was", d)
@ -123,6 +125,7 @@ func TestIsAddedDeleted_Collections(t *testing.T) {
diff := testStructDiff(left, right)
require.Len(t, diff, 8)
require.Len(t, diff.Paths(), 8)
for _, d := range diff {
assert.Falsef(t, d.IsAddOperation(), "diff %v was not supposed to be Add operation", d.String())
assert.Falsef(t, d.IsDeleteOperation(), "diff %v was not supposed to be Delete operation", d.String())
@ -143,6 +146,7 @@ func TestGetDiffsForField(t *testing.T) {
result := diff.GetDiffsForField("Property")
require.Len(t, result, 1)
require.Len(t, result.Paths(), 1)
require.Equal(t, "Property", result[0].Path)
})
@ -158,6 +162,7 @@ func TestGetDiffsForField(t *testing.T) {
result := diff.GetDiffsForField("Property")
require.Len(t, result, 2)
require.Len(t, result.Paths(), 2)
})
t.Run("should return all elements of array", func(t *testing.T) {
@ -175,6 +180,7 @@ func TestGetDiffsForField(t *testing.T) {
result := diff.GetDiffsForField("Property")
require.Len(t, result, 3)
require.Len(t, result.Paths(), 3)
})
t.Run("should find nothing if parent path does not exist", func(t *testing.T) {
@ -192,5 +198,6 @@ func TestGetDiffsForField(t *testing.T) {
result := diff.GetDiffsForField("Proper")
require.Empty(t, result)
require.Empty(t, result.Paths())
})
}