| 100 | } |
| 101 | |
| 102 | func RefreshAndWait(t testing.TB, rt *runtime.Runtime, id string, n *runtimev1.ResourceName) { |
| 103 | ctx := t.Context() |
| 104 | ctrl, err := rt.Controller(ctx, id) |
| 105 | require.NoError(t, err) |
| 106 | |
| 107 | // Get resource before refresh |
| 108 | rPrev, err := ctrl.Get(ctx, n, false) |
| 109 | require.NoError(t, err) |
| 110 | |
| 111 | // Create refresh trigger |
| 112 | trgName := &runtimev1.ResourceName{Kind: runtime.ResourceKindRefreshTrigger, Name: time.Now().String()} |
| 113 | err = ctrl.Create(ctx, trgName, nil, nil, nil, false, &runtimev1.Resource{ |
| 114 | Resource: &runtimev1.Resource_RefreshTrigger{ |
| 115 | RefreshTrigger: &runtimev1.RefreshTrigger{ |
| 116 | Spec: &runtimev1.RefreshTriggerSpec{ |
| 117 | Resources: []*runtimev1.ResourceName{n}, |
| 118 | }, |
| 119 | }, |
| 120 | }, |
| 121 | }) |
| 122 | require.NoError(t, err) |
| 123 | |
| 124 | // Wait for refresh to complete |
| 125 | err = ctrl.WaitUntilIdle(ctx, false) |
| 126 | require.NoError(t, err) |
| 127 | |
| 128 | // Get resource after refresh |
| 129 | rNew, err := ctrl.Get(ctx, n, false) |
| 130 | require.NoError(t, err) |
| 131 | |
| 132 | // Check the resource's spec version has increased |
| 133 | require.Greater(t, rNew.Meta.SpecVersion, rPrev.Meta.SpecVersion) |
| 134 | } |
| 135 | |
| 136 | func RequireReconcileState(t testing.TB, rt *runtime.Runtime, id string, lenResources, lenReconcileErrs, lenParseErrs int) { |
| 137 | ctx := t.Context() |