Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 | 1x 1x 12x 12x 12x 12x 12x 3x 9x 8x 9x 9x 9x 3x 1x 2x 2x 1x 1x 2x 1x 1x 1x 2x 1x 1x 2x 1x 1x | import logger from '@wdio/logger' import { Eyes, Target } from '@applitools/eyes-webdriverio' const log = logger('@wdio/applitools-service') const DEFAULT_VIEWPORT = { width: 1440, height: 900 } export default class ApplitoolsService { constructor () { this.eyes = new Eyes() } /** * set API key in onPrepare hook and start test */ beforeSession (config) { const key = config.applitoolsKey || process.env.APPLITOOLS_KEY const serverUrl = config.applitoolsServerUrl || process.env.APPLITOOLS_SERVER_URL const applitoolsConfig = config.applitools || {} if (!key) { throw new Error('Couldn\'t find an Applitools "applitoolsKey" in config nor "APPLITOOLS_KEY" in the environment') } // Optionally set a specific server url if (serverUrl) { this.eyes.setServerUrl(serverUrl) } this.isConfigured = true this.eyes.setApiKey(key) this.viewport = Object.assign(DEFAULT_VIEWPORT, applitoolsConfig.viewport) } /** * set custom commands */ before () { if (!this.isConfigured) { return } global.browser.addCommand('takeSnapshot', (title) => { if (!title) { throw new Error('A title for the Applitools snapshot is missing') } return this.eyes.check(title, Target.window()) }) } beforeTest (test) { if (!this.isConfigured) { return } log.info(`Open eyes for ${test.parent} ${test.title}`) global.browser.call(() => this.eyes.open(global.browser, test.title, test.parent, this.viewport)) } afterTest () { if (!this.isConfigured) { return } global.browser.call(::this.eyes.close) } after () { if (!this.isConfigured) { return } global.browser.call(::this.eyes.abortIfNotClosed) } } |