1
0
Fork 0

📝 Added example GoldenEqual test and golden file

This commit is contained in:
Maxim Lebedev 2024-03-18 17:17:32 +05:00
parent 515b1fbb46
commit 4bfa9492a2
Signed by: toby3d
GPG Key ID: 1F14E25B7C119FC5
3 changed files with 51 additions and 0 deletions

12
testing/testdata/TestGoldenEqual.golden vendored Executable file
View File

@ -0,0 +1,12 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Testing</title>
</head>
<body>
<h1>Hello, World!</h1>
<p>This is a testing HTML page of example.com website.</p>
</body>
</html>

View File

@ -22,6 +22,9 @@ var update = flag.Bool("update", false, "save current tests results as golden fi
// be overwritten with the provided contents of output, creating the testdata/
// directory if it does not exist.
//
// Check TestGoldenEqual in testing_test.go and testdata/TestGoldenEqual.golden
// for example usage.
//
// See: https://youtu.be/8hQG7QlcLBk?t=749
//
//nolint:cyclop // no need for splitting

36
testing/testing_test.go Normal file
View File

@ -0,0 +1,36 @@
package testing_test
import (
"fmt"
"net/http"
"net/http/httptest"
"testing"
hacktesting "source.toby3d.me/toby3d/hacks/testing"
)
func TestGoldenEqual(t *testing.T) {
t.Parallel()
req := httptest.NewRequest(http.MethodGet, "https://example.com/", nil)
w := httptest.NewRecorder()
testHandler := func(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, `<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Testing</title>
</head>
<body>
<h1>Hello, World!</h1>
<p>This is a testing HTML page of %s website.</p>
</body>
</html>`, r.Host) // NOTE(toby3d): Host must be 'example.com'
}
testHandler(w, req)
// NOTE(toby3d): compare recorded response body against saved golden file
hacktesting.GoldenEqual(t, w.Result().Body)
}