mennanov / fieldmask-utils

Protobuf Field Mask Go utils
MIT License
229 stars 26 forks source link

nil slice in src not working #26

Closed shivam2298 closed 1 year ago

shivam2298 commented 1 year ago

@mennanov nil slice is being set as empty


 func TestStructToStruct_EntireSlice_NonEmptyDst(t *testing.T) {
    type A struct {
        Field1 string
        Field2 int
    }
    type B struct {
        Field1 string
        A      []A
    }
    src := &B{
        Field1: "src StringerB field1",
        A:      nil,
    }
    dst := &B{
        Field1: "dst StringerB field1",
        A: []A{
            {
                Field1: "dst StringerA field1 0",
                Field2: 10,
            },
            {
                Field1: "dst StringerA field1 1",
                Field2: 20,
            },
            {
                Field1: "dst StringerA field1 2",
                Field2: 30,
            },
        },
    }

    mask := fieldmask_utils.MaskFromString("Field1,A")
    err := fieldmask_utils.StructToStruct(mask, src, dst)
    require.NoError(t, err)
    assert.Equal(t, &B{
        Field1: src.Field1,
        A:      src.A,
    }, dst)
}

output - `@@ -2,3 +2,4 @@ Field1: (string) (len=20) "src StringerB field1",

mennanov commented 1 year ago

Fixed in https://github.com/mennanov/fieldmask-utils/commit/a74521df12f09f92f8f99ad93e1f1e76527c27e5