diff --git a/.travis.yml b/.travis.yml index 27740b49d4..0cc80abc0c 100644 --- a/.travis.yml +++ b/.travis.yml @@ -58,6 +58,7 @@ jobs: allow_failures: - env: NGV=next - name: sauce-tests + - name: "Cypress Applitools Snapshot tests" include: # precache npm and apt dependencies # - stage: precache @@ -97,7 +98,7 @@ jobs: name: "Cypress Smoke Tests 3d thread" env: CI_THREAD_INDEX=3x-electron <<: *testSmokeCy -# check prod build + # check prod build - script: npm run demo.ng-build name: "Check prod build with current Angular version" - script: npm run demo.ng-build @@ -221,6 +222,9 @@ jobs: - CI_THREAD_INDEX=3.2x-electron - BASE_URL=https://valor-software.com/ngx-bootstrap/#/ <<: *testPostDeploy + - script: APPLITOOLS_API_KEY=Nls100t102uNgLhLpblVUdA3tP104MQQS9VUYgHQ5tYOUuIxU110 CYPRESS_baseUrl=https://valor-software.com/ngx-bootstrap/#/ npm run cy:run:snapshot + name: "Cypress Applitools Snapshot tests" + if: tag =~ ^v\d+ cache: apt: true diff --git a/cypress/plugins/index.js b/cypress/plugins/index.js index e5091adcd2..a1faf19fef 100644 --- a/cypress/plugins/index.js +++ b/cypress/plugins/index.js @@ -7,3 +7,5 @@ module.exports = (on, config) => { return config }; + +require('@applitools/eyes.cypress')(module); diff --git a/cypress/snapshot/snapshot_spec.js b/cypress/snapshot/snapshot_spec.js new file mode 100644 index 0000000000..24c5295d78 --- /dev/null +++ b/cypress/snapshot/snapshot_spec.js @@ -0,0 +1,57 @@ +import { DatepickerPo } from '../support/datepicker.po'; +import { DropdownsPo } from '../support/dropdowns.po'; +import { ModalsPo } from '../support/modals.po'; +import { TabsPo } from '../support/tabs.po'; +import { TypeaheadPo } from '../support/typeahead.po'; + +describe('Snapshot test', () => { + const componentsArray = [ + new DatepickerPo(), + new DropdownsPo(), + new ModalsPo(), + new TypeaheadPo(), + new TabsPo() + ]; + + componentsArray.forEach(page => { + it(`navigate to each Demo and check example: ${page.pageUrl}`, () => { + page.navigateTo(); + cy.get('ng-sample-box').each(demo => { + const subtitle = demo.parent().find('h3').text(); + + cy.wrap(demo).find(`.bd-example`) + .eyesOpen({ + appName: 'NGX-bootstrap', + concurrency: 5, + matchLevel: 'Strict', + showLogs: true, + testName: `${page.pageUrl} - ${subtitle}`, + browser: [{ + name: 'chrome', + browserVersion: 'latest', + width: 360, + height: 640 + }, { + name: 'firefox', + browserVersion: 'latest', + width: 360, + height: 640 + }, + { + name: 'firefox', + browserVersion: 'latest', + width: 1366, + height: 768 + }] + }) + .eyesCheckWindow({ + sizeMode: 'selector', + selector: `.bd-example`, + tag: `${page.pageUrl}-${subtitle}`, + sendDom: false, + }) + .eyesClose(); + }); + }); + }); +}); diff --git a/cypress/support/index.js b/cypress/support/index.js index d68db96df2..38ec0b20b5 100644 --- a/cypress/support/index.js +++ b/cypress/support/index.js @@ -15,6 +15,7 @@ // Import commands.js using ES2015 syntax: import './commands' +import '@applitools/eyes.cypress/commands' // Alternatively you can use CommonJS syntax: // require('./commands') diff --git a/cypress/tsconfig.json b/cypress/tsconfig.json index bba29f7259..664785bc57 100644 --- a/cypress/tsconfig.json +++ b/cypress/tsconfig.json @@ -14,6 +14,7 @@ }, "include": [ "integration/*.ts", + "snapshot/*.ts", "full/*.ts", "full/**/*.ts", "support/*.ts", diff --git a/package-lock.json b/package-lock.json index 98b46b3a83..bbf557361e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -487,6 +487,198 @@ "tslib": "^1.9.0" } }, + "@applitools/dom-snapshot": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@applitools/dom-snapshot/-/dom-snapshot-1.0.6.tgz", + "integrity": "sha512-7QiMdbp8b7j+1JhkP79asZubGZDuWwUM51byZVUNlSSH0f1nadDHIY4lU/7GA871r+SvPV1kvZvEwxk2/pUG5g==", + "dev": true, + "requires": { + "@applitools/functional-commons": "^1.0.33" + } + }, + "@applitools/eyes-common": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@applitools/eyes-common/-/eyes-common-1.2.4.tgz", + "integrity": "sha512-5OEW4LIUb6ov21uWkkgKxMMyYyMomHq4pj/2PhFD1GFEzZfBfCWuM8cam4S0RgOwU4UKMNmV64Jm/XgXcd+lmw==", + "dev": true, + "requires": { + "cosmiconfig": "^5.0.7", + "dateformat": "^3.0.3", + "deepmerge": "^3.1.0", + "png-async": "^0.9.3", + "stack-trace": "^0.0.10" + }, + "dependencies": { + "cosmiconfig": { + "version": "5.0.7", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.0.7.tgz", + "integrity": "sha512-PcLqxTKiDmNT6pSpy4N6KtuPwb53W+2tzNvwOZw0WH9N6O0vLIBq0x8aj8Oj75ere4YcGi48bDFCL+3fRJdlNA==", + "dev": true, + "requires": { + "import-fresh": "^2.0.0", + "is-directory": "^0.3.1", + "js-yaml": "^3.9.0", + "parse-json": "^4.0.0" + } + }, + "parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "dev": true, + "requires": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + } + } + } + }, + "@applitools/eyes-sdk-core": { + "version": "4.7.2", + "resolved": "https://registry.npmjs.org/@applitools/eyes-sdk-core/-/eyes-sdk-core-4.7.2.tgz", + "integrity": "sha512-xeumFaiy7du4SP4LjvaQeXUjJHlLSUiDBBK+pD+aAAQvkDWZO0PWhoDp2sMocmU6oN5QWX67qssaZXjlmsh2zQ==", + "dev": true, + "requires": { + "@applitools/eyes-common": "^1.2.4", + "axios": "^0.18.0", + "es6-promise-pool": "^2.5.0" + }, + "dependencies": { + "axios": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.18.0.tgz", + "integrity": "sha1-MtU+SFHv3AoRmTts0AB4nXDAUQI=", + "dev": true, + "requires": { + "follow-redirects": "^1.3.0", + "is-buffer": "^1.1.5" + } + } + } + }, + "@applitools/eyes.cypress": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/@applitools/eyes.cypress/-/eyes.cypress-3.4.2.tgz", + "integrity": "sha512-jy+vdUihGWtJmHgPYFhW7zKTNQFcZ2D4yZUt6hgr0sKAjV1mKwmOj1U6gI7RCmxsN228kBzH4NRjp1pGW1QF0A==", + "dev": true, + "requires": { + "@applitools/dom-snapshot": "^1.0.2", + "@applitools/eyes-common": "^1.2.0", + "@applitools/eyes-sdk-core": "^4.6.4", + "@applitools/functional-commons": "^1.0.33", + "@applitools/visual-grid-client": "^10.0.2", + "body-parser": "^1.18.3", + "chalk": "^2.4.2", + "cors": "^2.8.5", + "express": "^4.16.4", + "lodash.flatten": "^4.4.0" + }, + "dependencies": { + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + } + } + }, + "@applitools/functional-commons": { + "version": "1.0.39", + "resolved": "https://registry.npmjs.org/@applitools/functional-commons/-/functional-commons-1.0.39.tgz", + "integrity": "sha512-yX5kFPCs968NYemgWlYpHW4WuleQ2FN/KT1LMJBwAlUkMgN41w1r2XD2/egXpi8rPYq6ehqfk2fzT/FOFwS5aw==", + "dev": true + }, + "@applitools/http-commons": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/@applitools/http-commons/-/http-commons-1.2.5.tgz", + "integrity": "sha512-wc8mwyZTnr4NIdxyqVtwZCIAOhO2OsfYwx3jcXHj+4fyjWZxie5qw0KBFWQUxqUCJabtEOXCN7E/ghNS3sKCxA==", + "dev": true, + "requires": { + "@applitools/functional-commons": "^1.0.33", + "@applitools/monitoring-commons": "^1.0.8", + "agentkeepalive": "^3.5.2", + "debug": "^4.1.1", + "lodash.merge": "^4.6.1", + "node-fetch": "^2.3.0" + }, + "dependencies": { + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "dev": true + } + } + }, + "@applitools/isomorphic-fetch": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@applitools/isomorphic-fetch/-/isomorphic-fetch-3.0.0.tgz", + "integrity": "sha512-7rutaN/2M5wYjOIOTKS/Zuc1Na90fJNEAqvo/jCxt7nSD1kYscHV3aCk9t7RD59gmzLMvUTIxFbjl4RUMV8qfg==", + "dev": true, + "requires": { + "node-fetch": "^2.3.0", + "whatwg-fetch": ">=0.10.0" + } + }, + "@applitools/monitoring-commons": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@applitools/monitoring-commons/-/monitoring-commons-1.0.8.tgz", + "integrity": "sha512-PheDk+qBA9bDc51MJadfD+5Bs46gbQaSESu23meBSt7UAdw4wrx98koVSZuYkuKWRaNQ/ZPqfnbqfHvx8eOdMA==", + "dev": true, + "requires": { + "debug": "^4.1.0" + }, + "dependencies": { + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "dev": true + } + } + }, + "@applitools/visual-grid-client": { + "version": "10.0.9", + "resolved": "https://registry.npmjs.org/@applitools/visual-grid-client/-/visual-grid-client-10.0.9.tgz", + "integrity": "sha512-bWkmG5xfFj8QYhT6ZnNjDPkrfOSJp37YIIdoQk5Asc89eJL/T6lNdNyBpBc7xt5T7gffVzAFvJ/cH8k8ck0BhQ==", + "dev": true, + "requires": { + "@applitools/eyes-sdk-core": "^4.7.1", + "@applitools/functional-commons": "^1.0.39", + "@applitools/http-commons": "^1.2.5", + "@applitools/isomorphic-fetch": "^3.0.0", + "cssom": "^0.3.6", + "he": "^1.2.0", + "lodash.mapkeys": "^4.6.0", + "lodash.mapvalues": "^4.6.0", + "mime-types": "^2.1.21", + "mkdirp": "^0.5.1", + "throat": "^4.1.0" + } + }, "@babel/code-frame": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz", @@ -2112,6 +2304,15 @@ "es6-promisify": "^5.0.0" } }, + "agentkeepalive": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-3.5.2.tgz", + "integrity": "sha512-e0L/HNe6qkQ7H19kTlRRqUibEAwDK5AFk6y3PtMsuut2VAH6+Q4xZml1tNDJD7kSAyqmbG/K08K5WEJYtUrSlQ==", + "dev": true, + "requires": { + "humanize-ms": "^1.2.1" + } + }, "ajv": { "version": "6.4.0", "resolved": "http://registry.npmjs.org/ajv/-/ajv-6.4.0.tgz", @@ -5016,6 +5217,16 @@ "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", "dev": true }, + "cors": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "dev": true, + "requires": { + "object-assign": "^4", + "vary": "^1" + } + }, "cosmiconfig": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-4.0.0.tgz", @@ -5381,6 +5592,12 @@ "integrity": "sha1-yBSQPkViM3GgR3tAEJqq++6t27Q=", "dev": true }, + "cssom": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.6.tgz", + "integrity": "sha512-DtUeseGk9/GBW0hl0vVPpU22iHL6YB5BUX7ml1hB+GMpo0NX5G4voX3kdWiMSEguFtcW3Vh3djqNF4aIe6ne0A==", + "dev": true + }, "cuint": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/cuint/-/cuint-0.2.2.tgz", @@ -5736,6 +5953,12 @@ "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", "dev": true }, + "deepmerge": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-3.1.0.tgz", + "integrity": "sha512-/TnecbwXEdycfbsM2++O3eGiatEFHjjNciHEwJclM+T5Kd94qD1AP+2elP/Mq0L5b9VZJao5znR01Mz6eX8Seg==", + "dev": true + }, "default-gateway": { "version": "2.7.2", "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-2.7.2.tgz", @@ -6361,6 +6584,12 @@ "integrity": "sha512-n6wvpdE43VFtJq+lUDYDBFUwV8TZbuGXLV4D6wKafg13ldznKsyEvatubnmUe31zcvelSzOHF+XbaT+Bl9ObDg==", "dev": true }, + "es6-promise-pool": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/es6-promise-pool/-/es6-promise-pool-2.5.0.tgz", + "integrity": "sha1-FHxhKza0fxBQJ/nSv1SlmKmdnMs=", + "dev": true + }, "es6-promisify": { "version": "5.0.0", "resolved": "http://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", @@ -7241,7 +7470,8 @@ "ansi-regex": { "version": "2.1.1", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "aproba": { "version": "1.2.0", @@ -7262,12 +7492,14 @@ "balanced-match": { "version": "1.0.0", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "brace-expansion": { "version": "1.1.11", "bundled": true, "dev": true, + "optional": true, "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -7282,17 +7514,20 @@ "code-point-at": { "version": "1.1.0", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "concat-map": { "version": "0.0.1", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "console-control-strings": { "version": "1.1.0", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "core-util-is": { "version": "1.0.2", @@ -7409,7 +7644,8 @@ "inherits": { "version": "2.0.3", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "ini": { "version": "1.3.5", @@ -7421,6 +7657,7 @@ "version": "1.0.0", "bundled": true, "dev": true, + "optional": true, "requires": { "number-is-nan": "^1.0.0" } @@ -7435,6 +7672,7 @@ "version": "3.0.4", "bundled": true, "dev": true, + "optional": true, "requires": { "brace-expansion": "^1.1.7" } @@ -7442,12 +7680,14 @@ "minimist": { "version": "0.0.8", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "minipass": { "version": "2.2.4", "bundled": true, "dev": true, + "optional": true, "requires": { "safe-buffer": "^5.1.1", "yallist": "^3.0.0" @@ -7466,6 +7706,7 @@ "version": "0.5.1", "bundled": true, "dev": true, + "optional": true, "requires": { "minimist": "0.0.8" } @@ -7546,7 +7787,8 @@ "number-is-nan": { "version": "1.0.1", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "object-assign": { "version": "4.1.1", @@ -7558,6 +7800,7 @@ "version": "1.4.0", "bundled": true, "dev": true, + "optional": true, "requires": { "wrappy": "1" } @@ -7643,7 +7886,8 @@ "safe-buffer": { "version": "5.1.1", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "safer-buffer": { "version": "2.1.2", @@ -7679,6 +7923,7 @@ "version": "1.0.2", "bundled": true, "dev": true, + "optional": true, "requires": { "code-point-at": "^1.0.0", "is-fullwidth-code-point": "^1.0.0", @@ -7698,6 +7943,7 @@ "version": "3.0.1", "bundled": true, "dev": true, + "optional": true, "requires": { "ansi-regex": "^2.0.0" } @@ -7741,12 +7987,14 @@ "wrappy": { "version": "1.0.2", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "yallist": { "version": "3.0.2", "bundled": true, - "dev": true + "dev": true, + "optional": true } } }, @@ -9032,6 +9280,15 @@ } } }, + "humanize-ms": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", + "integrity": "sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0=", + "dev": true, + "requires": { + "ms": "^2.0.0" + } + }, "husky": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/husky/-/husky-1.0.0.tgz", @@ -11309,6 +11566,12 @@ "lodash._root": "^3.0.0" } }, + "lodash.flatten": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", + "integrity": "sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8=", + "dev": true + }, "lodash.isarguments": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz", @@ -11338,6 +11601,18 @@ "lodash.isarray": "^3.0.0" } }, + "lodash.mapkeys": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash.mapkeys/-/lodash.mapkeys-4.6.0.tgz", + "integrity": "sha1-3yz6Ix18V8eorQA6va1dc9PqUZU=", + "dev": true + }, + "lodash.mapvalues": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash.mapvalues/-/lodash.mapvalues-4.6.0.tgz", + "integrity": "sha1-G6+lAF3p3W9PJmaMMMo3IwzJaJw=", + "dev": true + }, "lodash.memoize": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-3.0.4.tgz", @@ -12576,6 +12851,12 @@ "lower-case": "^1.1.1" } }, + "node-fetch": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.3.0.tgz", + "integrity": "sha512-MOd8pV3fxENbryESLgVIeaGKrdl+uaYhCSSVkjeOb/31/njTpcis5aWfdqgNlHIrKOLRbMnfPINPOML2CIFeXA==", + "dev": true + }, "node-forge": { "version": "0.7.5", "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.7.5.tgz", @@ -13606,6 +13887,12 @@ } } }, + "png-async": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/png-async/-/png-async-0.9.3.tgz", + "integrity": "sha512-IMJgiYXEFSN4nM+gQL5DYtMOGLa4/JoRn4CSVTqqfZoX03TS7Un58MKHulvd42/VTDNoHp+acniadQU0jeJkoA==", + "dev": true + }, "portfinder": { "version": "1.0.19", "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.19.tgz", @@ -15546,6 +15833,12 @@ "safe-buffer": "^5.1.1" } }, + "stack-trace": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", + "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=", + "dev": true + }, "static-extend": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", @@ -15956,6 +16249,12 @@ } } }, + "throat": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/throat/-/throat-4.1.0.tgz", + "integrity": "sha1-iQN8vJLFarGJJua6TLsgDhVnKmo=", + "dev": true + }, "throttleit": { "version": "0.0.2", "resolved": "https://registry.npmjs.org/throttleit/-/throttleit-0.0.2.tgz", @@ -17715,6 +18014,12 @@ "integrity": "sha512-nqHUnMXmBzT0w570r2JpJxfiSD1IzoI+HGVdd3aZ0yNi3ngvQ4jv1dtHt5VGxfI2yj5yqImPhOK4vmIh2xMbGg==", "dev": true }, + "whatwg-fetch": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.0.0.tgz", + "integrity": "sha512-9GSJUgz1D4MfyKU7KRqwOjXCXTqWdFNvEr7eUBYchQiVc744mqK/MzXPNR2WsPkmkOa4ywfg8C2n8h+13Bey1Q==", + "dev": true + }, "when": { "version": "3.6.4", "resolved": "https://registry.npmjs.org/when/-/when-3.6.4.tgz", diff --git a/package.json b/package.json index a5a20445bd..2e567d5cdf 100755 --- a/package.json +++ b/package.json @@ -40,9 +40,10 @@ "git-commit-changelog": "git commit -am \"chore(changelog): update [skip ci] \"", "changelog": "conventional-changelog -i CHANGELOG.md -s -p angular -r 2", "cy:open": "cypress open", - "cy:run:smoke": "cypress run --config integrationFolder=cypress/integration", - "cy:run:full": "cypress run --config integrationFolder=cypress/full", - "cy:run:all": "cypress run --config integrationFolder=cypress", + "cy:run:smoke": "APPLITOOLS_CONCURRENCY=100 cypress run --config integrationFolder=cypress/integration", + "cy:run:full": "APPLITOOLS_CONCURRENCY=100 cypress run --config integrationFolder=cypress/full", + "cy:run:all": "APPLITOOLS_CONCURRENCY=100 cypress run --config integrationFolder=cypress --spec '**/*_spec.ts", + "cy:run:snapshot": "APPLITOOLS_SHOW_LOGS=1 APPLITOOLS_CONCURRENCY=100 cypress run --config integrationFolder=cypress/snapshot", "view-stats": "webpack-bundle-analyzer demo/dist/stats.json", "build:dynamic": "run-s build build:client-and-server-bundles webpack:server configure-heroku", "serve:dynamic": "node demo/dist/server", @@ -98,6 +99,7 @@ "@angular/platform-server": "6.0.1", "@angular/router": "6.0.1", "@angular/service-worker": "6.0.1", + "@applitools/eyes.cypress": "3.4.2", "@cypress/webpack-preprocessor": "3.0.1", "@netbasal/spectator": "2.2.0-rc.2", "@nguniversal/express-engine": "6.0.0",