diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 83196fb..0271359 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -44,9 +44,9 @@ You can execute a subset of tests only if you're working on a specific part. For #### Coverage -Coverage information is provided by [Istanbul](https://github.com/yahoo/istanbul). You can obtain it with: +Coverage information is provided by [Istanbul](https://github.com/gotwarlost/istanbul). It is always output after tests. You can check the thresholds with: - npm test --coverage + npm run test-coverage #### Exhaustive mode @@ -96,9 +96,8 @@ Merging your changes Once your changes are ready, i.e. you made sure: -1. You didn't break anything and respected the styleguide (`npm run test-exhaustive`). -2. You tested them properly (`npm test --coverage`). -3. You cleanly documented the new code (`npm run doc-private`). +1. You didn't break anything, tested properly, and respected the styleguide (`npm run test-exhaustive`). +2. You cleanly documented the new code (`npm run doc-private`). …you may open a [pull request](https://help.github.com/articles/using-pull-requests) to ask your new code to be merged in the baseline. diff --git a/Changelog.md b/Changelog.md index 093dec0..c274d65 100644 --- a/Changelog.md +++ b/Changelog.md @@ -11,6 +11,21 @@ To get all details, and changes at all versions, including development ones, use You are reminded that Watai uses [SemVer](http://semver.org), which means upgrades that have only a patch number (last digit) change are backwards-compatible, and versions with a minor number (second digit) are API-breaking while in `0` major versions. + +v0.8 [WIP] +---- + +### v0.8.0 + +#### Breaking changes + +- Drop support for Node 0.6 to allow updating dependencies. + +#### Minor changes + +- Update all dependencies. + + v0.7 ---- diff --git a/npm-shrinkwrap.json b/npm-shrinkwrap.json index 6483a90..34cf8bc 100644 --- a/npm-shrinkwrap.json +++ b/npm-shrinkwrap.json @@ -1,205 +1,551 @@ { "name": "watai", - "version": "0.6.2", + "version": "0.8.0-alpha.1", "dependencies": { - "q": { - "version": "0.9.7", - "from": "q@>= 0.9.5" - }, - "mootools": { - "version": "1.4.5-2", - "from": "mootools@1.4" + "growl": { + "version": "1.8.1", + "from": "growl@>=1.8.1 <2.0.0", + "resolved": "https://registry.npmjs.org/growl/-/growl-1.8.1.tgz" }, - "winston": { - "version": "0.6.2", - "from": "winston@0.6", + "mattisg.configloader": { + "version": "0.2.1", + "from": "mattisg.configloader@>=0.2.1 <0.3.0", + "resolved": "https://registry.npmjs.org/mattisg.configloader/-/mattisg.configloader-0.2.1.tgz", "dependencies": { - "async": { - "version": "0.1.22", - "from": "async@0.1.x" - }, - "colors": { - "version": "0.6.2", - "from": "colors@0.x.x" - }, - "cycle": { - "version": "1.0.2", - "from": "cycle@1.0.x" - }, - "eyes": { - "version": "0.1.8", - "from": "eyes@0.1.x" - }, - "pkginfo": { - "version": "0.2.3", - "from": "pkginfo@0.2.x" - }, - "request": { - "version": "2.9.203", - "from": "request@2.9.x" - }, - "stack-trace": { - "version": "0.0.7", - "from": "stack-trace@0.0.x" + "mootools": { + "version": "1.4.5", + "from": "mootools@>=1.4.0 <1.5.0", + "resolved": "https://registry.npmjs.org/mootools/-/mootools-1.4.5.tgz" } } }, + "mootools": { + "version": "1.5.2", + "from": "mootools@>=1.5.2 <1.6.0", + "resolved": "https://registry.npmjs.org/mootools/-/mootools-1.5.2.tgz" + }, + "q": { + "version": "1.4.1", + "from": "q@>=1.4.1 <2.0.0", + "resolved": "https://registry.npmjs.org/q/-/q-1.4.1.tgz" + }, "wd": { - "version": "0.1.5", - "from": "wd@0.1", - "version": "0.2.6", - "from": "wd@0.2.6", - "resolved": "https://registry.npmjs.org/wd/-/wd-0.2.6.tgz", + "version": "0.3.12", + "from": "wd@>=0.3.12 <0.4.0", + "resolved": "https://registry.npmjs.org/wd/-/wd-0.3.12.tgz", "dependencies": { - "async": { - "version": "0.2.9", - "from": "async@~0.2.9" - }, - "vargs": { - "version": "0.1.0", - "from": "vargs@~0.1.0" - }, - "request": { - "version": "2.21.0", - "from": "request@~2.21.0", + "archiver": { + "version": "0.14.4", + "from": "archiver@>=0.14.0 <0.15.0", + "resolved": "https://registry.npmjs.org/archiver/-/archiver-0.14.4.tgz", "dependencies": { - "qs": { - "version": "0.6.6", - "from": "qs@~0.6.0" + "async": { + "version": "0.9.2", + "from": "async@>=0.9.0 <0.10.0" }, - "json-stringify-safe": { - "version": "4.0.0", - "from": "json-stringify-safe@~4.0.0" + "buffer-crc32": { + "version": "0.2.5", + "from": "buffer-crc32@>=0.2.1 <0.3.0", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.5.tgz" }, - "forever-agent": { - "version": "0.5.0", - "from": "forever-agent@~0.5.0" + "glob": { + "version": "4.3.5", + "from": "glob@>=4.3.0 <4.4.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-4.3.5.tgz", + "dependencies": { + "inflight": { + "version": "1.0.4", + "from": "inflight@>=1.0.4 <2.0.0", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.4.tgz", + "dependencies": { + "wrappy": { + "version": "1.0.1", + "from": "wrappy@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.1.tgz" + } + } + }, + "inherits": { + "version": "2.0.1", + "from": "inherits@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" + }, + "minimatch": { + "version": "2.0.10", + "from": "minimatch@>=2.0.1 <3.0.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-2.0.10.tgz", + "dependencies": { + "brace-expansion": { + "version": "1.1.1", + "from": "brace-expansion@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.1.tgz", + "dependencies": { + "balanced-match": { + "version": "0.2.1", + "from": "balanced-match@>=0.2.0 <0.3.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.2.1.tgz" + }, + "concat-map": { + "version": "0.0.1", + "from": "concat-map@0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" + } + } + } + } + }, + "once": { + "version": "1.3.2", + "from": "once@>=1.3.0 <2.0.0", + "dependencies": { + "wrappy": { + "version": "1.0.1", + "from": "wrappy@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.1.tgz" + } + } + } + } }, - "tunnel-agent": { - "version": "0.3.0", - "from": "tunnel-agent@~0.3.0" + "lazystream": { + "version": "0.1.0", + "from": "lazystream@>=0.1.0 <0.2.0", + "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-0.1.0.tgz" }, - "http-signature": { - "version": "0.9.11", - "from": "http-signature@~0.9.11", + "lodash": { + "version": "3.2.0", + "from": "lodash@>=3.2.0 <3.3.0", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.2.0.tgz" + }, + "readable-stream": { + "version": "1.0.33", + "from": "readable-stream@>=1.0.26 <1.1.0", "dependencies": { - "assert-plus": { - "version": "0.1.2", - "from": "assert-plus@0.1.2" + "core-util-is": { + "version": "1.0.1", + "from": "core-util-is@>=1.0.0 <1.1.0" }, - "asn1": { - "version": "0.1.11", - "from": "asn1@0.1.11" + "inherits": { + "version": "2.0.1", + "from": "inherits@>=2.0.1 <2.1.0", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" }, - "ctype": { - "version": "0.5.2", - "from": "ctype@0.5.2" + "isarray": { + "version": "0.0.1", + "from": "isarray@0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" + }, + "string_decoder": { + "version": "0.10.31", + "from": "string_decoder@>=0.10.0 <0.11.0" } } }, - "hawk": { - "version": "0.13.1", - "from": "hawk@~0.13.0", + "tar-stream": { + "version": "1.1.5", + "from": "tar-stream@>=1.1.0 <1.2.0", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.1.5.tgz", "dependencies": { - "hoek": { - "version": "0.8.5", - "from": "hoek@0.8.x" + "bl": { + "version": "0.9.4", + "from": "bl@>=0.9.0 <0.10.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-0.9.4.tgz" }, - "boom": { - "version": "0.4.2", - "from": "boom@0.4.x", + "end-of-stream": { + "version": "1.1.0", + "from": "end-of-stream@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.1.0.tgz", "dependencies": { - "hoek": { - "version": "0.9.1", - "from": "hoek@0.9.x" + "once": { + "version": "1.3.2", + "from": "once@>=1.3.0 <1.4.0", + "dependencies": { + "wrappy": { + "version": "1.0.1", + "from": "wrappy@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.1.tgz" + } + } } } }, - "cryptiles": { - "version": "0.2.2", - "from": "cryptiles@0.2.x" - }, - "sntp": { - "version": "0.2.4", - "from": "sntp@0.2.x", + "xtend": { + "version": "4.0.1", + "from": "xtend@>=4.0.0 <5.0.0", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz" + } + } + }, + "zip-stream": { + "version": "0.5.2", + "from": "zip-stream@>=0.5.0 <0.6.0", + "resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-0.5.2.tgz", + "dependencies": { + "compress-commons": { + "version": "0.2.9", + "from": "compress-commons@>=0.2.0 <0.3.0", + "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-0.2.9.tgz", "dependencies": { - "hoek": { - "version": "0.9.1", - "from": "hoek@0.9.x" + "crc32-stream": { + "version": "0.3.4", + "from": "crc32-stream@>=0.3.1 <0.4.0", + "resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-0.3.4.tgz" + }, + "node-int64": { + "version": "0.3.3", + "from": "node-int64@>=0.3.0 <0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.3.3.tgz" } } } } + } + } + }, + "async": { + "version": "1.0.0", + "from": "async@>=1.0.0 <1.1.0", + "resolved": "https://registry.npmjs.org/async/-/async-1.0.0.tgz" + }, + "lodash": { + "version": "3.9.3", + "from": "lodash@>=3.9.3 <3.10.0", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.9.3.tgz" + }, + "request": { + "version": "2.55.0", + "from": "request@>=2.55.0 <2.56.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.55.0.tgz", + "dependencies": { + "aws-sign2": { + "version": "0.5.0", + "from": "aws-sign2@>=0.5.0 <0.6.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.5.0.tgz" }, - "aws-sign": { - "version": "0.3.0", - "from": "aws-sign@~0.3.0" - }, - "oauth-sign": { - "version": "0.3.0", - "from": "oauth-sign@~0.3.0" + "bl": { + "version": "0.9.4", + "from": "bl@>=0.9.0 <0.10.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-0.9.4.tgz", + "dependencies": { + "readable-stream": { + "version": "1.0.33", + "from": "readable-stream@>=1.0.26 <1.1.0", + "dependencies": { + "core-util-is": { + "version": "1.0.1", + "from": "core-util-is@>=1.0.0 <1.1.0" + }, + "inherits": { + "version": "2.0.1", + "from": "inherits@>=2.0.1 <2.1.0", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" + }, + "isarray": { + "version": "0.0.1", + "from": "isarray@0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" + }, + "string_decoder": { + "version": "0.10.31", + "from": "string_decoder@>=0.10.0 <0.11.0" + } + } + } + } }, - "cookie-jar": { - "version": "0.3.0", - "from": "cookie-jar@~0.3.0" + "caseless": { + "version": "0.9.0", + "from": "caseless@>=0.9.0 <0.10.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.9.0.tgz" }, - "node-uuid": { - "version": "1.4.1", - "from": "node-uuid@~1.4.0" + "combined-stream": { + "version": "0.0.7", + "from": "combined-stream@>=0.0.5 <0.1.0", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-0.0.7.tgz", + "dependencies": { + "delayed-stream": { + "version": "0.0.5", + "from": "delayed-stream@0.0.5", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-0.0.5.tgz" + } + } }, - "mime": { - "version": "1.2.11", - "from": "mime@~1.2.9" + "forever-agent": { + "version": "0.6.1", + "from": "forever-agent@>=0.6.0 <0.7.0", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz" }, "form-data": { - "version": "0.0.8", - "from": "form-data@0.0.8", + "version": "0.2.0", + "from": "form-data@>=0.2.0 <0.3.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-0.2.0.tgz", "dependencies": { - "combined-stream": { - "version": "0.0.4", - "from": "combined-stream@~0.0.4", + "async": { + "version": "0.9.2", + "from": "async@>=0.9.0 <0.10.0" + } + } + }, + "har-validator": { + "version": "1.8.0", + "from": "har-validator@>=1.4.0 <2.0.0", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-1.8.0.tgz", + "dependencies": { + "bluebird": { + "version": "2.10.2", + "from": "bluebird@>=2.9.30 <3.0.0", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-2.10.2.tgz" + }, + "chalk": { + "version": "1.1.1", + "from": "chalk@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.1.tgz", + "dependencies": { + "ansi-styles": { + "version": "2.1.0", + "from": "ansi-styles@>=2.1.0 <3.0.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.1.0.tgz" + }, + "escape-string-regexp": { + "version": "1.0.3", + "from": "escape-string-regexp@>=1.0.2 <2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.3.tgz" + }, + "has-ansi": { + "version": "2.0.0", + "from": "has-ansi@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "dependencies": { + "ansi-regex": { + "version": "2.0.0", + "from": "ansi-regex@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.0.0.tgz" + } + } + }, + "strip-ansi": { + "version": "3.0.0", + "from": "strip-ansi@>=3.0.0 <4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.0.tgz", + "dependencies": { + "ansi-regex": { + "version": "2.0.0", + "from": "ansi-regex@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.0.0.tgz" + } + } + }, + "supports-color": { + "version": "2.0.0", + "from": "supports-color@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz" + } + } + }, + "commander": { + "version": "2.9.0", + "from": "commander@>=2.8.1 <3.0.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz", + "dependencies": { + "graceful-readlink": { + "version": "1.0.1", + "from": "graceful-readlink@>=1.0.0", + "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz" + } + } + }, + "is-my-json-valid": { + "version": "2.12.3", + "from": "is-my-json-valid@>=2.12.0 <3.0.0", + "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.12.3.tgz", "dependencies": { - "delayed-stream": { - "version": "0.0.5", - "from": "delayed-stream@0.0.5" + "generate-function": { + "version": "2.0.0", + "from": "generate-function@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz" + }, + "generate-object-property": { + "version": "1.2.0", + "from": "generate-object-property@>=1.1.0 <2.0.0", + "resolved": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz", + "dependencies": { + "is-property": { + "version": "1.0.2", + "from": "is-property@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz" + } + } + }, + "jsonpointer": { + "version": "2.0.0", + "from": "jsonpointer@2.0.0", + "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-2.0.0.tgz" + }, + "xtend": { + "version": "4.0.1", + "from": "xtend@>=4.0.0 <5.0.0", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz" } } } } - } - } - }, - "archiver": { - "version": "0.4.10", - "from": "archiver@~0.4.10", - "dependencies": { - "readable-stream": { - "version": "1.0.17", - "from": "readable-stream@~1.0.2" }, - "iconv-lite": { - "version": "0.2.11", - "from": "iconv-lite@~0.2.11" + "hawk": { + "version": "2.3.1", + "from": "hawk@>=2.3.0 <2.4.0", + "resolved": "https://registry.npmjs.org/hawk/-/hawk-2.3.1.tgz", + "dependencies": { + "boom": { + "version": "2.10.1", + "from": "boom@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz" + }, + "cryptiles": { + "version": "2.0.5", + "from": "cryptiles@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz" + }, + "hoek": { + "version": "2.16.3", + "from": "hoek@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz" + }, + "sntp": { + "version": "1.0.9", + "from": "sntp@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz" + } + } + }, + "http-signature": { + "version": "0.10.1", + "from": "http-signature@>=0.10.0 <0.11.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-0.10.1.tgz", + "dependencies": { + "asn1": { + "version": "0.1.11", + "from": "asn1@0.1.11", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.1.11.tgz" + }, + "assert-plus": { + "version": "0.1.5", + "from": "assert-plus@>=0.1.5 <0.2.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.1.5.tgz" + }, + "ctype": { + "version": "0.5.3", + "from": "ctype@0.5.3", + "resolved": "https://registry.npmjs.org/ctype/-/ctype-0.5.3.tgz" + } + } + }, + "isstream": { + "version": "0.1.2", + "from": "isstream@>=0.1.1 <0.2.0", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz" + }, + "json-stringify-safe": { + "version": "5.0.1", + "from": "json-stringify-safe@>=5.0.0 <5.1.0", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz" + }, + "mime-types": { + "version": "2.0.14", + "from": "mime-types@>=2.0.1 <2.1.0", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.0.14.tgz", + "dependencies": { + "mime-db": { + "version": "1.12.0", + "from": "mime-db@>=1.12.0 <1.13.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.12.0.tgz" + } + } + }, + "node-uuid": { + "version": "1.4.3", + "from": "node-uuid@>=1.4.0 <1.5.0", + "resolved": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.3.tgz" + }, + "oauth-sign": { + "version": "0.6.0", + "from": "oauth-sign@>=0.6.0 <0.7.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.6.0.tgz" + }, + "qs": { + "version": "2.4.2", + "from": "qs@>=2.4.0 <2.5.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-2.4.2.tgz" + }, + "stringstream": { + "version": "0.0.5", + "from": "stringstream@>=0.0.4 <0.1.0", + "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz" + }, + "tough-cookie": { + "version": "2.2.0", + "from": "tough-cookie@>=0.12.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.2.0.tgz" + }, + "tunnel-agent": { + "version": "0.4.1", + "from": "tunnel-agent@>=0.4.0 <0.5.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.1.tgz" } } }, - "lodash": { - "version": "1.3.1", - "from": "lodash@~1.3.1" - }, "underscore.string": { - "version": "2.3.3", - "from": "underscore.string@~2.3.3" + "version": "3.0.3", + "from": "underscore.string@>=3.0.3 <3.1.0", + "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-3.0.3.tgz" + }, + "vargs": { + "version": "0.1.0", + "from": "vargs@>=0.1.0 <0.2.0", + "resolved": "https://registry.npmjs.org/vargs/-/vargs-0.1.0.tgz" } } }, - "mattisg.configloader": { - "version": "0.2.0-alpha.2", - "from": "mattisg.configloader@0.2" - }, - "growl": { - "version": "1.7.0", - "from": "growl@>= 1.5" + "winston": { + "version": "2.1.0", + "from": "winston@>=2.1.0 <3.0.0", + "resolved": "https://registry.npmjs.org/winston/-/winston-2.1.0.tgz", + "dependencies": { + "async": { + "version": "1.0.0", + "from": "async@>=1.0.0 <1.1.0", + "resolved": "https://registry.npmjs.org/async/-/async-1.0.0.tgz" + }, + "colors": { + "version": "1.0.3", + "from": "colors@>=1.0.0 <1.1.0", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz" + }, + "cycle": { + "version": "1.0.3", + "from": "cycle@>=1.0.0 <1.1.0", + "resolved": "https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz" + }, + "eyes": { + "version": "0.1.8", + "from": "eyes@>=0.1.0 <0.2.0", + "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz" + }, + "isstream": { + "version": "0.1.2", + "from": "isstream@>=0.1.0 <0.2.0", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz" + }, + "pkginfo": { + "version": "0.3.1", + "from": "pkginfo@>=0.3.0 <0.4.0", + "resolved": "https://registry.npmjs.org/pkginfo/-/pkginfo-0.3.1.tgz" + }, + "stack-trace": { + "version": "0.0.9", + "from": "stack-trace@>=0.0.0 <0.1.0", + "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.9.tgz" + } + } } } } diff --git a/package.json b/package.json index a251274..75eaed5 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "watai", - "version": "0.7.0", + "version": "0.8.0-alpha.1", "description": "Integration testing for the modern web", "license": "AGPL-3.0", "keywords": [ @@ -48,48 +48,47 @@ "url": "https://github.com/MattiSG/Watai.git" }, "scripts": { - "test": "istanbul test _mocha test/unit test/functional", - "test-integration": "istanbul test _mocha test/integration", + "test": "istanbul cover _mocha test/unit test/functional", + "test-coverage": "istanbul check-coverage --statements 70 --branches 60", + "test-integration": "mocha test/integration", "test-examples": "find example -mindepth 1 -maxdepth 1 -type d | xargs -I suite ./src/index.js suite", "test-examples-parallel": "find example -mindepth 1 -maxdepth 1 -type d | xargs -I suite -P 4 ./src/index.js suite", "test-security": "retire --node --package", - "test-exhaustive": "npm run test-examples && npm test && npm run test-integration && npm run test-security && npm run lint && npm run doc-private", + "test-exhaustive": "npm run test-examples && npm test && npm run test-integration && npm run test-coverage && npm run test-security && npm run lint && npm run doc-private", "lint": "jscs .", "prepublish": "git archive -9 --output=doc/tutorials/Watai-DuckDuckGo-example.zip HEAD example/DuckDuckGo/", "doc": "jsdoc --configure .jsdoc --recurse src --destination doc/api README.md", "doc-private": "jsdoc --configure .jsdoc --recurse src --destination doc/api --private README.md" }, "engines": { - "node": ">=0.6.18 <1", + "node": ">=0.8 <1", "npm": "> 1.1" }, "dependencies": { - "mattisg.configloader": "~0.2", - "mootools": "^1.4.5-2", - "q": ">= 0.9.5", - "mootools": "1.4", - "winston": "0.6", - "wd": "~0.3.12" + "mattisg.configloader": "~0.2.1", + "mootools": "~1.5.2", + "q": "^1.4.1", + "wd": "~0.3.12", + "winston": "^2.1.0" }, "bundledDependencies": [ - "q", + "mattisg.configloader", "mootools", - "winston", + "q", "wd", - "mattisg.configloader" + "winston" ], "optionalDependencies": { - "growl": ">= 1.5" + "growl": "^1.8.1" }, "devDependencies": { - "istanbul": "0.1", - "jscs": ">= 1.4 < 2", - "jsdoc": "3.x", - "mocha": ">= 1.4", - "retire": "0.1", - "should": ">= 1.2.2 < 2", - "jsdoc": "3.x", - "saucelabs": "~1.0.1" + "istanbul": "~0.4.0", + "jscs": "^2.5.1", + "jsdoc": "^3.3.3", + "mocha": "^2.3.3", + "retire": "^1.1.1", + "saucelabs": "^1.0.1", + "should": "^7.1.0" }, "preferGlobal": true } diff --git a/src/controller/SuiteLoader.js b/src/controller/SuiteLoader.js index f9c7abf..d0e20c4 100644 --- a/src/controller/SuiteLoader.js +++ b/src/controller/SuiteLoader.js @@ -53,7 +53,7 @@ var SuiteLoader = new Class( /** @lends SuiteLoader# */ { *@param {Hash} [config] A configuration object that will override the loaded config file. */ initialize: function init(path, config) { - this.path = pathsUtils.resolve(path) + '/'; // TODO: Node 0.8 has path.sep + this.path = pathsUtils.resolve(path) + pathsUtils.sep; var config = new ConfigLoader({ from : this.path, diff --git a/test/unit/model/ComponentTest.js b/test/unit/model/ComponentTest.js index 9874953..4832ac0 100644 --- a/test/unit/model/ComponentTest.js +++ b/test/unit/model/ComponentTest.js @@ -60,7 +60,7 @@ describe('Component', function() { describe('magic', function() { it('should do some magic on *Link names', function() { subject.should.have.property('changeTextareaValueNow'); - subject.changeTextareaValueNow.should.be.a('function'); // on 'link', this should be a shortcut to clicking the element, not a simple access + subject.changeTextareaValueNow.should.be.a.Function(); // on 'link', this should be a shortcut to clicking the element, not a simple access }); @@ -86,11 +86,11 @@ describe('Component', function() { var EXPECTED = 'set method test'; it('should be added for all field-type elements', function() { - subject.setInputField.should.be.a('function'); + subject.setInputField.should.be.a.Function(); }); it('should be partial applicators for actually sending keys', function() { - subject.setInputField(EXPECTED).should.be.a('function'); + subject.setInputField(EXPECTED).should.be.a.Function(); }); it('should return a promise when calling partial applicator', function(done) { diff --git a/test/unit/model/LocatorTest.js b/test/unit/model/LocatorTest.js index 5ca1842..e46c0a9 100644 --- a/test/unit/model/LocatorTest.js +++ b/test/unit/model/LocatorTest.js @@ -167,7 +167,7 @@ describe('Locator', function() { }); it('should have args', function() { - subject.should.have.property('args').with.include(newContent); + subject.should.have.property('args').with.containEql(newContent); }); }); }); diff --git a/test/unit/model/scenario/FunctionalStepTest.js b/test/unit/model/scenario/FunctionalStepTest.js index 9ef5876..041b04c 100644 --- a/test/unit/model/scenario/FunctionalStepTest.js +++ b/test/unit/model/scenario/FunctionalStepTest.js @@ -17,7 +17,7 @@ describe('FunctionalStep', function() { describe('AstractStepTest (through FunctionalStep)', function() { it('should offer a `test` method', function(done) { - subject.test.should.be.a('function'); + subject.test.should.be.a.Function(); subject.test().done(function() { done() }); }); diff --git a/test/unit/model/scenario/StateStepTest.js b/test/unit/model/scenario/StateStepTest.js index 7e10770..9fe4005 100644 --- a/test/unit/model/scenario/StateStepTest.js +++ b/test/unit/model/scenario/StateStepTest.js @@ -32,7 +32,7 @@ describe('StateStep', function() { it('should offer a `test` method', function() { var result = new StateStep(expectedContents, { TestComponent: TestComponent }); - result.test.should.be.a('function'); + result.test.should.be.a.Function(); promises.isPromise(result.test()).should.be.ok; }); diff --git a/test/unit/view/SauceLabsRunnerViewTest.js b/test/unit/view/SauceLabsRunnerViewTest.js index ef4c419..97e84cf 100644 --- a/test/unit/view/SauceLabsRunnerViewTest.js +++ b/test/unit/view/SauceLabsRunnerViewTest.js @@ -45,10 +45,10 @@ describe('SauceLabs view', function() { }); it('should provide information to the user', function() { - stdoutSpy.printed().should.include('SauceLabs authentication'); - stdoutSpy.printed().should.include('config'); - stdoutSpy.printed().should.include('SAUCE_USERNAME'); - stdoutSpy.printed().should.include('SAUCE_ACCESS_KEY'); + stdoutSpy.printed().should.containEql('SauceLabs authentication'); + stdoutSpy.printed().should.containEql('config'); + stdoutSpy.printed().should.containEql('SAUCE_USERNAME'); + stdoutSpy.printed().should.containEql('SAUCE_ACCESS_KEY'); }); }); @@ -114,8 +114,8 @@ describe('SauceLabs view', function() { it('should provide information to the user', function() { subject.showStart(); - stdoutSpy.printed().should.include('quit'); - stdoutSpy.printed().should.include('always'); + stdoutSpy.printed().should.containEql('quit'); + stdoutSpy.printed().should.containEql('always'); stdoutSpy.printed().should.match(/wast.* 90 ?s/); // wasting, wastes, waste, 90 seconds, 90s… doesn't matter }); }); diff --git a/test/unit/view/StepVerboseViewTest.js b/test/unit/view/StepVerboseViewTest.js index 2850c0c..7749dec 100644 --- a/test/unit/view/StepVerboseViewTest.js +++ b/test/unit/view/StepVerboseViewTest.js @@ -30,7 +30,7 @@ describe('Step verbose view', function() { var tester = function() { stdoutSpy.unmute(); - stdoutSpy.printed().should.include(term); + stdoutSpy.printed().should.containEql(term); } stdoutSpy.mute(); @@ -164,7 +164,7 @@ describe('Step verbose view', function() { stdoutSpy.mute(); step.test().then(function() { stdoutSpy.unmute(); - stdoutSpy.printed().should.include(ACTION); + stdoutSpy.printed().should.containEql(ACTION); stdoutSpy.printed().should.not.match(/link/i); // ensure the action name does not contain the original element name }).done(done, done); });