Skip to content

Commit

Permalink
Add test flag -update to update the golden files
Browse files Browse the repository at this point in the history
Test flag `-update` can be used to update all the golden files whenever
the CLI output changes.

Signed-off-by: Sunny <darkowlzz@protonmail.com>
  • Loading branch information
darkowlzz committed Feb 24, 2022
1 parent 21f0d5d commit 0a09ea9
Show file tree
Hide file tree
Showing 7 changed files with 26 additions and 9 deletions.
7 changes: 7 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -96,6 +96,13 @@ Then you can run the end-to-end tests with:
make e2e
```

When the output of the Flux CLI changes, to automatically update the golden
files used in the test, pass `-update` flag to the test as:

```bash
make e2e TEST_ARGS="-update"
```

Teardown the e2e environment with:

```bash
Expand Down
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ test: $(EMBEDDED_MANIFESTS_TARGET) tidy fmt vet install-envtest
KUBEBUILDER_ASSETS="$(KUBEBUILDER_ASSETS)" go test ./... -coverprofile cover.out --tags=unit

e2e: $(EMBEDDED_MANIFESTS_TARGET) tidy fmt vet
TEST_KUBECONFIG=$(TEST_KUBECONFIG) go test ./cmd/flux/... -coverprofile e2e.cover.out --tags=e2e -v -failfast
TEST_KUBECONFIG=$(TEST_KUBECONFIG) go test ./cmd/flux/... -coverprofile e2e.cover.out --tags=e2e -v -failfast $(TEST_ARGS)

test-with-kind: install-envtest
make setup-kind
Expand Down
10 changes: 10 additions & 0 deletions cmd/flux/main_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ import (
"bufio"
"bytes"
"context"
"flag"
"fmt"
"io"
"os"
Expand All @@ -42,6 +43,9 @@ import (

var nextNamespaceId int64

// update allows golden files to be updated based on the current output.
var update = flag.Bool("update", false, "update golden files")

// Return a unique namespace with the specified prefix, for tests to create
// objects that won't collide with each other.
func allocateNamespace(prefix string) string {
Expand Down Expand Up @@ -298,6 +302,12 @@ func assertGoldenTemplateFile(goldenFile string, templateValues map[string]strin
expectedOutput = string(goldenFileContents)
}
if assertErr := assertGoldenValue(expectedOutput)(output, err); assertErr != nil {
if *update && output != "" {
if err := os.WriteFile(goldenFile, []byte(output), 0644); err != nil {
return fmt.Errorf("failed to update golden file '%s': %v", goldenFile, err)
}
return nil
}
return fmt.Errorf("Mismatch from golden file '%s': %v", goldenFile, assertErr)
}
return nil
Expand Down
4 changes: 2 additions & 2 deletions cmd/flux/testdata/helmrelease/get_helmrelease_from_git.golden
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
NAME READY MESSAGE REVISION SUSPENDED
thrfg True Release reconciliation succeeded 6.0.0 False
NAME REVISION SUSPENDED READY MESSAGE
thrfg 6.0.0 False True Release reconciliation succeeded
4 changes: 2 additions & 2 deletions cmd/flux/testdata/image/get_image_policy_regex.golden
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
NAME READY MESSAGE LATEST IMAGE
podinfo-regex True Latest image tag for 'ghcr.io/stefanprodan/podinfo' resolved to: 5.0.0 ghcr.io/stefanprodan/podinfo:5.0.0
NAME LATEST IMAGE READY MESSAGE
podinfo-regex ghcr.io/stefanprodan/podinfo:5.0.0 True Latest image tag for 'ghcr.io/stefanprodan/podinfo' resolved to: 5.0.0
4 changes: 2 additions & 2 deletions cmd/flux/testdata/image/get_image_policy_semver.golden
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
NAME READY MESSAGE LATEST IMAGE
podinfo-semver True Latest image tag for 'ghcr.io/stefanprodan/podinfo' resolved to: 5.0.3 ghcr.io/stefanprodan/podinfo:5.0.3
NAME LATEST IMAGE READY MESSAGE
podinfo-semver ghcr.io/stefanprodan/podinfo:5.0.3 True Latest image tag for 'ghcr.io/stefanprodan/podinfo' resolved to: 5.0.3
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
NAME READY MESSAGE REVISION SUSPENDED
tkfg True Applied revision: 6.0.0/627d5c4 6.0.0/627d5c4 False
NAME REVISION SUSPENDED READY MESSAGE
tkfg 6.0.0/627d5c4 False True Applied revision: 6.0.0/627d5c4

0 comments on commit 0a09ea9

Please sign in to comment.