@@ -25,6 +25,8 @@ import (
25
25
"testing"
26
26
27
27
"github.com/grafana/xk6-browser/common"
28
+ "github.com/stretchr/testify/assert"
29
+ "github.com/stretchr/testify/require"
28
30
)
29
31
30
32
func TestBrowserTypeFlags (t * testing.T ) {
@@ -35,36 +37,66 @@ func TestBrowserTypeFlags(t *testing.T) {
35
37
36
38
const devToolsFlag = "auto-open-devtools-for-tabs"
37
39
38
- var bt BrowserType
40
+ var (
41
+ bt BrowserType
42
+ lopts = & common.LaunchOptions {}
43
+ )
39
44
40
- flags := bt .flags (& common.LaunchOptions {
41
- Devtools : false ,
42
- })
43
- flagi , ok := flags [devToolsFlag ]
45
+ flags := bt .flags (lopts )
46
+ require .Contains (t , flags , devToolsFlag )
44
47
45
- if ! ok {
46
- t .Fatalf ("%q is missing" , devToolsFlag )
47
- }
48
- flag , ok := flagi .(bool )
49
- if ! ok {
50
- t .Fatalf ("%q should be a bool" , devToolsFlag )
51
- }
52
- if flag {
53
- t .Fatalf ("%q should be false when launch options Devtools is false, got %t" , devToolsFlag , flag )
54
- }
48
+ _ , ok := flags [devToolsFlag ].(bool )
49
+ require .Truef (t , ok , "%q should be a bool" , devToolsFlag )
50
+
51
+ lopts .Devtools = false
52
+ assert .Falsef (t ,
53
+ flags [devToolsFlag ].(bool ),
54
+ "%q should also be false if launch options Devtools is false" , devToolsFlag ,
55
+ )
55
56
56
57
flags = bt .flags (& common.LaunchOptions {
57
58
Devtools : true ,
58
59
})
59
- flag = flags [ devToolsFlag ].( bool )
60
- if ! flag {
61
- t . Fatalf ( "%q should be true when launch options Devtools is true, got %t " , devToolsFlag , flag )
62
- }
60
+ assert . Truef ( t ,
61
+ flags [ devToolsFlag ].( bool ),
62
+ "%q should be true when launch options Devtools is true" , devToolsFlag ,
63
+ )
63
64
})
64
65
65
66
t .Run ("headless" , func (t * testing.T ) {
66
67
t .Parallel ()
67
68
69
+ const headlessFlag = "headless"
70
+
71
+ var (
72
+ bt BrowserType
73
+ lopts = & common.LaunchOptions {}
74
+ )
75
+
76
+ flags := bt .flags (lopts )
77
+ require .Contains (t , flags , headlessFlag )
78
+
79
+ _ , ok := flags [headlessFlag ].(bool )
80
+ require .Truef (t , ok , "%q should be a bool" , headlessFlag )
81
+
82
+ lopts .Headless = false
83
+ assert .Falsef (t ,
84
+ flags [headlessFlag ].(bool ),
85
+ "%q should also be false if launch options Headless is false" , headlessFlag ,
86
+ )
87
+
88
+ flags = bt .flags (& common.LaunchOptions {
89
+ Headless : true ,
90
+ })
91
+ assert .Truef (t ,
92
+ flags [headlessFlag ].(bool ),
93
+ "%q should be true when launch options Headless is true" , headlessFlag ,
94
+ )
95
+ })
96
+
97
+ t .Run ("headless/enabled" , func (t * testing.T ) {
98
+ t .Parallel ()
99
+
68
100
var (
69
101
before , after int
70
102
bt BrowserType
@@ -77,9 +109,7 @@ func TestBrowserTypeFlags(t *testing.T) {
77
109
lopts .Headless = true
78
110
after = len (bt .flags (lopts ))
79
111
80
- if before == after {
81
- t .Errorf ("enabling headless mode did not add flags" )
82
- }
112
+ assert .NotEqual (t , before , after , "enabling headless mode did not add flags" )
83
113
})
84
114
85
115
t .Run ("darwin" , func (t * testing.T ) {
@@ -88,11 +118,15 @@ func TestBrowserTypeFlags(t *testing.T) {
88
118
t .Skip ()
89
119
}
90
120
121
+ const zoomFlag = "enable-use-zoom-for-dsf"
122
+
91
123
var bt BrowserType
92
124
f := bt .flags (& common.LaunchOptions {})
93
125
94
- if _ , ok := f ["enable-use-zoom-for-dsf" ]; ! ok {
95
- t .Errorf ("darwin should enable 'enable-use-zoom-for-dsf'" )
96
- }
126
+ assert .Containsf (t , f , zoomFlag , "darwin should disable %q" , zoomFlag )
127
+
128
+ flag , ok := f [zoomFlag ].(bool )
129
+ require .Truef (t , ok , "%q should be a bool" , zoomFlag )
130
+ assert .False (t , flag , zoomFlag )
97
131
})
98
132
}
0 commit comments