github.com/argoproj/argo-cd/v3@v3.2.1/test/e2e/hydrator_test.go (about) 1 package e2e 2 3 import ( 4 "testing" 5 6 . "github.com/argoproj/argo-cd/v3/pkg/apis/application/v1alpha1" 7 . "github.com/argoproj/argo-cd/v3/test/e2e/fixture/app" 8 9 . "github.com/argoproj/gitops-engine/pkg/sync/common" 10 ) 11 12 func TestSimpleHydrator(t *testing.T) { 13 Given(t). 14 DrySourcePath("guestbook"). 15 DrySourceRevision("HEAD"). 16 SyncSourcePath("guestbook"). 17 SyncSourceBranch("env/test"). 18 When(). 19 CreateApp(). 20 Refresh(RefreshTypeNormal). 21 Wait("--hydrated"). 22 Sync(). 23 Then(). 24 Expect(OperationPhaseIs(OperationSucceeded)). 25 Expect(SyncStatusIs(SyncStatusCodeSynced)) 26 } 27 28 func TestHydrateTo(t *testing.T) { 29 Given(t). 30 DrySourcePath("guestbook"). 31 DrySourceRevision("HEAD"). 32 SyncSourcePath("guestbook"). 33 SyncSourceBranch("env/test"). 34 HydrateToBranch("env/test-next"). 35 When(). 36 CreateApp(). 37 Refresh(RefreshTypeNormal). 38 Wait("--hydrated"). 39 Then(). 40 Given(). 41 // Async so we don't fail immediately on the error 42 Async(true). 43 When(). 44 Sync(). 45 Wait("--operation"). 46 Then(). 47 // Fails because we hydrated to env/test-next but not to env/test. 48 Expect(OperationPhaseIs(OperationError)). 49 When(). 50 // Will now hydrate to the sync source branch. 51 AppSet("--hydrate-to-branch", ""). 52 Refresh(RefreshTypeNormal). 53 Wait("--hydrated"). 54 Sync(). 55 Wait("--operation"). 56 Then(). 57 Expect(OperationPhaseIs(OperationSucceeded)). 58 Expect(SyncStatusIs(SyncStatusCodeSynced)) 59 } 60 61 func TestAddingApp(t *testing.T) { 62 // Make sure that if we add another app targeting the same sync branch, it hydrates correctly. 63 Given(t). 64 Name("test-adding-app-1"). 65 DrySourcePath("guestbook"). 66 DrySourceRevision("HEAD"). 67 SyncSourcePath("guestbook-1"). 68 SyncSourceBranch("env/test"). 69 When(). 70 CreateApp(). 71 Refresh(RefreshTypeNormal). 72 Wait("--hydrated"). 73 Sync(). 74 Then(). 75 Expect(OperationPhaseIs(OperationSucceeded)). 76 Expect(SyncStatusIs(SyncStatusCodeSynced)). 77 Given(). 78 Name("test-adding-app-2"). 79 DrySourcePath("guestbook"). 80 DrySourceRevision("HEAD"). 81 SyncSourcePath("guestbook-2"). 82 SyncSourceBranch("env/test"). 83 When(). 84 CreateApp(). 85 Refresh(RefreshTypeNormal). 86 Wait("--hydrated"). 87 Sync(). 88 Then(). 89 Expect(OperationPhaseIs(OperationSucceeded)). 90 Expect(SyncStatusIs(SyncStatusCodeSynced)). 91 // Clean up the apps manually since we used custom names. 92 When(). 93 Delete(true). 94 Then(). 95 Expect(DoesNotExist()). 96 Given(). 97 Name("test-adding-app-1"). 98 When(). 99 Delete(true). 100 Then(). 101 Expect(DoesNotExist()) 102 } 103 104 func TestKustomizeVersionOverride(t *testing.T) { 105 Given(t). 106 Name("test-kustomize-version-override"). 107 DrySourcePath("kustomize-with-version-override"). 108 DrySourceRevision("HEAD"). 109 SyncSourcePath("kustomize-with-version-override"). 110 SyncSourceBranch("env/test"). 111 When(). 112 // Skip validation, otherwise app creation will fail on the unsupported kustomize version. 113 CreateApp("--validate=false"). 114 Refresh(RefreshTypeNormal). 115 Then(). 116 // Expect a failure at first because the kustomize version is not supported. 117 Expect(HydrationPhaseIs(HydrateOperationPhaseFailed)). 118 // Now register the kustomize version override and try again. 119 Given(). 120 RegisterKustomizeVersion("v1.2.3", "kustomize"). 121 When(). 122 // Hard refresh so we don't use the cached error. 123 Refresh(RefreshTypeHard). 124 Wait("--hydrated"). 125 Sync(). 126 Then(). 127 Expect(OperationPhaseIs(OperationSucceeded)). 128 Expect(SyncStatusIs(SyncStatusCodeSynced)) 129 }