86 lines
1.3 KiB
Go
86 lines
1.3 KiB
Go
package yaml
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func TestPatch(t *testing.T) {
|
|
b := []byte(`# prefix`)
|
|
|
|
b, err := Patch(b, "camera1", "url1", "streams")
|
|
require.Nil(t, err)
|
|
|
|
require.Equal(t, `# prefix
|
|
streams:
|
|
camera1: url1
|
|
`, string(b))
|
|
|
|
b, err = Patch(b, "camera2", []string{"url2", "url3"}, "streams")
|
|
require.Nil(t, err)
|
|
|
|
require.Equal(t, `# prefix
|
|
streams:
|
|
camera1: url1
|
|
camera2:
|
|
- url2
|
|
- url3
|
|
`, string(b))
|
|
|
|
b, err = Patch(b, "camera1", "url4", "streams")
|
|
require.Nil(t, err)
|
|
|
|
require.Equal(t, `# prefix
|
|
streams:
|
|
camera1: url4
|
|
camera2:
|
|
- url2
|
|
- url3
|
|
`, string(b))
|
|
|
|
b, err = Patch(b, "camera2", "url5", "streams")
|
|
require.Nil(t, err)
|
|
|
|
require.Equal(t, `# prefix
|
|
streams:
|
|
camera1: url4
|
|
camera2: url5
|
|
`, string(b))
|
|
|
|
b, err = Patch(b, "camera1", nil, "streams")
|
|
require.Nil(t, err)
|
|
|
|
require.Equal(t, `# prefix
|
|
streams:
|
|
camera2: url5
|
|
`, string(b))
|
|
}
|
|
|
|
func TestPatchParings(t *testing.T) {
|
|
b := []byte(`homekit:
|
|
camera1:
|
|
pin: 123-45-678
|
|
streams:
|
|
camera1: url1
|
|
`)
|
|
|
|
pairings := map[string]string{
|
|
"client1": "public1",
|
|
"client2": "public2",
|
|
}
|
|
|
|
b, err := Patch(b, "pairings", pairings, "homekit", "camera1")
|
|
require.Nil(t, err)
|
|
|
|
require.Equal(t, `homekit:
|
|
camera1:
|
|
pin: 123-45-678
|
|
pairings:
|
|
client1: public1
|
|
client2: public2
|
|
streams:
|
|
camera1: url1
|
|
`, string(b))
|
|
}
|