1
0
Fork 0

Compare commits

...

3 Commits

Author SHA1 Message Date
Maxim Lebedev c867d3a695
📝 Added path example 2024-03-18 17:23:10 +05:00
Maxim Lebedev 156bf5fef1
📝 Added pointer example 2024-03-18 17:21:27 +05:00
Maxim Lebedev 4bfa9492a2
📝 Added example GoldenEqual test and golden file 2024-03-18 17:17:32 +05:00
5 changed files with 86 additions and 0 deletions

13
path/path_test.go Normal file
View File

@ -0,0 +1,13 @@
package path_test
import (
"fmt"
"source.toby3d.me/toby3d/hacks/path"
)
func Example() {
head, tail := path.Shift("/foo/bar/index.html")
fmt.Println(head, tail)
// Output: foo /bar/index.html
}

22
pointer/pointer_test.go Normal file
View File

@ -0,0 +1,22 @@
package pointer_test
import (
"fmt"
"source.toby3d.me/toby3d/hacks/pointer"
)
func Example() {
val := struct {
Text string
}{Text: "Hello, World!"}
fmt.Printf("Value: %v\n", val)
point := pointer.Of(val)
point.Text = "Hello, Go!"
fmt.Printf("Pointer: %v\n", point)
// Output:
// Value: {Hello, World!}
// Pointer: &{Hello, Go!}
}

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)
}