├── .gitignore ├── .travis.yml ├── README.md ├── conf.js ├── package-lock.json ├── package.json └── specs ├── invalid_login_spec.js └── valid_login_spec.js /.gitignore: -------------------------------------------------------------------------------- 1 | # Created by .ignore support plugin (hsz.mobi) 2 | .idea/ 3 | node_modules/ 4 | *~ 5 | */*~ -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | node_js: 3 | - '12.13.0' 4 | env: 5 | global: 6 | - SAUCE_USERNAME=sauce_examples 7 | addons: 8 | jwt: 9 | secure: aVz3Ma2vXC/jY98E5shBuiPE6SR/8SrrLGS4xaxVXh7nsIp03njlGueflPxmZmpgxSYjwGBsWKPwkzi9XjrFqLItti6hcEoe/M7KOL+cYDb/1/4hurHKg4TG3bkOLfr6qKiHbRC+sn/wVfdw4Axfw7slqeFeYD7NVFseuE5GJ7yiRB9My+BTmTsfqS7RHZdWXWxNyA0OmDjoa9XmgdMmd1OL5hn4uk42VYsZgY/zvg2BSFszlNWi9nezySzIwbFJUp1AIOIYNm0+fm8NqWrTA8qX00C1d88jFs18CAaWBSwJvy6bhsDxMKMXEY3E1crr2PhzfkYeI2Ft060qLnuyu0egCk28SACDckBQJmTm2PghtT+NxaSBioWQzFVYAEi0WqIdTPulxGhWiMbhhQLypjBjelhVStyP0BfiXzMzf5v1H5BsLUUZPbJ3Z0ryWFgR1JbqfZzwj0SnpRmz3QIeKyolQPJywgAC0iRdMhpcv4i5vhDNMX1cmu0P5NmXy9ZzwMgzTUyDVf6e/Lu+F8WtMjQA8HAe3SknyD3LGpQqPbULmr4ouP+E2T5cROuVO7r9+xTf+/76BteSMWu25wFGC57jkVas8IizceM+B7iv0CYLGNsB0bGSyWch6GUQiSIzgR/DgtqWo25ZCscP+f6jKUqDu2dd2N107WMEBdevG3o= 10 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | >**NOTE:
** 2 | > This project is not maintained anymore by Sauce Labs 3 | 4 | 5 | ## JS-Protractor-Selenium 6 | 7 | This code is provided on an "AS-IS” basis without warranty of any kind, either express or implied, including without limitation any implied warranties of condition, uninterrupted use, merchantability, fitness for a particular purpose, or non-infringement. Your tests and testing environments may require you to modify this framework. Issues regarding this framework should be submitted through GitHub. For questions regarding Sauce Labs integration, please see the Sauce Labs documentation at https://wiki.saucelabs.com/. This framework is not maintained by Sauce Labs Support. 8 | 9 | ### Environment Setup 10 | 11 | 1. Global Dependencies 12 | * Install [Node.js](https://nodejs.org/en/) 13 | * Or Install Node.js with [Homebrew](http://brew.sh/) 14 | ``` 15 | $ brew install node 16 | ``` 17 | 2. Sauce Credentials 18 | * In the terminal export your Sauce Labs Credentials as environmental variables: 19 | ``` 20 | $ export SAUCE_USERNAME= 21 | $ export SAUCE_ACCESS_KEY= 22 | ``` 23 | 3. Project Dependencies 24 | * Install Node modules 25 | ``` 26 | $ npm install 27 | ``` 28 | 29 | ### Running Tests 30 | 31 | * Tests in Parallel: 32 | ``` 33 | $ ./node_modules/.bin/protractor conf.js 34 | ``` 35 | 36 | [Sauce Labs Dashboard](https://saucelabs.com/beta/dashboard/) 37 | 38 | ### Advice/Troubleshooting 39 | 40 | 1. There may be additional latency when using a remote webdriver to run tests on Sauce Labs. Timeouts or Waits may need to be increased. 41 | * [Selenium tips regarding explicit waits](https://wiki.saucelabs.com/display/DOCS/Best+Practice%3A+Use+Explicit+Waits) 42 | 43 | ### Resources 44 | ##### [Sauce Labs Documentation](https://wiki.saucelabs.com/) 45 | 46 | ##### [SeleniumHQ Documentation](http://www.seleniumhq.org/docs/) 47 | 48 | ##### [Protractor Documentation](https://angular.github.io/protractor/#/api) 49 | 50 | ##### [Node Documentation](https://nodejs.org/en/docs/) 51 | 52 | ##### [Stack Overflow](http://stackoverflow.com/) 53 | * A great resource to search for issues not explicitly covered by documentation 54 | -------------------------------------------------------------------------------- /conf.js: -------------------------------------------------------------------------------- 1 | exports.config = { 2 | sauceUser: process.env.SAUCE_USERNAME, 3 | sauceKey: process.env.SAUCE_ACCESS_KEY, 4 | // sauceRegion: 'eu', 5 | 6 | specs: ['specs/*spec.js'], 7 | 8 | onPrepare: function () { 9 | var caps = browser.getCapabilities() 10 | }, 11 | 12 | multiCapabilities: [{ 13 | browserName: 'firefox', 14 | version: 'latest', 15 | platform: 'OS X 10.13', 16 | name: "firefox-tests", 17 | shardTestFiles: true, 18 | maxInstances: 25 19 | }, { 20 | browserName: 'chrome', 21 | version: 'latest', 22 | platform: 'Windows 10', 23 | name: "chrome-tests", 24 | shardTestFiles: true, 25 | maxInstances: 25 26 | }], 27 | 28 | onComplete: function () { 29 | 30 | var printSessionId = function (jobName) { 31 | browser.getSession().then(function (session) { 32 | console.log('SauceOnDemandSessionID=' + session.getId() + ' job-name=' + jobName); 33 | }); 34 | } 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "js-protractor-sample", 3 | "version": "0.2.0", 4 | "lockfileVersion": 1, 5 | "requires": true, 6 | "dependencies": { 7 | "@types/q": { 8 | "version": "0.0.32", 9 | "resolved": "https://registry.npmjs.org/@types/q/-/q-0.0.32.tgz", 10 | "integrity": "sha1-vShOV8hPEyXacCur/IKlMoGQwMU=", 11 | "dev": true 12 | }, 13 | "@types/selenium-webdriver": { 14 | "version": "3.0.16", 15 | "resolved": "https://registry.npmjs.org/@types/selenium-webdriver/-/selenium-webdriver-3.0.16.tgz", 16 | "integrity": "sha512-lMC2G0ItF2xv4UCiwbJGbnJlIuUixHrioOhNGHSCsYCJ8l4t9hMCUimCytvFv7qy6AfSzRxhRHoGa+UqaqwyeA==", 17 | "dev": true 18 | }, 19 | "adm-zip": { 20 | "version": "0.4.13", 21 | "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.13.tgz", 22 | "integrity": "sha512-fERNJX8sOXfel6qCBCMPvZLzENBEhZTzKqg6vrOW5pvoEaQuJhRU4ndTAh6lHOxn1I6jnz2NHra56ZODM751uw==", 23 | "dev": true 24 | }, 25 | "agent-base": { 26 | "version": "4.3.0", 27 | "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.3.0.tgz", 28 | "integrity": "sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==", 29 | "dev": true, 30 | "requires": { 31 | "es6-promisify": "^5.0.0" 32 | } 33 | }, 34 | "ajv": { 35 | "version": "6.10.2", 36 | "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz", 37 | "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==", 38 | "dev": true, 39 | "requires": { 40 | "fast-deep-equal": "^2.0.1", 41 | "fast-json-stable-stringify": "^2.0.0", 42 | "json-schema-traverse": "^0.4.1", 43 | "uri-js": "^4.2.2" 44 | } 45 | }, 46 | "ansi-regex": { 47 | "version": "2.1.1", 48 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", 49 | "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", 50 | "dev": true 51 | }, 52 | "ansi-styles": { 53 | "version": "2.2.1", 54 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", 55 | "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", 56 | "dev": true 57 | }, 58 | "array-union": { 59 | "version": "1.0.2", 60 | "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", 61 | "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", 62 | "dev": true, 63 | "requires": { 64 | "array-uniq": "^1.0.1" 65 | } 66 | }, 67 | "array-uniq": { 68 | "version": "1.0.3", 69 | "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", 70 | "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", 71 | "dev": true 72 | }, 73 | "arrify": { 74 | "version": "1.0.1", 75 | "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", 76 | "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", 77 | "dev": true 78 | }, 79 | "asn1": { 80 | "version": "0.2.4", 81 | "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", 82 | "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", 83 | "dev": true, 84 | "requires": { 85 | "safer-buffer": "~2.1.0" 86 | } 87 | }, 88 | "assert-plus": { 89 | "version": "1.0.0", 90 | "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", 91 | "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", 92 | "dev": true 93 | }, 94 | "assertion-error": { 95 | "version": "1.1.0", 96 | "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", 97 | "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", 98 | "dev": true 99 | }, 100 | "asynckit": { 101 | "version": "0.4.0", 102 | "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", 103 | "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", 104 | "dev": true 105 | }, 106 | "aws-sign2": { 107 | "version": "0.7.0", 108 | "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", 109 | "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", 110 | "dev": true 111 | }, 112 | "aws4": { 113 | "version": "1.8.0", 114 | "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz", 115 | "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==", 116 | "dev": true 117 | }, 118 | "balanced-match": { 119 | "version": "1.0.0", 120 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", 121 | "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", 122 | "dev": true 123 | }, 124 | "bcrypt-pbkdf": { 125 | "version": "1.0.2", 126 | "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", 127 | "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", 128 | "dev": true, 129 | "requires": { 130 | "tweetnacl": "^0.14.3" 131 | } 132 | }, 133 | "blocking-proxy": { 134 | "version": "1.0.1", 135 | "resolved": "https://registry.npmjs.org/blocking-proxy/-/blocking-proxy-1.0.1.tgz", 136 | "integrity": "sha512-KE8NFMZr3mN2E0HcvCgRtX7DjhiIQrwle+nSVJVC/yqFb9+xznHl2ZcoBp2L9qzkI4t4cBFJ1efXF8Dwi132RA==", 137 | "dev": true, 138 | "requires": { 139 | "minimist": "^1.2.0" 140 | } 141 | }, 142 | "brace-expansion": { 143 | "version": "1.1.11", 144 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", 145 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", 146 | "dev": true, 147 | "requires": { 148 | "balanced-match": "^1.0.0", 149 | "concat-map": "0.0.1" 150 | } 151 | }, 152 | "browserstack": { 153 | "version": "1.5.3", 154 | "resolved": "https://registry.npmjs.org/browserstack/-/browserstack-1.5.3.tgz", 155 | "integrity": "sha512-AO+mECXsW4QcqC9bxwM29O7qWa7bJT94uBFzeb5brylIQwawuEziwq20dPYbins95GlWzOawgyDNdjYAo32EKg==", 156 | "dev": true, 157 | "requires": { 158 | "https-proxy-agent": "^2.2.1" 159 | }, 160 | "dependencies": { 161 | "https-proxy-agent": { 162 | "version": "2.2.3", 163 | "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.3.tgz", 164 | "integrity": "sha512-Ytgnz23gm2DVftnzqRRz2dOXZbGd2uiajSw/95bPp6v53zPRspQjLm/AfBgqbJ2qfeRXWIOMVLpp86+/5yX39Q==", 165 | "dev": true, 166 | "requires": { 167 | "agent-base": "^4.3.0", 168 | "debug": "^3.1.0" 169 | } 170 | } 171 | } 172 | }, 173 | "caseless": { 174 | "version": "0.12.0", 175 | "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", 176 | "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", 177 | "dev": true 178 | }, 179 | "chai": { 180 | "version": "4.2.0", 181 | "resolved": "https://registry.npmjs.org/chai/-/chai-4.2.0.tgz", 182 | "integrity": "sha512-XQU3bhBukrOsQCuwZndwGcCVQHyZi53fQ6Ys1Fym7E4olpIqqZZhhoFJoaKVvV17lWQoXYwgWN2nF5crA8J2jw==", 183 | "dev": true, 184 | "requires": { 185 | "assertion-error": "^1.1.0", 186 | "check-error": "^1.0.2", 187 | "deep-eql": "^3.0.1", 188 | "get-func-name": "^2.0.0", 189 | "pathval": "^1.1.0", 190 | "type-detect": "^4.0.5" 191 | } 192 | }, 193 | "chalk": { 194 | "version": "1.1.3", 195 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", 196 | "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", 197 | "dev": true, 198 | "requires": { 199 | "ansi-styles": "^2.2.1", 200 | "escape-string-regexp": "^1.0.2", 201 | "has-ansi": "^2.0.0", 202 | "strip-ansi": "^3.0.0", 203 | "supports-color": "^2.0.0" 204 | } 205 | }, 206 | "check-error": { 207 | "version": "1.0.2", 208 | "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", 209 | "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=", 210 | "dev": true 211 | }, 212 | "combined-stream": { 213 | "version": "1.0.8", 214 | "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", 215 | "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", 216 | "dev": true, 217 | "requires": { 218 | "delayed-stream": "~1.0.0" 219 | } 220 | }, 221 | "concat-map": { 222 | "version": "0.0.1", 223 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 224 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", 225 | "dev": true 226 | }, 227 | "core-util-is": { 228 | "version": "1.0.2", 229 | "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", 230 | "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", 231 | "dev": true 232 | }, 233 | "dashdash": { 234 | "version": "1.14.1", 235 | "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", 236 | "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", 237 | "dev": true, 238 | "requires": { 239 | "assert-plus": "^1.0.0" 240 | } 241 | }, 242 | "debug": { 243 | "version": "3.2.6", 244 | "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", 245 | "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", 246 | "dev": true, 247 | "requires": { 248 | "ms": "^2.1.1" 249 | } 250 | }, 251 | "deep-eql": { 252 | "version": "3.0.1", 253 | "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz", 254 | "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", 255 | "dev": true, 256 | "requires": { 257 | "type-detect": "^4.0.0" 258 | } 259 | }, 260 | "define-properties": { 261 | "version": "1.1.3", 262 | "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", 263 | "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", 264 | "dev": true, 265 | "requires": { 266 | "object-keys": "^1.0.12" 267 | } 268 | }, 269 | "del": { 270 | "version": "2.2.2", 271 | "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz", 272 | "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=", 273 | "dev": true, 274 | "requires": { 275 | "globby": "^5.0.0", 276 | "is-path-cwd": "^1.0.0", 277 | "is-path-in-cwd": "^1.0.0", 278 | "object-assign": "^4.0.1", 279 | "pify": "^2.0.0", 280 | "pinkie-promise": "^2.0.0", 281 | "rimraf": "^2.2.8" 282 | } 283 | }, 284 | "delayed-stream": { 285 | "version": "1.0.0", 286 | "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", 287 | "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", 288 | "dev": true 289 | }, 290 | "ecc-jsbn": { 291 | "version": "0.1.2", 292 | "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", 293 | "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", 294 | "dev": true, 295 | "requires": { 296 | "jsbn": "~0.1.0", 297 | "safer-buffer": "^2.1.0" 298 | } 299 | }, 300 | "es-abstract": { 301 | "version": "1.16.0", 302 | "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.16.0.tgz", 303 | "integrity": "sha512-xdQnfykZ9JMEiasTAJZJdMWCQ1Vm00NBw79/AWi7ELfZuuPCSOMDZbT9mkOfSctVtfhb+sAAzrm+j//GjjLHLg==", 304 | "dev": true, 305 | "requires": { 306 | "es-to-primitive": "^1.2.0", 307 | "function-bind": "^1.1.1", 308 | "has": "^1.0.3", 309 | "has-symbols": "^1.0.0", 310 | "is-callable": "^1.1.4", 311 | "is-regex": "^1.0.4", 312 | "object-inspect": "^1.6.0", 313 | "object-keys": "^1.1.1", 314 | "string.prototype.trimleft": "^2.1.0", 315 | "string.prototype.trimright": "^2.1.0" 316 | } 317 | }, 318 | "es-to-primitive": { 319 | "version": "1.2.0", 320 | "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.0.tgz", 321 | "integrity": "sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==", 322 | "dev": true, 323 | "requires": { 324 | "is-callable": "^1.1.4", 325 | "is-date-object": "^1.0.1", 326 | "is-symbol": "^1.0.2" 327 | } 328 | }, 329 | "es6-promise": { 330 | "version": "4.2.8", 331 | "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", 332 | "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==", 333 | "dev": true 334 | }, 335 | "es6-promisify": { 336 | "version": "5.0.0", 337 | "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", 338 | "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", 339 | "dev": true, 340 | "requires": { 341 | "es6-promise": "^4.0.3" 342 | } 343 | }, 344 | "escape-string-regexp": { 345 | "version": "1.0.5", 346 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", 347 | "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", 348 | "dev": true 349 | }, 350 | "exit": { 351 | "version": "0.1.2", 352 | "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", 353 | "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", 354 | "dev": true 355 | }, 356 | "extend": { 357 | "version": "3.0.2", 358 | "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", 359 | "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", 360 | "dev": true 361 | }, 362 | "extsprintf": { 363 | "version": "1.3.0", 364 | "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", 365 | "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", 366 | "dev": true 367 | }, 368 | "fast-deep-equal": { 369 | "version": "2.0.1", 370 | "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", 371 | "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", 372 | "dev": true 373 | }, 374 | "fast-json-stable-stringify": { 375 | "version": "2.0.0", 376 | "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", 377 | "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", 378 | "dev": true 379 | }, 380 | "forever-agent": { 381 | "version": "0.6.1", 382 | "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", 383 | "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", 384 | "dev": true 385 | }, 386 | "form-data": { 387 | "version": "2.3.3", 388 | "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", 389 | "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", 390 | "dev": true, 391 | "requires": { 392 | "asynckit": "^0.4.0", 393 | "combined-stream": "^1.0.6", 394 | "mime-types": "^2.1.12" 395 | } 396 | }, 397 | "fs.realpath": { 398 | "version": "1.0.0", 399 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", 400 | "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", 401 | "dev": true 402 | }, 403 | "function-bind": { 404 | "version": "1.1.1", 405 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", 406 | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", 407 | "dev": true 408 | }, 409 | "get-func-name": { 410 | "version": "2.0.0", 411 | "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", 412 | "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=", 413 | "dev": true 414 | }, 415 | "getpass": { 416 | "version": "0.1.7", 417 | "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", 418 | "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", 419 | "dev": true, 420 | "requires": { 421 | "assert-plus": "^1.0.0" 422 | } 423 | }, 424 | "glob": { 425 | "version": "7.1.5", 426 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.5.tgz", 427 | "integrity": "sha512-J9dlskqUXK1OeTOYBEn5s8aMukWMwWfs+rPTn/jn50Ux4MNXVhubL1wu/j2t+H4NVI+cXEcCaYellqaPVGXNqQ==", 428 | "dev": true, 429 | "requires": { 430 | "fs.realpath": "^1.0.0", 431 | "inflight": "^1.0.4", 432 | "inherits": "2", 433 | "minimatch": "^3.0.4", 434 | "once": "^1.3.0", 435 | "path-is-absolute": "^1.0.0" 436 | } 437 | }, 438 | "globby": { 439 | "version": "5.0.0", 440 | "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz", 441 | "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=", 442 | "dev": true, 443 | "requires": { 444 | "array-union": "^1.0.1", 445 | "arrify": "^1.0.0", 446 | "glob": "^7.0.3", 447 | "object-assign": "^4.0.1", 448 | "pify": "^2.0.0", 449 | "pinkie-promise": "^2.0.0" 450 | } 451 | }, 452 | "har-schema": { 453 | "version": "2.0.0", 454 | "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", 455 | "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", 456 | "dev": true 457 | }, 458 | "har-validator": { 459 | "version": "5.1.3", 460 | "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz", 461 | "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==", 462 | "dev": true, 463 | "requires": { 464 | "ajv": "^6.5.5", 465 | "har-schema": "^2.0.0" 466 | } 467 | }, 468 | "has": { 469 | "version": "1.0.3", 470 | "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", 471 | "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", 472 | "dev": true, 473 | "requires": { 474 | "function-bind": "^1.1.1" 475 | } 476 | }, 477 | "has-ansi": { 478 | "version": "2.0.0", 479 | "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", 480 | "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", 481 | "dev": true, 482 | "requires": { 483 | "ansi-regex": "^2.0.0" 484 | } 485 | }, 486 | "has-symbols": { 487 | "version": "1.0.0", 488 | "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz", 489 | "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=", 490 | "dev": true 491 | }, 492 | "http-signature": { 493 | "version": "1.2.0", 494 | "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", 495 | "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", 496 | "dev": true, 497 | "requires": { 498 | "assert-plus": "^1.0.0", 499 | "jsprim": "^1.2.2", 500 | "sshpk": "^1.7.0" 501 | } 502 | }, 503 | "https-proxy-agent": { 504 | "version": "3.0.1", 505 | "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-3.0.1.tgz", 506 | "integrity": "sha512-+ML2Rbh6DAuee7d07tYGEKOEi2voWPUGan+ExdPbPW6Z3svq+JCqr0v8WmKPOkz1vOVykPCBSuobe7G8GJUtVg==", 507 | "dev": true, 508 | "requires": { 509 | "agent-base": "^4.3.0", 510 | "debug": "^3.1.0" 511 | } 512 | }, 513 | "immediate": { 514 | "version": "3.0.6", 515 | "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", 516 | "integrity": "sha1-nbHb0Pr43m++D13V5Wu2BigN5ps=", 517 | "dev": true 518 | }, 519 | "inflight": { 520 | "version": "1.0.6", 521 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", 522 | "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", 523 | "dev": true, 524 | "requires": { 525 | "once": "^1.3.0", 526 | "wrappy": "1" 527 | } 528 | }, 529 | "inherits": { 530 | "version": "2.0.4", 531 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", 532 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", 533 | "dev": true 534 | }, 535 | "ini": { 536 | "version": "1.3.5", 537 | "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", 538 | "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", 539 | "dev": true 540 | }, 541 | "is-callable": { 542 | "version": "1.1.4", 543 | "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz", 544 | "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==", 545 | "dev": true 546 | }, 547 | "is-date-object": { 548 | "version": "1.0.1", 549 | "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz", 550 | "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=", 551 | "dev": true 552 | }, 553 | "is-path-cwd": { 554 | "version": "1.0.0", 555 | "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", 556 | "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=", 557 | "dev": true 558 | }, 559 | "is-path-in-cwd": { 560 | "version": "1.0.1", 561 | "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz", 562 | "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==", 563 | "dev": true, 564 | "requires": { 565 | "is-path-inside": "^1.0.0" 566 | } 567 | }, 568 | "is-path-inside": { 569 | "version": "1.0.1", 570 | "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", 571 | "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", 572 | "dev": true, 573 | "requires": { 574 | "path-is-inside": "^1.0.1" 575 | } 576 | }, 577 | "is-regex": { 578 | "version": "1.0.4", 579 | "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", 580 | "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", 581 | "dev": true, 582 | "requires": { 583 | "has": "^1.0.1" 584 | } 585 | }, 586 | "is-symbol": { 587 | "version": "1.0.2", 588 | "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz", 589 | "integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==", 590 | "dev": true, 591 | "requires": { 592 | "has-symbols": "^1.0.0" 593 | } 594 | }, 595 | "is-typedarray": { 596 | "version": "1.0.0", 597 | "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", 598 | "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", 599 | "dev": true 600 | }, 601 | "isarray": { 602 | "version": "1.0.0", 603 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", 604 | "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", 605 | "dev": true 606 | }, 607 | "isstream": { 608 | "version": "0.1.2", 609 | "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", 610 | "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", 611 | "dev": true 612 | }, 613 | "jasmine": { 614 | "version": "2.8.0", 615 | "resolved": "https://registry.npmjs.org/jasmine/-/jasmine-2.8.0.tgz", 616 | "integrity": "sha1-awicChFXax8W3xG4AUbZHU6Lij4=", 617 | "dev": true, 618 | "requires": { 619 | "exit": "^0.1.2", 620 | "glob": "^7.0.6", 621 | "jasmine-core": "~2.8.0" 622 | } 623 | }, 624 | "jasmine-core": { 625 | "version": "2.8.0", 626 | "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-2.8.0.tgz", 627 | "integrity": "sha1-vMl5rh+f0FcB5F5S5l06XWPxok4=", 628 | "dev": true 629 | }, 630 | "jasminewd2": { 631 | "version": "2.2.0", 632 | "resolved": "https://registry.npmjs.org/jasminewd2/-/jasminewd2-2.2.0.tgz", 633 | "integrity": "sha1-43zwsX8ZnM4jvqcbIDk5Uka07E4=", 634 | "dev": true 635 | }, 636 | "jsbn": { 637 | "version": "0.1.1", 638 | "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", 639 | "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", 640 | "dev": true 641 | }, 642 | "json-schema": { 643 | "version": "0.2.3", 644 | "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", 645 | "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", 646 | "dev": true 647 | }, 648 | "json-schema-traverse": { 649 | "version": "0.4.1", 650 | "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", 651 | "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", 652 | "dev": true 653 | }, 654 | "json-stringify-safe": { 655 | "version": "5.0.1", 656 | "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", 657 | "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", 658 | "dev": true 659 | }, 660 | "jsprim": { 661 | "version": "1.4.1", 662 | "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", 663 | "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", 664 | "dev": true, 665 | "requires": { 666 | "assert-plus": "1.0.0", 667 | "extsprintf": "1.3.0", 668 | "json-schema": "0.2.3", 669 | "verror": "1.10.0" 670 | } 671 | }, 672 | "jszip": { 673 | "version": "3.2.2", 674 | "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.2.2.tgz", 675 | "integrity": "sha512-NmKajvAFQpbg3taXQXr/ccS2wcucR1AZ+NtyWp2Nq7HHVsXhcJFR8p0Baf32C2yVvBylFWVeKf+WI2AnvlPhpA==", 676 | "dev": true, 677 | "requires": { 678 | "lie": "~3.3.0", 679 | "pako": "~1.0.2", 680 | "readable-stream": "~2.3.6", 681 | "set-immediate-shim": "~1.0.1" 682 | } 683 | }, 684 | "lie": { 685 | "version": "3.3.0", 686 | "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", 687 | "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", 688 | "dev": true, 689 | "requires": { 690 | "immediate": "~3.0.5" 691 | } 692 | }, 693 | "mime-db": { 694 | "version": "1.40.0", 695 | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz", 696 | "integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA==", 697 | "dev": true 698 | }, 699 | "mime-types": { 700 | "version": "2.1.24", 701 | "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz", 702 | "integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==", 703 | "dev": true, 704 | "requires": { 705 | "mime-db": "1.40.0" 706 | } 707 | }, 708 | "minimatch": { 709 | "version": "3.0.4", 710 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", 711 | "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", 712 | "dev": true, 713 | "requires": { 714 | "brace-expansion": "^1.1.7" 715 | } 716 | }, 717 | "minimist": { 718 | "version": "1.2.0", 719 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", 720 | "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", 721 | "dev": true 722 | }, 723 | "ms": { 724 | "version": "2.1.2", 725 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", 726 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", 727 | "dev": true 728 | }, 729 | "oauth-sign": { 730 | "version": "0.9.0", 731 | "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", 732 | "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", 733 | "dev": true 734 | }, 735 | "object-assign": { 736 | "version": "4.1.1", 737 | "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", 738 | "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", 739 | "dev": true 740 | }, 741 | "object-inspect": { 742 | "version": "1.6.0", 743 | "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.6.0.tgz", 744 | "integrity": "sha512-GJzfBZ6DgDAmnuaM3104jR4s1Myxr3Y3zfIyN4z3UdqN69oSRacNK8UhnobDdC+7J2AHCjGwxQubNJfE70SXXQ==", 745 | "dev": true 746 | }, 747 | "object-keys": { 748 | "version": "1.1.1", 749 | "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", 750 | "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", 751 | "dev": true 752 | }, 753 | "object.getownpropertydescriptors": { 754 | "version": "2.0.3", 755 | "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz", 756 | "integrity": "sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY=", 757 | "dev": true, 758 | "requires": { 759 | "define-properties": "^1.1.2", 760 | "es-abstract": "^1.5.1" 761 | } 762 | }, 763 | "once": { 764 | "version": "1.4.0", 765 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", 766 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", 767 | "dev": true, 768 | "requires": { 769 | "wrappy": "1" 770 | } 771 | }, 772 | "optimist": { 773 | "version": "0.6.1", 774 | "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", 775 | "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", 776 | "dev": true, 777 | "requires": { 778 | "minimist": "~0.0.1", 779 | "wordwrap": "~0.0.2" 780 | }, 781 | "dependencies": { 782 | "minimist": { 783 | "version": "0.0.10", 784 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz", 785 | "integrity": "sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8=", 786 | "dev": true 787 | } 788 | } 789 | }, 790 | "os-tmpdir": { 791 | "version": "1.0.2", 792 | "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", 793 | "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", 794 | "dev": true 795 | }, 796 | "pako": { 797 | "version": "1.0.10", 798 | "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.10.tgz", 799 | "integrity": "sha512-0DTvPVU3ed8+HNXOu5Bs+o//Mbdj9VNQMUOe9oKCwh8l0GNwpTDMKCWbRjgtD291AWnkAgkqA/LOnQS8AmS1tw==", 800 | "dev": true 801 | }, 802 | "path-is-absolute": { 803 | "version": "1.0.1", 804 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", 805 | "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", 806 | "dev": true 807 | }, 808 | "path-is-inside": { 809 | "version": "1.0.2", 810 | "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", 811 | "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", 812 | "dev": true 813 | }, 814 | "pathval": { 815 | "version": "1.1.0", 816 | "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.0.tgz", 817 | "integrity": "sha1-uULm1L3mUwBe9rcTYd74cn0GReA=", 818 | "dev": true 819 | }, 820 | "performance-now": { 821 | "version": "2.1.0", 822 | "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", 823 | "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", 824 | "dev": true 825 | }, 826 | "pify": { 827 | "version": "2.3.0", 828 | "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", 829 | "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", 830 | "dev": true 831 | }, 832 | "pinkie": { 833 | "version": "2.0.4", 834 | "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", 835 | "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", 836 | "dev": true 837 | }, 838 | "pinkie-promise": { 839 | "version": "2.0.1", 840 | "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", 841 | "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", 842 | "dev": true, 843 | "requires": { 844 | "pinkie": "^2.0.0" 845 | } 846 | }, 847 | "process-nextick-args": { 848 | "version": "2.0.1", 849 | "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", 850 | "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", 851 | "dev": true 852 | }, 853 | "protractor": { 854 | "version": "5.4.2", 855 | "resolved": "https://registry.npmjs.org/protractor/-/protractor-5.4.2.tgz", 856 | "integrity": "sha512-zlIj64Cr6IOWP7RwxVeD8O4UskLYPoyIcg0HboWJL9T79F1F0VWtKkGTr/9GN6BKL+/Q/GmM7C9kFVCfDbP5sA==", 857 | "dev": true, 858 | "requires": { 859 | "@types/q": "^0.0.32", 860 | "@types/selenium-webdriver": "^3.0.0", 861 | "blocking-proxy": "^1.0.0", 862 | "browserstack": "^1.5.1", 863 | "chalk": "^1.1.3", 864 | "glob": "^7.0.3", 865 | "jasmine": "2.8.0", 866 | "jasminewd2": "^2.1.0", 867 | "optimist": "~0.6.0", 868 | "q": "1.4.1", 869 | "saucelabs": "^1.5.0", 870 | "selenium-webdriver": "3.6.0", 871 | "source-map-support": "~0.4.0", 872 | "webdriver-js-extender": "2.1.0", 873 | "webdriver-manager": "^12.0.6" 874 | }, 875 | "dependencies": { 876 | "webdriver-manager": { 877 | "version": "12.1.7", 878 | "resolved": "https://registry.npmjs.org/webdriver-manager/-/webdriver-manager-12.1.7.tgz", 879 | "integrity": "sha512-XINj6b8CYuUYC93SG3xPkxlyUc3IJbD6Vvo75CVGuG9uzsefDzWQrhz0Lq8vbPxtb4d63CZdYophF8k8Or/YiA==", 880 | "dev": true, 881 | "requires": { 882 | "adm-zip": "^0.4.9", 883 | "chalk": "^1.1.1", 884 | "del": "^2.2.0", 885 | "glob": "^7.0.3", 886 | "ini": "^1.3.4", 887 | "minimist": "^1.2.0", 888 | "q": "^1.4.1", 889 | "request": "^2.87.0", 890 | "rimraf": "^2.5.2", 891 | "semver": "^5.3.0", 892 | "xml2js": "^0.4.17" 893 | } 894 | } 895 | } 896 | }, 897 | "psl": { 898 | "version": "1.4.0", 899 | "resolved": "https://registry.npmjs.org/psl/-/psl-1.4.0.tgz", 900 | "integrity": "sha512-HZzqCGPecFLyoRj5HLfuDSKYTJkAfB5thKBIkRHtGjWwY7p1dAyveIbXIq4tO0KYfDF2tHqPUgY9SDnGm00uFw==", 901 | "dev": true 902 | }, 903 | "punycode": { 904 | "version": "2.1.1", 905 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", 906 | "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", 907 | "dev": true 908 | }, 909 | "q": { 910 | "version": "1.4.1", 911 | "resolved": "https://registry.npmjs.org/q/-/q-1.4.1.tgz", 912 | "integrity": "sha1-VXBbzZPF82c1MMLCy8DCs63cKG4=", 913 | "dev": true 914 | }, 915 | "qs": { 916 | "version": "6.5.2", 917 | "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", 918 | "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", 919 | "dev": true 920 | }, 921 | "readable-stream": { 922 | "version": "2.3.6", 923 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", 924 | "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", 925 | "dev": true, 926 | "requires": { 927 | "core-util-is": "~1.0.0", 928 | "inherits": "~2.0.3", 929 | "isarray": "~1.0.0", 930 | "process-nextick-args": "~2.0.0", 931 | "safe-buffer": "~5.1.1", 932 | "string_decoder": "~1.1.1", 933 | "util-deprecate": "~1.0.1" 934 | } 935 | }, 936 | "request": { 937 | "version": "2.88.0", 938 | "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", 939 | "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", 940 | "dev": true, 941 | "requires": { 942 | "aws-sign2": "~0.7.0", 943 | "aws4": "^1.8.0", 944 | "caseless": "~0.12.0", 945 | "combined-stream": "~1.0.6", 946 | "extend": "~3.0.2", 947 | "forever-agent": "~0.6.1", 948 | "form-data": "~2.3.2", 949 | "har-validator": "~5.1.0", 950 | "http-signature": "~1.2.0", 951 | "is-typedarray": "~1.0.0", 952 | "isstream": "~0.1.2", 953 | "json-stringify-safe": "~5.0.1", 954 | "mime-types": "~2.1.19", 955 | "oauth-sign": "~0.9.0", 956 | "performance-now": "^2.1.0", 957 | "qs": "~6.5.2", 958 | "safe-buffer": "^5.1.2", 959 | "tough-cookie": "~2.4.3", 960 | "tunnel-agent": "^0.6.0", 961 | "uuid": "^3.3.2" 962 | } 963 | }, 964 | "rimraf": { 965 | "version": "2.7.1", 966 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", 967 | "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", 968 | "dev": true, 969 | "requires": { 970 | "glob": "^7.1.3" 971 | } 972 | }, 973 | "safe-buffer": { 974 | "version": "5.1.2", 975 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", 976 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", 977 | "dev": true 978 | }, 979 | "safer-buffer": { 980 | "version": "2.1.2", 981 | "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", 982 | "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", 983 | "dev": true 984 | }, 985 | "saucelabs": { 986 | "version": "1.5.0", 987 | "resolved": "https://registry.npmjs.org/saucelabs/-/saucelabs-1.5.0.tgz", 988 | "integrity": "sha512-jlX3FGdWvYf4Q3LFfFWS1QvPg3IGCGWxIc8QBFdPTbpTJnt/v17FHXYVAn7C8sHf1yUXo2c7yIM0isDryfYtHQ==", 989 | "dev": true, 990 | "requires": { 991 | "https-proxy-agent": "^2.2.1" 992 | }, 993 | "dependencies": { 994 | "https-proxy-agent": { 995 | "version": "2.2.3", 996 | "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.3.tgz", 997 | "integrity": "sha512-Ytgnz23gm2DVftnzqRRz2dOXZbGd2uiajSw/95bPp6v53zPRspQjLm/AfBgqbJ2qfeRXWIOMVLpp86+/5yX39Q==", 998 | "dev": true, 999 | "requires": { 1000 | "agent-base": "^4.3.0", 1001 | "debug": "^3.1.0" 1002 | } 1003 | } 1004 | } 1005 | }, 1006 | "sax": { 1007 | "version": "1.2.4", 1008 | "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", 1009 | "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", 1010 | "dev": true 1011 | }, 1012 | "selenium-webdriver": { 1013 | "version": "3.6.0", 1014 | "resolved": "https://registry.npmjs.org/selenium-webdriver/-/selenium-webdriver-3.6.0.tgz", 1015 | "integrity": "sha512-WH7Aldse+2P5bbFBO4Gle/nuQOdVwpHMTL6raL3uuBj/vPG07k6uzt3aiahu352ONBr5xXh0hDlM3LhtXPOC4Q==", 1016 | "dev": true, 1017 | "requires": { 1018 | "jszip": "^3.1.3", 1019 | "rimraf": "^2.5.4", 1020 | "tmp": "0.0.30", 1021 | "xml2js": "^0.4.17" 1022 | } 1023 | }, 1024 | "semver": { 1025 | "version": "5.7.1", 1026 | "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", 1027 | "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", 1028 | "dev": true 1029 | }, 1030 | "set-immediate-shim": { 1031 | "version": "1.0.1", 1032 | "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", 1033 | "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=", 1034 | "dev": true 1035 | }, 1036 | "source-map": { 1037 | "version": "0.5.7", 1038 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", 1039 | "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", 1040 | "dev": true 1041 | }, 1042 | "source-map-support": { 1043 | "version": "0.4.18", 1044 | "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", 1045 | "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", 1046 | "dev": true, 1047 | "requires": { 1048 | "source-map": "^0.5.6" 1049 | } 1050 | }, 1051 | "sshpk": { 1052 | "version": "1.16.1", 1053 | "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", 1054 | "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", 1055 | "dev": true, 1056 | "requires": { 1057 | "asn1": "~0.2.3", 1058 | "assert-plus": "^1.0.0", 1059 | "bcrypt-pbkdf": "^1.0.0", 1060 | "dashdash": "^1.12.0", 1061 | "ecc-jsbn": "~0.1.1", 1062 | "getpass": "^0.1.1", 1063 | "jsbn": "~0.1.0", 1064 | "safer-buffer": "^2.0.2", 1065 | "tweetnacl": "~0.14.0" 1066 | } 1067 | }, 1068 | "string.prototype.trimleft": { 1069 | "version": "2.1.0", 1070 | "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.0.tgz", 1071 | "integrity": "sha512-FJ6b7EgdKxxbDxc79cOlok6Afd++TTs5szo+zJTUyow3ycrRfJVE2pq3vcN53XexvKZu/DJMDfeI/qMiZTrjTw==", 1072 | "dev": true, 1073 | "requires": { 1074 | "define-properties": "^1.1.3", 1075 | "function-bind": "^1.1.1" 1076 | } 1077 | }, 1078 | "string.prototype.trimright": { 1079 | "version": "2.1.0", 1080 | "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.0.tgz", 1081 | "integrity": "sha512-fXZTSV55dNBwv16uw+hh5jkghxSnc5oHq+5K/gXgizHwAvMetdAJlHqqoFC1FSDVPYWLkAKl2cxpUT41sV7nSg==", 1082 | "dev": true, 1083 | "requires": { 1084 | "define-properties": "^1.1.3", 1085 | "function-bind": "^1.1.1" 1086 | } 1087 | }, 1088 | "string_decoder": { 1089 | "version": "1.1.1", 1090 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", 1091 | "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", 1092 | "dev": true, 1093 | "requires": { 1094 | "safe-buffer": "~5.1.0" 1095 | } 1096 | }, 1097 | "strip-ansi": { 1098 | "version": "3.0.1", 1099 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", 1100 | "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", 1101 | "dev": true, 1102 | "requires": { 1103 | "ansi-regex": "^2.0.0" 1104 | } 1105 | }, 1106 | "supports-color": { 1107 | "version": "2.0.0", 1108 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", 1109 | "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", 1110 | "dev": true 1111 | }, 1112 | "tmp": { 1113 | "version": "0.0.30", 1114 | "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.30.tgz", 1115 | "integrity": "sha1-ckGdSovn1s51FI/YsyTlk6cRwu0=", 1116 | "dev": true, 1117 | "requires": { 1118 | "os-tmpdir": "~1.0.1" 1119 | } 1120 | }, 1121 | "tough-cookie": { 1122 | "version": "2.4.3", 1123 | "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", 1124 | "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", 1125 | "dev": true, 1126 | "requires": { 1127 | "psl": "^1.1.24", 1128 | "punycode": "^1.4.1" 1129 | }, 1130 | "dependencies": { 1131 | "punycode": { 1132 | "version": "1.4.1", 1133 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", 1134 | "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", 1135 | "dev": true 1136 | } 1137 | } 1138 | }, 1139 | "tunnel-agent": { 1140 | "version": "0.6.0", 1141 | "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", 1142 | "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", 1143 | "dev": true, 1144 | "requires": { 1145 | "safe-buffer": "^5.0.1" 1146 | } 1147 | }, 1148 | "tweetnacl": { 1149 | "version": "0.14.5", 1150 | "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", 1151 | "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", 1152 | "dev": true 1153 | }, 1154 | "type-detect": { 1155 | "version": "4.0.8", 1156 | "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", 1157 | "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", 1158 | "dev": true 1159 | }, 1160 | "uri-js": { 1161 | "version": "4.2.2", 1162 | "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", 1163 | "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", 1164 | "dev": true, 1165 | "requires": { 1166 | "punycode": "^2.1.0" 1167 | } 1168 | }, 1169 | "util-deprecate": { 1170 | "version": "1.0.2", 1171 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", 1172 | "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", 1173 | "dev": true 1174 | }, 1175 | "util.promisify": { 1176 | "version": "1.0.0", 1177 | "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.0.tgz", 1178 | "integrity": "sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA==", 1179 | "dev": true, 1180 | "requires": { 1181 | "define-properties": "^1.1.2", 1182 | "object.getownpropertydescriptors": "^2.0.3" 1183 | } 1184 | }, 1185 | "uuid": { 1186 | "version": "3.3.3", 1187 | "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.3.tgz", 1188 | "integrity": "sha512-pW0No1RGHgzlpHJO1nsVrHKpOEIxkGg1xB+v0ZmdNH5OAeAwzAVrCnI2/6Mtx+Uys6iaylxa+D3g4j63IKKjSQ==", 1189 | "dev": true 1190 | }, 1191 | "verror": { 1192 | "version": "1.10.0", 1193 | "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", 1194 | "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", 1195 | "dev": true, 1196 | "requires": { 1197 | "assert-plus": "^1.0.0", 1198 | "core-util-is": "1.0.2", 1199 | "extsprintf": "^1.2.0" 1200 | } 1201 | }, 1202 | "webdriver-js-extender": { 1203 | "version": "2.1.0", 1204 | "resolved": "https://registry.npmjs.org/webdriver-js-extender/-/webdriver-js-extender-2.1.0.tgz", 1205 | "integrity": "sha512-lcUKrjbBfCK6MNsh7xaY2UAUmZwe+/ib03AjVOpFobX4O7+83BUveSrLfU0Qsyb1DaKJdQRbuU+kM9aZ6QUhiQ==", 1206 | "dev": true, 1207 | "requires": { 1208 | "@types/selenium-webdriver": "^3.0.0", 1209 | "selenium-webdriver": "^3.0.1" 1210 | } 1211 | }, 1212 | "wordwrap": { 1213 | "version": "0.0.3", 1214 | "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", 1215 | "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=", 1216 | "dev": true 1217 | }, 1218 | "wrappy": { 1219 | "version": "1.0.2", 1220 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 1221 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", 1222 | "dev": true 1223 | }, 1224 | "xml2js": { 1225 | "version": "0.4.22", 1226 | "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.22.tgz", 1227 | "integrity": "sha512-MWTbxAQqclRSTnehWWe5nMKzI3VmJ8ltiJEco8akcC6j3miOhjjfzKum5sId+CWhfxdOs/1xauYr8/ZDBtQiRw==", 1228 | "dev": true, 1229 | "requires": { 1230 | "sax": ">=0.6.0", 1231 | "util.promisify": "~1.0.0", 1232 | "xmlbuilder": "~11.0.0" 1233 | } 1234 | }, 1235 | "xmlbuilder": { 1236 | "version": "11.0.1", 1237 | "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", 1238 | "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", 1239 | "dev": true 1240 | } 1241 | } 1242 | } 1243 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "js-protractor-sample", 3 | "version": "0.2.0", 4 | "description": "Sample framework for using Sauce Labs with Protractor", 5 | "main": "", 6 | "scripts": { 7 | "test": "./node_modules/.bin/protractor conf.js" 8 | }, 9 | "devDependencies": { 10 | "protractor": "^5.4.2", 11 | "https-proxy-agent": "latest", 12 | "chai": "^4.2.0" 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /specs/invalid_login_spec.js: -------------------------------------------------------------------------------- 1 | const expect = require('chai').expect; 2 | 3 | describe('Invalid login', () => { 4 | it('should not be able to login successfully', async () => { 5 | browser.ignoreSynchronization = true; 6 | await browser.get('https://www.saucedemo.com'); 7 | 8 | await element(by.id('user-name')).sendKeys('locked_out_user'); 9 | await element(by.id('password')).sendKeys('secret_sauce'); 10 | await element(by.css('.btn_action')).click(); 11 | 12 | expect(await element(by.css('.error-button')).isDisplayed()).to.be.true; 13 | }); 14 | }); 15 | -------------------------------------------------------------------------------- /specs/valid_login_spec.js: -------------------------------------------------------------------------------- 1 | const expect = require('chai').expect; 2 | 3 | describe('Valid login', () => { 4 | it('should be able to login successfully', async () => { 5 | browser.ignoreSynchronization = true; 6 | await browser.get('https://www.saucedemo.com'); 7 | 8 | await element(by.id('user-name')).sendKeys('standard_user'); 9 | await element(by.id('password')).sendKeys('secret_sauce'); 10 | await element(by.css('.btn_action')).click() 11 | 12 | const currentUrl = await browser.getCurrentUrl(); 13 | expect(currentUrl.includes("inventory")).to.be.true; 14 | }); 15 | }); --------------------------------------------------------------------------------