Add test flag -update to update the golden files
Test flag `-update` can be used to update all the golden files whenever the CLI output changes. Signed-off-by: Sunny <darkowlzz@protonmail.com>
This commit is contained in:
@@ -20,6 +20,7 @@ import (
|
||||
"bufio"
|
||||
"bytes"
|
||||
"context"
|
||||
"flag"
|
||||
"fmt"
|
||||
"io"
|
||||
"os"
|
||||
@@ -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 {
|
||||
@@ -298,6 +302,13 @@ func assertGoldenTemplateFile(goldenFile string, templateValues map[string]strin
|
||||
expectedOutput = string(goldenFileContents)
|
||||
}
|
||||
if assertErr := assertGoldenValue(expectedOutput)(output, err); assertErr != nil {
|
||||
// Update the golden files if comparision fails and the update flag is set.
|
||||
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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user