Handle simple string slice

This commit is contained in:
Thomas Pelletier
2021-03-13 18:45:03 -05:00
parent 21d3e85fcc
commit d8be04d4a8
4 changed files with 145 additions and 33 deletions
+23 -1
View File
@@ -129,6 +129,28 @@ func TestPushValue_Struct(t *testing.T) {
}
}
func TestPushNew(t *testing.T) {
t.Run("slice of strings", func(t *testing.T) {
type Doc struct {
A []string
}
d := Doc{}
x, err := scope(reflect.ValueOf(&d).Elem(), "A")
require.NoError(t, err)
n, err := x.pushNew()
require.NoError(t, err)
require.NoError(t, n.setString("hello"))
require.Equal(t, []string{"hello"}, d.A)
n, err = x.pushNew()
require.NoError(t, err)
require.NoError(t, n.setString("world"))
require.Equal(t, []string{"hello", "world"}, d.A)
})
}
func TestScope_Struct(t *testing.T) {
examples := []struct {
desc string
@@ -157,7 +179,7 @@ func TestScope_Struct(t *testing.T) {
if e.err {
require.Error(t, err)
} else {
x2, ok := x.(structTarget)
x2, ok := x.(valueTarget)
require.True(t, ok)
x2.get()
}