(t *testing.T)
| 64 | } |
| 65 | |
| 66 | func TestBackupHandler(t *testing.T) { |
| 67 | ctrl, client := newTestController() |
| 68 | |
| 69 | sg := newSnapshotGroup("foo", "foo") |
| 70 | snaps, err := snapshots.ListSnapshots(sg) |
| 71 | assert.NoError(t, err) |
| 72 | assert.Equal(t, 0, len(snaps)) |
| 73 | |
| 74 | _, err = client.SnapshotGroupClient.SnapshotGroups("foo").Create(context.Background(), sg, metav1.CreateOptions{}) |
| 75 | assert.NoError(t, err) |
| 76 | |
| 77 | event := workItem{ |
| 78 | name: "foo", |
| 79 | namespace: "foo", |
| 80 | snapshotGroup: sg, |
| 81 | task: backupTask, |
| 82 | } |
| 83 | err = ctrl.syncHandler(event) |
| 84 | assert.NoError(t, err) |
| 85 | |
| 86 | snaps, err = snapshots.ListSnapshots(sg) |
| 87 | assert.NoError(t, err) |
| 88 | assert.Equal(t, 1, len(snaps)) |
| 89 | assert.Equal(t, []string{"1 second"}, snaps[0].Intervals) |
| 90 | |
| 91 | pvcClient := client.K8s.CoreV1().PersistentVolumeClaims(sg.ObjectMeta.Namespace) |
| 92 | pvc, err := pvcClient.Get(context.TODO(), sg.ObjectMeta.Name, metav1.GetOptions{}) |
| 93 | assert.NoError(t, err) |
| 94 | assert.Equal(t, "gemini", pvc.ObjectMeta.Annotations["app.kubernetes.io/managed-by"]) |
| 95 | |
| 96 | time.Sleep(time.Second) |
| 97 | err = ctrl.syncHandler(event) |
| 98 | assert.NoError(t, err) |
| 99 | |
| 100 | snaps, err = snapshots.ListSnapshots(sg) |
| 101 | assert.NoError(t, err) |
| 102 | assert.Equal(t, 2, len(snaps)) |
| 103 | assert.Equal(t, []string{"1 second"}, snaps[0].Intervals) |
| 104 | assert.Equal(t, []string{"1 second"}, snaps[1].Intervals) |
| 105 | |
| 106 | firstTS := snaps[1].Timestamp |
| 107 | secondTS := snaps[0].Timestamp |
| 108 | |
| 109 | time.Sleep(time.Second) |
| 110 | err = ctrl.syncHandler(event) |
| 111 | assert.NoError(t, err) |
| 112 | |
| 113 | snaps, err = snapshots.ListSnapshots(sg) |
| 114 | assert.NoError(t, err) |
| 115 | assert.Equal(t, 2, len(snaps)) |
| 116 | assert.Equal(t, []string{"1 second"}, snaps[0].Intervals) |
| 117 | assert.Equal(t, []string{"1 second"}, snaps[1].Intervals) |
| 118 | assert.Equal(t, secondTS, snaps[1].Timestamp) |
| 119 | assert.NotEqual(t, firstTS, snaps[0].Timestamp) |
| 120 | } |
| 121 | |
| 122 | func TestRestoreHandler(t *testing.T) { |
| 123 | ctrl, client := newTestController() |
nothing calls this directly
no test coverage detected