Skip to content

Commit 80fd809

Browse files
authored
refac(test): cleanup and add AssertToBeGolden for visual comparison (#429)
1 parent 4311525 commit 80fd809

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

50 files changed

+759
-761
lines changed

go.mod

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ require (
99
github.com/gorilla/websocket v1.5.1
1010
github.com/h2non/filetype v1.1.3
1111
github.com/mitchellh/go-ps v1.0.0
12+
github.com/orisano/pixelmatch v0.0.0-20230914042517-fa304d1dc785
1213
github.com/stretchr/testify v1.8.4
1314
github.com/tidwall/gjson v1.17.0
1415
go.uber.org/multierr v1.11.0

go.sum

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@ github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
2222
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
2323
github.com/mitchellh/go-ps v1.0.0 h1:i6ampVEEF4wQFF+bkYfwYgY+F/uYJDktmvLPf7qIgjc=
2424
github.com/mitchellh/go-ps v1.0.0/go.mod h1:J4lOc8z8yJs6vUwklHw2XEIiT4z4C40KtWVN3nvg8Pg=
25+
github.com/orisano/pixelmatch v0.0.0-20230914042517-fa304d1dc785 h1:J1//5K/6QF10cZ59zLcVNFGmBfiSrH8Cho/lNrViK9s=
26+
github.com/orisano/pixelmatch v0.0.0-20230914042517-fa304d1dc785/go.mod h1:nZgzbfBr3hhjoZnS66nKrHmduYNpc34ny7RK4z5/HM0=
2527
github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA=
2628
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
2729
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=

tests/apiresponse_assertions_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import (
99

1010
func TestAssertionsResponseIsOKPass(t *testing.T) {
1111
BeforeEach(t)
12-
defer AfterEach(t)
12+
1313
response, err := page.Request().Get(server.EMPTY_PAGE)
1414
require.NoError(t, err)
1515
require.NoError(t, expect.APIResponse(response).ToBeOK())
@@ -18,7 +18,7 @@ func TestAssertionsResponseIsOKPass(t *testing.T) {
1818

1919
func TestAssertionsShouldPrintResponseWithTextContentTypeIfToBeOKFails(t *testing.T) {
2020
BeforeEach(t)
21-
defer AfterEach(t)
21+
2222
server.SetRoute("/text-content-type", func(w http.ResponseWriter, r *http.Request) {
2323
w.Header().Set("Content-Type", "text/plain")
2424
w.WriteHeader(http.StatusNotFound)

tests/binding_test.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import (
1111

1212
func TestBrowserContextExposeBinding(t *testing.T) {
1313
BeforeEach(t)
14-
defer AfterEach(t)
14+
1515
bindingSource := []*playwright.BindingSource{}
1616
binding := func(source *playwright.BindingSource, a, b int) int {
1717
bindingSource = append(bindingSource, source)
@@ -33,7 +33,7 @@ func TestBrowserContextExposeBinding(t *testing.T) {
3333

3434
func TestBrowserContextExposeFunction(t *testing.T) {
3535
BeforeEach(t)
36-
defer AfterEach(t)
36+
3737
err := context.ExposeFunction("add", func(args ...interface{}) interface{} {
3838
return args[0].(int) + args[1].(int)
3939
})
@@ -60,7 +60,7 @@ func TestBrowserContextExposeFunction(t *testing.T) {
6060

6161
func TestBrowserContextExposeBindingPanic(t *testing.T) {
6262
BeforeEach(t)
63-
defer AfterEach(t)
63+
6464
err := context.ExposeBinding("woof", func(source *playwright.BindingSource, args ...interface{}) interface{} {
6565
panic(errors.New("WOOF WOOF"))
6666
})
@@ -83,7 +83,7 @@ func TestBrowserContextExposeBindingPanic(t *testing.T) {
8383

8484
func TestBrowserContextExposeBindingHandleShouldWork(t *testing.T) {
8585
BeforeEach(t)
86-
defer AfterEach(t)
86+
8787
targets := []playwright.JSHandle{}
8888

8989
logme := func(t interface{}) int {

tests/browser_context_storage_state_test.go

Lines changed: 26 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import (
1111

1212
func TestBrowserContextStorageStateShouldCaptureLocalStorage(t *testing.T) {
1313
BeforeEach(t)
14-
defer AfterEach(t)
14+
1515
page1, err := context.NewPage()
1616
require.NoError(t, err)
1717
require.NoError(t, page1.Route("**/*", func(route playwright.Route) {
@@ -53,36 +53,28 @@ func TestBrowserContextStorageStateShouldCaptureLocalStorage(t *testing.T) {
5353
}
5454

5555
func TestBrowserContextStorageStateSetLocalStorage(t *testing.T) {
56-
BeforeEach(t)
57-
defer AfterEach(t)
58-
context, err := browser.NewContext(
59-
playwright.BrowserNewContextOptions{
60-
StorageState: &playwright.OptionalStorageState{
61-
Origins: []playwright.Origin{
62-
{
63-
Origin: "https://www.example.com",
64-
LocalStorage: []playwright.NameValue{
65-
{
66-
Name: "name1",
67-
Value: "value1",
68-
},
56+
BeforeEach(t, playwright.BrowserNewContextOptions{
57+
StorageState: &playwright.OptionalStorageState{
58+
Origins: []playwright.Origin{
59+
{
60+
Origin: "https://www.example.com",
61+
LocalStorage: []playwright.NameValue{
62+
{
63+
Name: "name1",
64+
Value: "value1",
6965
},
7066
},
7167
},
7268
},
7369
},
74-
)
75-
require.NoError(t, err)
76-
defer context.Close()
77-
page, err := context.NewPage()
78-
require.NoError(t, err)
79-
defer page.Close()
70+
})
71+
8072
require.NoError(t, page.Route("**/*", func(route playwright.Route) {
8173
require.NoError(t, route.Fulfill(playwright.RouteFulfillOptions{
8274
Body: "<html></html>",
8375
}))
8476
}))
85-
_, err = page.Goto("https://www.example.com")
77+
_, err := page.Goto("https://www.example.com")
8678
require.NoError(t, err)
8779
localStorage, err := page.Evaluate("window.localStorage")
8880
require.NoError(t, err)
@@ -91,18 +83,15 @@ func TestBrowserContextStorageStateSetLocalStorage(t *testing.T) {
9183

9284
func TestBrowserContextStorageStateRoundTripThroughTheFile(t *testing.T) {
9385
BeforeEach(t)
94-
defer AfterEach(t)
95-
page1, err := context.NewPage()
96-
require.NoError(t, err)
97-
defer page1.Close()
98-
require.NoError(t, page1.Route("**/*", func(route playwright.Route) {
86+
87+
require.NoError(t, page.Route("**/*", func(route playwright.Route) {
9988
require.NoError(t, route.Fulfill(playwright.RouteFulfillOptions{
10089
Body: "<html></html>",
10190
}))
10291
}))
103-
_, err = page1.Goto("https://www.example.com")
92+
_, err := page.Goto("https://www.example.com")
10493
require.NoError(t, err)
105-
_, err = page1.Evaluate(`
94+
_, err = page.Evaluate(`
10695
() => {
10796
localStorage["name1"] = "value1"
10897
document.cookie = "username=John Doe"
@@ -121,15 +110,10 @@ func TestBrowserContextStorageStateRoundTripThroughTheFile(t *testing.T) {
121110
require.NoError(t, err)
122111
require.Equal(t, state, storageState)
123112

124-
context2, err := browser.NewContext(
125-
playwright.BrowserNewContextOptions{
126-
StorageStatePath: playwright.String(tempfile.Name()),
127-
})
128-
require.NoError(t, err)
129-
defer context2.Close()
130-
page2, err := context2.NewPage()
131-
require.NoError(t, err)
132-
defer page2.Close()
113+
_, page2 := newBrowserContextAndPage(t, playwright.BrowserNewContextOptions{
114+
StorageStatePath: playwright.String(tempfile.Name()),
115+
})
116+
133117
require.NoError(t, page2.Route("**/*", func(route playwright.Route) {
134118
require.NoError(t, route.Fulfill(playwright.RouteFulfillOptions{
135119
Body: "<html></html>",
@@ -147,18 +131,15 @@ func TestBrowserContextStorageStateRoundTripThroughTheFile(t *testing.T) {
147131

148132
func TestBrowserContextStorageStateRoundTripThroughConvert(t *testing.T) {
149133
BeforeEach(t)
150-
defer AfterEach(t)
151-
page1, err := context.NewPage()
152-
require.NoError(t, err)
153-
defer page1.Close()
154-
require.NoError(t, page1.Route("**/*", func(route playwright.Route) {
134+
135+
require.NoError(t, page.Route("**/*", func(route playwright.Route) {
155136
require.NoError(t, route.Fulfill(playwright.RouteFulfillOptions{
156137
Body: "<html></html>",
157138
}))
158139
}))
159-
_, err = page1.Goto("https://www.example.com")
140+
_, err := page.Goto("https://www.example.com")
160141
require.NoError(t, err)
161-
_, err = page1.Evaluate(`
142+
_, err = page.Evaluate(`
162143
() => {
163144
localStorage["name1"] = "value1"
164145
document.cookie = "username=John Doe"
@@ -170,15 +151,10 @@ func TestBrowserContextStorageStateRoundTripThroughConvert(t *testing.T) {
170151
storageState, err := context.StorageState()
171152
require.NoError(t, err)
172153

173-
context2, err := browser.NewContext(
154+
_, page2 := newBrowserContextAndPage(t,
174155
playwright.BrowserNewContextOptions{
175156
StorageState: storageState.ToOptionalStorageState(),
176157
})
177-
require.NoError(t, err)
178-
defer context2.Close()
179-
page2, err := context2.NewPage()
180-
require.NoError(t, err)
181-
defer page2.Close()
182158
require.NoError(t, page2.Route("**/*", func(route playwright.Route) {
183159
require.NoError(t, route.Fulfill(playwright.RouteFulfillOptions{
184160
Body: "<html></html>",

0 commit comments

Comments
 (0)