Skip to content

Instantly share code, notes, and snippets.

@abutcher
Created July 29, 2020 20:21
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save abutcher/b3eef5d35ebfe91b4c7f7a3c42530d00 to your computer and use it in GitHub Desktop.
Save abutcher/b3eef5d35ebfe91b4c7f7a3c42530d00 to your computer and use it in GitHub Desktop.
func TestAllSyncSetsAppliedDuration(t *testing.T) {
apis.AddToScheme(scheme.Scheme)
now := metav1.Now()
cd := testClusterDeployment()
cdInstalledTimestamp := metav1.NewTime(now.Add(-time.Hour * 1))
cd.Status.InstalledTimestamp = &cdInstalledTimestamp
ss := testMatchingSyncSet
si := testSyncSetInstanceForSyncSet
syncSets := []runtime.Object{
ss("a"), ss("b"), ss("c"),
}
firstAppliedTimes := []metav1.Time{
metav1.NewTime(now.Add(-time.Minute * 15)),
metav1.NewTime(now.Add(-time.Minute * 10)),
metav1.NewTime(now.Add(-time.Minute * 5)),
}
syncSetInstances := []runtime.Object{
si("a"), si("b"), si("c"),
}
for i, ssi := range syncSetInstances {
ssi.(*hivev1.SyncSetInstance).Status.FirstSuccessTimestamp = &firstAppliedTimes[i]
}
objs := append(syncSets, syncSetInstances...)
objs = append(objs, cd)
fakeClient := fake.NewFakeClient(objs...)
rss := &ReconcileSyncSet{
Client: fakeClient,
scheme: scheme.Scheme,
logger: log.WithField("controller", "syncset"),
computeHash: testHashCompute,
}
_, err := rss.Reconcile(reconcile.Request{
NamespacedName: types.NamespacedName{
Name: testName,
Namespace: testNamespace,
},
})
if err != nil {
t.Errorf("unexpected error: %v", err)
return
}
uCD := &hivev1.ClusterDeployment{}
err = fakeClient.Get(context.TODO(), client.ObjectKey{Name: testName, Namespace: testNamespace}, uCD)
if err != nil {
t.Errorf("unexpected error: %v", err)
return
}
assert.Equal(t, *uCD.Status.FirstSyncSetsSuccessTimestamp, metav1.NewTime(syncSetInstances[2].(*hivev1.SyncSetInstance).Status.FirstSuccessTimestamp.Truncate(time.Second)))
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment