|
7 | 7 | setSharedCookies, |
8 | 8 | setWindowSize, |
9 | 9 | setBrowser, |
| 10 | + setBrowserConfig, |
10 | 11 | setTestHost, |
11 | 12 | setCommonPlugins, |
12 | 13 | } from '../index.js' |
@@ -161,6 +162,77 @@ describe('Hooks tests', () => { |
161 | 162 | } |
162 | 163 | }) |
163 | 164 |
|
| 165 | + describe('#setBrowserConfig', () => { |
| 166 | + test('no-ops when called with no args / non-object', () => { |
| 167 | + Config.reset() |
| 168 | + const config = { helpers: { Playwright: { show: true } } } |
| 169 | + setBrowserConfig() |
| 170 | + setBrowserConfig(null) |
| 171 | + Config.create(config) |
| 172 | + assert.equal(Config.get().helpers.Playwright.show, true) |
| 173 | + }) |
| 174 | + |
| 175 | + test('routes browser through setBrowser (Puppeteer gets product, not browser)', () => { |
| 176 | + Config.reset() |
| 177 | + const config = { helpers: { Puppeteer: {}, Playwright: {} } } |
| 178 | + setBrowserConfig({ browser: 'firefox' }) |
| 179 | + Config.create(config) |
| 180 | + assert.equal(Config.get().helpers.Puppeteer.product, 'firefox') |
| 181 | + assert.equal(Config.get().helpers.Puppeteer.browser, undefined) |
| 182 | + assert.equal(Config.get().helpers.Playwright.browser, 'firefox') |
| 183 | + }) |
| 184 | + |
| 185 | + test('show:true -> headed; show:false -> headless on Playwright/Puppeteer', () => { |
| 186 | + Config.reset() |
| 187 | + let config = { helpers: { Playwright: { show: false }, Puppeteer: { show: false } } } |
| 188 | + setBrowserConfig({ show: true }) |
| 189 | + Config.create(config) |
| 190 | + assert.equal(Config.get().helpers.Playwright.show, true) |
| 191 | + assert.equal(Config.get().helpers.Puppeteer.show, true) |
| 192 | + |
| 193 | + Config.reset() |
| 194 | + config = { helpers: { Playwright: { show: true }, WebDriver: { browser: 'chrome' } } } |
| 195 | + setBrowserConfig({ show: false }) |
| 196 | + Config.create(config) |
| 197 | + assert.equal(Config.get().helpers.Playwright.show, false) |
| 198 | + assert.ok(Config.get().helpers.WebDriver.desiredCapabilities.chromeOptions.args.includes('--headless')) |
| 199 | + }) |
| 200 | + |
| 201 | + test('windowSize string is parsed and setWindowSize fires', () => { |
| 202 | + Config.reset() |
| 203 | + const config = { helpers: { Playwright: {}, WebDriver: {} } } |
| 204 | + setBrowserConfig({ windowSize: '1280x720' }) |
| 205 | + Config.create(config) |
| 206 | + assert.equal(Config.get().helpers.Playwright.windowSize, '1280x720') |
| 207 | + assert.ok(Config.get().helpers.Playwright.chromium.args.includes('--window-size=1280,720')) |
| 208 | + assert.equal(Config.get().helpers.WebDriver.windowSize, '1280x720') |
| 209 | + }) |
| 210 | + |
| 211 | + test('extra keys are shallow-merged onto every browser helper', () => { |
| 212 | + Config.reset() |
| 213 | + const config = { helpers: { Playwright: {}, Puppeteer: {}, WebDriver: {}, REST: {} } } |
| 214 | + setBrowserConfig({ video: false, waitForTimeout: 9000 }) |
| 215 | + Config.create(config) |
| 216 | + assert.equal(Config.get().helpers.Playwright.video, false) |
| 217 | + assert.equal(Config.get().helpers.Playwright.waitForTimeout, 9000) |
| 218 | + assert.equal(Config.get().helpers.Puppeteer.video, false) |
| 219 | + assert.equal(Config.get().helpers.WebDriver.waitForTimeout, 9000) |
| 220 | + assert.equal(Config.get().helpers.REST.video, undefined) |
| 221 | + }) |
| 222 | + |
| 223 | + test('combined options applied in one call', () => { |
| 224 | + Config.reset() |
| 225 | + const config = { helpers: { Playwright: { show: false } } } |
| 226 | + setBrowserConfig({ browser: 'webkit', show: true, windowSize: '800x600', video: true }) |
| 227 | + Config.create(config) |
| 228 | + const pw = Config.get().helpers.Playwright |
| 229 | + assert.equal(pw.browser, 'webkit') |
| 230 | + assert.equal(pw.show, true) |
| 231 | + assert.equal(pw.windowSize, '800x600') |
| 232 | + assert.equal(pw.video, true) |
| 233 | + }) |
| 234 | + }) |
| 235 | + |
164 | 236 | describe('#setCommonPlugins', () => { |
165 | 237 | test('create standard plugins', () => { |
166 | 238 | Config.reset() |
|
0 commit comments