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  }