diff --git a/README.md b/README.md index 12ab269..d78ae36 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,80 @@ -# go-golden +
+ + Yet another Go package for working with `*.golden` test files, with a focus + on simplicity through it's default behavior. + +
-Currently a work in progress. + + +Golden file names are based on the name of the test function and any subtest +names by calling t.Name(). File names are sanitized to ensure they're compatible +with Linux, macOS and Windows systems regardless of what crazy characters might +be in a subtest's name. + +## Import + +``` +import "github.com/jimeh/go-golden" +``` + +## Usage + +Typical usage should look something like this: + +```go +func TestExampleMyStruct(t *testing.T) { + got, err := json.Marshal(&MyStruct{Foo: "Bar"}) + require.NoError(t, err) + + if golden.Update() { + golden.Set(t, got) + } + want := golden.Get(t) + + assert.Equal(t, want, got) +} +``` + +The above example will read/write to: + + testdata/TestExampleMyStruct.golden + +To update the golden file (have `golden.Update()` return true), simply set the +`GOLDEN_UPDATE` environment variable to one of `1`, `y`, `t`, `yes`, `on`, or +`true` when running tests. + +## Documentation + +Please see the +[Go Reference](https://pkg.go.dev/github.com/jimeh/go-golden#section-documentation) +for documentation and examples. + +## License + +[MIT](https://github.com/jimeh/go-golden/blob/master/LICENSE)