MCPcopy Create free account
hub / github.com/FairwindsOps/gemini / TestRestoreHandler

Function TestRestoreHandler

pkg/controller/controller_test.go:122–171  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

120}
121
122func TestRestoreHandler(t *testing.T) {
123 ctrl, client := newTestController()
124 sgName := "foo"
125 sgNamespace := "default"
126 sg := newSnapshotGroup(sgName, sgNamespace)
127 snaps, err := snapshots.ListSnapshots(sg)
128 assert.NoError(t, err)
129 assert.Equal(t, 0, len(snaps))
130
131 _, err = client.SnapshotGroupClient.SnapshotGroups(sgNamespace).Create(context.Background(), sg, metav1.CreateOptions{})
132 assert.NoError(t, err)
133
134 event := workItem{
135 name: sgName,
136 namespace: sgNamespace,
137 snapshotGroup: sg,
138 task: backupTask,
139 }
140 err = ctrl.syncHandler(event)
141 assert.NoError(t, err)
142
143 snaps, err = snapshots.ListSnapshots(sg)
144 assert.NoError(t, err)
145 assert.Equal(t, 1, len(snaps))
146 assert.Equal(t, []string{"1 second"}, snaps[0].Intervals)
147
148 pvcClient := client.K8s.CoreV1().PersistentVolumeClaims(sg.ObjectMeta.Namespace)
149 pvc, err := pvcClient.Get(context.TODO(), sg.ObjectMeta.Name, metav1.GetOptions{})
150 assert.NoError(t, err)
151 assert.Equal(t, "gemini", pvc.ObjectMeta.Annotations["app.kubernetes.io/managed-by"])
152 assert.Equal(t, "", pvc.ObjectMeta.Annotations["gemini.fairwinds.com/restore"])
153
154 time.Sleep(time.Second)
155 timestamp := strconv.Itoa(int(snaps[0].Timestamp.Unix()))
156 sg.ObjectMeta.Annotations["gemini.fairwinds.com/restore"] = timestamp
157 event.task = restoreTask
158 err = ctrl.syncHandler(event)
159 assert.NoError(t, err)
160
161 pvc, err = pvcClient.Get(context.TODO(), sg.ObjectMeta.Name, metav1.GetOptions{})
162 assert.NoError(t, err)
163 assert.Equal(t, "gemini", pvc.ObjectMeta.Annotations["app.kubernetes.io/managed-by"])
164 assert.Equal(t, timestamp, pvc.ObjectMeta.Annotations["gemini.fairwinds.com/restore"])
165
166 snaps, err = snapshots.ListSnapshots(sg)
167 assert.NoError(t, err)
168 assert.Equal(t, 2, len(snaps))
169 assert.Equal(t, []string{"1 second"}, snaps[1].Intervals)
170 assert.Equal(t, []string{}, snaps[0].Intervals)
171}
172
173func TestDeleteHandler(t *testing.T) {
174 ctrl, _ := newTestController()

Callers

nothing calls this directly

Calls 7

ListSnapshotsFunction · 0.92
newTestControllerFunction · 0.85
newSnapshotGroupFunction · 0.85
syncHandlerMethod · 0.80
CreateMethod · 0.65
SnapshotGroupsMethod · 0.65
GetMethod · 0.65

Tested by

no test coverage detected