* Expands browser declared via `browsers` property to multiple * runs that all have one single `browser` property and omits * the `browsers` property. *
(config)
| 114 | * the `browsers` property. |
| 115 | * */ |
| 116 | prepareBrowsers(config) { |
| 117 | this.runs.forEach((run) => { |
| 118 | const runName = run.getName(); |
| 119 | const runConfig = run.getConfig(); |
| 120 | const browsers = []; |
| 121 | |
| 122 | if (!Array.isArray(runConfig.browsers)) { |
| 123 | runConfig.browsers = guessBrowser(config) || []; |
| 124 | } |
| 125 | |
| 126 | // no browser property in helper? |
| 127 | if (!runConfig.browsers.length) { |
| 128 | runConfig.browsers.push('default'); |
| 129 | } |
| 130 | |
| 131 | runConfig.browsers.forEach((browser) => { |
| 132 | const browserConfig = browser.browser ? browser : { browser }; |
| 133 | const runBrowserConfig = { ...runConfig, browser: browserConfig }; |
| 134 | browsers.push(browserConfig.browser); |
| 135 | const count = browsers.filter((b) => { |
| 136 | return b === browserConfig.browser; |
| 137 | }).length; |
| 138 | |
| 139 | delete runBrowserConfig.browsers; |
| 140 | |
| 141 | const run = createRun(`${runName}:${browserConfig.browser}${count}`, runBrowserConfig); |
| 142 | run.setOriginalName(runName); |
| 143 | this.addRun(run); |
| 144 | }); |
| 145 | |
| 146 | this.removeRun(runName); |
| 147 | }); |
| 148 | |
| 149 | return this; |
| 150 | } |
| 151 | |
| 152 | /** |
| 153 | * Filters all runs by their `browser` property. The property `browsers` is ignored. |
no test coverage detected