...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 package membership
16
17 import (
18 "testing"
19
20 "github.com/coreos/go-semver/semver"
21 "github.com/stretchr/testify/assert"
22 "go.etcd.io/etcd/server/v3/etcdserver/api/v2store"
23 "go.uber.org/zap/zaptest"
24 )
25
26 func TestIsMetaStoreOnly(t *testing.T) {
27 lg := zaptest.NewLogger(t)
28 s := v2store.New("/0", "/1")
29
30 metaOnly, err := IsMetaStoreOnly(s)
31 assert.NoError(t, err)
32 assert.True(t, metaOnly, "Just created v2store should be meta-only")
33
34 mustSaveClusterVersionToStore(lg, s, semver.New("3.5.17"))
35 metaOnly, err = IsMetaStoreOnly(s)
36 assert.NoError(t, err)
37 assert.True(t, metaOnly, "Just created v2store should be meta-only")
38
39 mustSaveMemberToStore(lg, s, &Member{ID: 0x00abcd})
40 metaOnly, err = IsMetaStoreOnly(s)
41 assert.NoError(t, err)
42 assert.True(t, metaOnly, "Just created v2store should be meta-only")
43
44 _, err = s.Create("/1/foo", false, "v1", false, v2store.TTLOptionSet{ExpireTime: v2store.Permanent})
45 assert.NoError(t, err)
46 metaOnly, err = IsMetaStoreOnly(s)
47 assert.NoError(t, err)
48 assert.False(t, metaOnly, "Just created v2store should be meta-only")
49
50 _, err = s.Delete("/1/foo", false, false)
51 assert.NoError(t, err)
52 assert.NoError(t, err)
53 assert.False(t, metaOnly, "Just created v2store should be meta-only")
54 }
55
View as plain text