mirror of
https://github.com/argoproj/argo-cd
synced 2026-04-21 17:07:16 +00:00
test(hydrator): cover remaining dry source revision branches
Signed-off-by: boostrack <boostrack@users.noreply.github.com>
This commit is contained in:
parent
db71f72b29
commit
e4aa4b49a8
2 changed files with 66 additions and 0 deletions
|
|
@ -2474,6 +2474,22 @@ func TestHydrationSyncGateDecision(t *testing.T) {
|
|||
}(),
|
||||
expected: hydrationSyncGateActionNone,
|
||||
},
|
||||
{
|
||||
name: "explicit sync revisions bypass gating",
|
||||
app: func() *v1alpha1.Application {
|
||||
app := newApp()
|
||||
app.Status.SourceHydrator.CurrentOperation = &v1alpha1.HydrateOperation{
|
||||
Phase: v1alpha1.HydrateOperationPhaseHydrating,
|
||||
}
|
||||
return app
|
||||
}(),
|
||||
state: func() *v1alpha1.OperationState {
|
||||
st := newState()
|
||||
st.Operation.Sync.Revisions = []string{"12345"}
|
||||
return st
|
||||
}(),
|
||||
expected: hydrationSyncGateActionNone,
|
||||
},
|
||||
{
|
||||
name: "hydrateTo bypasses gating",
|
||||
app: func() *v1alpha1.Application {
|
||||
|
|
@ -3062,6 +3078,20 @@ func TestGateSyncOnHydration_RequestRefreshError(t *testing.T) {
|
|||
assert.True(t, blocked)
|
||||
}
|
||||
|
||||
func TestGateSyncOnHydration_NoAction(t *testing.T) {
|
||||
app := newFakeApp()
|
||||
ctrl := newFakeController(t.Context(), &fakeData{apps: []runtime.Object{app}}, nil)
|
||||
state := &v1alpha1.OperationState{
|
||||
Operation: v1alpha1.Operation{
|
||||
Sync: &v1alpha1.SyncOperation{},
|
||||
},
|
||||
StartedAt: metav1.NewTime(time.Now()),
|
||||
}
|
||||
|
||||
blocked := ctrl.gateSyncOnHydration(app, state, logrus.WithField("test", "no-action"))
|
||||
assert.False(t, blocked)
|
||||
}
|
||||
|
||||
func TestProcessRequestedAppAutomatedOperation_Successful(t *testing.T) {
|
||||
app := newFakeApp()
|
||||
app.Spec.Project = "default"
|
||||
|
|
|
|||
|
|
@ -515,6 +515,27 @@ func TestProcessAppHydrateQueueItem_ReconciledTimeout_DrySourceRevisionLookupFai
|
|||
d.AssertNotCalled(t, "AddHydrationQueueItem", mock.Anything)
|
||||
}
|
||||
|
||||
func TestProcessAppHydrateQueueItem_ReconciledTimeout_DrySourceManifestResolutionFails(t *testing.T) {
|
||||
t.Parallel()
|
||||
d := mocks.NewDependencies(t)
|
||||
app := setTestAppPhase(newTestApp("test-app"), v1alpha1.HydrateOperationPhaseHydrated)
|
||||
reconciledAt := metav1.NewTime(time.Now().Add(-2 * time.Minute))
|
||||
app.Status.ReconciledAt = &reconciledAt
|
||||
|
||||
d.EXPECT().GetProcessableAppProj(app).Return(newTestProject(), nil).Once()
|
||||
d.EXPECT().GetRepoObjs(mock.Anything, app, app.Spec.SourceHydrator.GetDrySource(), "main", mock.Anything).Return(nil, nil, errors.New("manifest resolution failed")).Once()
|
||||
|
||||
h := &Hydrator{
|
||||
dependencies: d,
|
||||
statusRefreshTimeout: time.Minute,
|
||||
}
|
||||
|
||||
h.ProcessAppHydrateQueueItem(app)
|
||||
|
||||
d.AssertNotCalled(t, "PersistAppHydratorStatus", mock.Anything, mock.Anything)
|
||||
d.AssertNotCalled(t, "AddHydrationQueueItem", mock.Anything)
|
||||
}
|
||||
|
||||
func TestProcessAppHydrateQueueItem_NoSourceHydrator(t *testing.T) {
|
||||
t.Parallel()
|
||||
d := mocks.NewDependencies(t)
|
||||
|
|
@ -642,6 +663,21 @@ func TestHydrator_getLatestDrySourceRevision_ProjectError(t *testing.T) {
|
|||
assert.ErrorContains(t, err, "failed to get app project")
|
||||
}
|
||||
|
||||
func TestHydrator_getLatestDrySourceRevision_ManifestError(t *testing.T) {
|
||||
t.Parallel()
|
||||
d := mocks.NewDependencies(t)
|
||||
app := newTestApp("test-app")
|
||||
h := &Hydrator{dependencies: d}
|
||||
|
||||
d.EXPECT().GetProcessableAppProj(app).Return(newTestProject(), nil).Once()
|
||||
d.EXPECT().GetRepoObjs(mock.Anything, app, app.Spec.SourceHydrator.GetDrySource(), "main", mock.Anything).Return(nil, nil, errors.New("manifest resolution failed")).Once()
|
||||
|
||||
revision, err := h.getLatestDrySourceRevision(app)
|
||||
require.Error(t, err)
|
||||
assert.Empty(t, revision)
|
||||
assert.ErrorContains(t, err, "failed to resolve latest dry source revision")
|
||||
}
|
||||
|
||||
func TestProcessHydrationQueueItem_ValidationFails(t *testing.T) {
|
||||
t.Parallel()
|
||||
d := mocks.NewDependencies(t)
|
||||
|
|
|
|||
Loading…
Reference in a new issue