1package repository
2
3import (
4 "testing"
5 "time"
6
7 "github.com/stretchr/testify/require"
8)
9
10func TestMergedConfig(t *testing.T) {
11 local := NewMemConfig()
12 global := NewMemConfig()
13 merged := mergeConfig(local, global)
14
15 require.NoError(t, global.StoreBool("bool", true))
16 require.NoError(t, global.StoreString("string", "foo"))
17 require.NoError(t, global.StoreTimestamp("timestamp", time.Unix(1234, 0)))
18
19 val1, err := merged.ReadBool("bool")
20 require.NoError(t, err)
21 require.Equal(t, val1, true)
22
23 val2, err := merged.ReadString("string")
24 require.NoError(t, err)
25 require.Equal(t, val2, "foo")
26
27 val3, err := merged.ReadTimestamp("timestamp")
28 require.NoError(t, err)
29 require.Equal(t, val3, time.Unix(1234, 0))
30
31 require.NoError(t, local.StoreBool("bool", false))
32 require.NoError(t, local.StoreString("string", "bar"))
33 require.NoError(t, local.StoreTimestamp("timestamp", time.Unix(5678, 0)))
34
35 val1, err = merged.ReadBool("bool")
36 require.NoError(t, err)
37 require.Equal(t, val1, false)
38
39 val2, err = merged.ReadString("string")
40 require.NoError(t, err)
41 require.Equal(t, val2, "bar")
42
43 val3, err = merged.ReadTimestamp("timestamp")
44 require.NoError(t, err)
45 require.Equal(t, val3, time.Unix(5678, 0))
46
47 all, err := merged.ReadAll("")
48 require.NoError(t, err)
49 require.Equal(t, all, map[string]string{
50 "bool": "false",
51 "string": "bar",
52 "timestamp": "5678",
53 })
54}