diff --git a/package.json b/package.json index 7a6db3c..9c27126 100644 --- a/package.json +++ b/package.json @@ -5,29 +5,29 @@ "author": "Jeff Dickey @jdxcode", "bugs": "https://github.com/jdxcode/fancy-test/issues", "dependencies": { - "@types/chai": "^4.1.4", - "@types/lodash": "^4.14.116", - "@types/mocha": "^5.2.5", - "@types/nock": "^9.3.0", - "@types/node": "^10.9.4", - "@types/sinon": "^5.0.2", + "@types/chai": "*", + "@types/lodash": "*", + "@types/mocha": "*", + "@types/nock": "*", + "@types/node": "*", + "@types/sinon": "*", "lodash": "^4.17.11", "mock-stdin": "^0.3.1", "stdout-stderr": "^0.1.9" }, "devDependencies": { - "@oclif/tslint": "^3.1.0", - "chai": "^4.1.2", - "chalk": "^2.4.1", - "http-call": "^5.2.2", + "@oclif/tslint": "^3.1.1", + "chai": "^4.2.0", + "chalk": "^2.4.2", + "http-call": "^5.2.3", "markdown-toc": "^1.2.0", "mocha": "^5.2.0", - "nock": "^9.6.1", - "sinon": "^6.3.2", + "nock": "^10.0.6", + "sinon": "^7.2.2", "ts-node": "^7.0.1", "tslib": "^1.9.3", - "tslint": "^5.11.0", - "typescript": "^3.0.3" + "tslint": "^5.12.0", + "typescript": "^3.2.2" }, "engines": { "node": ">=8.0.0" diff --git a/src/base.ts b/src/base.ts index d268714..ba15294 100644 --- a/src/base.ts +++ b/src/base.ts @@ -19,13 +19,13 @@ const base = (context: I): Types.Base => { arg1 = undefined } if (!arg1) arg1 = context.expectation || 'test' - async function run(this: Types.ITestCallbackContext, done?: Types.MochaDone) { + async function run(this: Types.ITestCallbackContext, done?: Mocha.Done) { context = assignWithProps({}, originalContext) if (context.retries) this.retries(context.retries) if (cb) { context.chain = [...context.chain, { run: async (input: any) => { - await cb.call(this, input, done) + await cb.call(this, input, done!) } }] } diff --git a/src/index.ts b/src/index.ts index 8957797..8adcffb 100644 --- a/src/index.ts +++ b/src/index.ts @@ -6,7 +6,6 @@ import * as Nock from './nock' import {stderr, stdin, stdout} from './stdmock' import stub from './stub' import timeout from './timeout' - import * as FancyTypes from './types' export const fancy = base diff --git a/src/types.ts b/src/types.ts index bc8852f..59e31a3 100644 --- a/src/types.ts +++ b/src/types.ts @@ -33,7 +33,7 @@ export interface ITestCallbackContext { [index: string]: any } -export type MochaCallback = (this: ITestCallbackContext, context: I, done: MochaDone) => any +export type MochaCallback = (this: ITestCallbackContext, context: I, done: Mocha.Done) => any export interface It { (expectation: string, cb?: MochaCallback): void (cb?: MochaCallback): void @@ -52,8 +52,6 @@ export interface EnvOptions { clear?: boolean } -export type MochaDone = (error?: any) => any - export interface NockScope extends Nock.Scope {} export interface NockOptions extends Nock.Options {} export type NockCallback = (nock: NockScope) => any diff --git a/yarn.lock b/yarn.lock index df2230a..0e860f3 100644 --- a/yarn.lock +++ b/yarn.lock @@ -19,9 +19,10 @@ reflect-metadata "^0.1.12" tslib "^1.8.1" -"@oclif/tslint@^3.1.0": - version "3.1.0" - resolved "https://registry.yarnpkg.com/@oclif/tslint/-/tslint-3.1.0.tgz#4beea4ddeeb9e8964f4c9d15d25349db799311a6" +"@oclif/tslint@^3.1.1": + version "3.1.1" + resolved "https://registry.yarnpkg.com/@oclif/tslint/-/tslint-3.1.1.tgz#e055cdf158630862fd44546f6b8fb1266c9778e7" + integrity sha512-B1ZWbgzwxDhNZLzVnn+JjyFf9u+J9wNwsz/ZX9YvA9edRYcdiJz9JikCttGPi35V0NU0TUV4UqTqo/q/wQ06jQ== dependencies: tslint-eslint-rules "^5.4.0" tslint-xo "^0.9.0" @@ -32,43 +33,59 @@ dependencies: type-detect "4.0.8" -"@sinonjs/formatio@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@sinonjs/formatio/-/formatio-2.0.0.tgz#84db7e9eb5531df18a8c5e0bfb6e449e55e654b2" +"@sinonjs/commons@^1.2.0": + version "1.3.0" + resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.3.0.tgz#50a2754016b6f30a994ceda6d9a0a8c36adda849" + integrity sha512-j4ZwhaHmwsCb4DlDOIWnI5YyKDNMoNThsmwEpfHx6a1EpsGZ9qYLxP++LMlmBRjtGptGHFsGItJ768snllFWpA== + dependencies: + type-detect "4.0.8" + +"@sinonjs/formatio@^3.1.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@sinonjs/formatio/-/formatio-3.1.0.tgz#6ac9d1eb1821984d84c4996726e45d1646d8cce5" + integrity sha512-ZAR2bPHOl4Xg6eklUGpsdiIJ4+J1SNag1DHHrG/73Uz/nVwXqjgUtRPLoS+aVyieN9cSbc0E4LsU984tWcDyNg== dependencies: - samsam "1.3.0" + "@sinonjs/samsam" "^2 || ^3" -"@sinonjs/samsam@^2.0.0": - version "2.1.0" - resolved "https://registry.yarnpkg.com/@sinonjs/samsam/-/samsam-2.1.0.tgz#b8b8f5b819605bd63601a6ede459156880f38ea3" +"@sinonjs/samsam@^2 || ^3", "@sinonjs/samsam@^3.0.2": + version "3.0.2" + resolved "https://registry.yarnpkg.com/@sinonjs/samsam/-/samsam-3.0.2.tgz#304fb33bd5585a0b2df8a4c801fcb47fa84d8e43" + integrity sha512-m08g4CS3J6lwRQk1pj1EO+KEVWbrbXsmi9Pw0ySmrIbcVxVaedoFgLvFsV8wHLwh01EpROVz3KvVcD1Jmks9FQ== dependencies: + "@sinonjs/commons" "^1.0.2" array-from "^2.1.1" + lodash.get "^4.4.2" -"@types/chai@^4.1.4": - version "4.1.4" - resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.1.4.tgz#5ca073b330d90b4066d6ce18f60d57f2084ce8ca" +"@types/chai@*": + version "4.1.7" + resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.1.7.tgz#1b8e33b61a8c09cbe1f85133071baa0dbf9fa71a" + integrity sha512-2Y8uPt0/jwjhQ6EiluT0XCri1Dbplr0ZxfFXUz+ye13gaqE8u5gL5ppao1JrUYr9cIip5S6MvQzBS7Kke7U9VA== -"@types/lodash@^4.14.116": - version "4.14.116" - resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.116.tgz#5ccf215653e3e8c786a58390751033a9adca0eb9" +"@types/lodash@*": + version "4.14.119" + resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.119.tgz#be847e5f4bc3e35e46d041c394ead8b603ad8b39" + integrity sha512-Z3TNyBL8Vd/M9D9Ms2S3LmFq2sSMzahodD6rCS9V2N44HUMINb75jNkSuwAx7eo2ufqTdfOdtGQpNbieUjPQmw== -"@types/mocha@^5.2.5": +"@types/mocha@*": version "5.2.5" resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-5.2.5.tgz#8a4accfc403c124a0bafe8a9fc61a05ec1032073" + integrity sha512-lAVp+Kj54ui/vLUFxsJTMtWvZraZxum3w3Nwkble2dNuV5VnPA+Mi2oGX9XYJAaIvZi3tn3cbjS/qcJXRb6Bww== -"@types/nock@^9.3.0": +"@types/nock@*": version "9.3.0" resolved "https://registry.yarnpkg.com/@types/nock/-/nock-9.3.0.tgz#9d34358fdcc08afd07144e0784ac9e951d412dd4" + integrity sha512-ZHf/X8rTQ5Tb1rHjxIJYqm55uO265agE3G7NoSXVa2ep+EcJXgB2fsme+zBvK7MhrxTwkC/xkB6THyv50u0MGw== dependencies: "@types/node" "*" -"@types/node@*", "@types/node@^10.9.4": +"@types/node@*": version "10.9.4" resolved "https://registry.yarnpkg.com/@types/node/-/node-10.9.4.tgz#0f4cb2dc7c1de6096055357f70179043c33e9897" -"@types/sinon@^5.0.2": - version "5.0.2" - resolved "https://registry.yarnpkg.com/@types/sinon/-/sinon-5.0.2.tgz#7a9d64df40b26dd48d673f745addc2fdb2bda193" +"@types/sinon@*": + version "7.0.3" + resolved "https://registry.yarnpkg.com/@types/sinon/-/sinon-7.0.3.tgz#f8647e883d873962130f906a6114a4e187755696" + integrity sha512-cjmJQLx2B5Hp9SzO7rdSivipo3kBqRqeYkTW17nLST1tn5YLWBjTdnzdmeTJXA1+KrrBLsEuvKQ0fUPGrfazQg== ansi-red@^0.1.1: version "0.1.1" @@ -119,9 +136,10 @@ arrify@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" -assertion-error@^1.0.1: +assertion-error@^1.0.1, assertion-error@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b" + integrity sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw== autolinker@~0.15.0: version "0.15.3" @@ -169,6 +187,18 @@ chai@^4.1.2: pathval "^1.0.0" type-detect "^4.0.0" +chai@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/chai/-/chai-4.2.0.tgz#760aa72cf20e3795e84b12877ce0e83737aa29e5" + integrity sha512-XQU3bhBukrOsQCuwZndwGcCVQHyZi53fQ6Ys1Fym7E4olpIqqZZhhoFJoaKVvV17lWQoXYwgWN2nF5crA8J2jw== + dependencies: + assertion-error "^1.1.0" + check-error "^1.0.2" + deep-eql "^3.0.1" + get-func-name "^2.0.0" + pathval "^1.1.0" + type-detect "^4.0.5" + chalk@^1.1.3: version "1.1.3" resolved "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" @@ -179,7 +209,7 @@ chalk@^1.1.3: strip-ansi "^3.0.0" supports-color "^2.0.0" -chalk@^2.3.0, chalk@^2.4.1: +chalk@^2.3.0: version "2.4.1" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.1.tgz#18c49ab16a037b6eb0152cc83e3471338215b66e" dependencies: @@ -187,9 +217,19 @@ chalk@^2.3.0, chalk@^2.4.1: escape-string-regexp "^1.0.5" supports-color "^5.3.0" -check-error@^1.0.1: +chalk@^2.4.2: + version "2.4.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +check-error@^1.0.1, check-error@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82" + integrity sha1-V00xLt2Iu13YkS6Sht1sCu1KrII= coffee-script@^1.12.4: version "1.12.7" @@ -246,9 +286,17 @@ debug@^3.1.0: dependencies: ms "^2.1.1" -deep-eql@^3.0.0: +debug@^4.1.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" + integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw== + dependencies: + ms "^2.1.1" + +deep-eql@^3.0.0, deep-eql@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-3.0.1.tgz#dfc9404400ad1c8fe023e7da1df1c147c4b444df" + integrity sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw== dependencies: type-detect "^4.0.0" @@ -375,9 +423,10 @@ he@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/he/-/he-1.1.1.tgz#93410fd21b009735151f8868c2f271f3427e23fd" -http-call@^5.2.2: - version "5.2.2" - resolved "https://registry.yarnpkg.com/http-call/-/http-call-5.2.2.tgz#d8eb37eef701e566d44373ef19b22444ebb7c02e" +http-call@^5.2.3: + version "5.2.3" + resolved "https://registry.yarnpkg.com/http-call/-/http-call-5.2.3.tgz#4b59df8c313c92056e2004e666330b46f7d0532b" + integrity sha512-IkwGruHVHATmnonLKMGX5tkpM0KSn/C240o8/OfBsESRaJacykSia+akhD0d3fljQ5rQPXtBvSrVShAsj+EOUQ== dependencies: content-type "^1.0.4" debug "^3.1.0" @@ -471,9 +520,10 @@ json-stringify-safe@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" -just-extend@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/just-extend/-/just-extend-3.0.0.tgz#cee004031eaabf6406da03a7b84e4fe9d78ef288" +just-extend@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/just-extend/-/just-extend-4.0.2.tgz#f3f47f7dfca0f989c55410a7ebc8854b07108afc" + integrity sha512-FrLwOgm+iXrPV+5zDU6Jqu4gCRXbWEQg2O3SKONsWE4w7AXFRkryS53bpWdaL9cNol+AmR3AEYz6kn+o0fCPnw== kind-of@^3.0.2: version "3.2.2" @@ -508,10 +558,15 @@ lodash@^4.17.11, lodash@^4.17.5: version "4.17.11" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.11.tgz#b39ea6229ef607ecd89e2c8df12536891cac9b8d" -lolex@^2.3.2, lolex@^2.7.4: +lolex@^2.3.2: version "2.7.4" resolved "https://registry.yarnpkg.com/lolex/-/lolex-2.7.4.tgz#6514de2c3291e9d6f09d49ddce4a95f7d4d5a93f" +lolex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/lolex/-/lolex-3.0.0.tgz#f04ee1a8aa13f60f1abd7b0e8f4213ec72ec193e" + integrity sha512-hcnW80h3j2lbUfFdMArd5UPA/vxZJ+G8vobd+wg3nVEQA0EigStbYcrG030FJxL6xiDDPEkoMatV9xIh5OecQQ== + make-error@^1.1.1: version "1.3.5" resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.5.tgz#efe4e81f6db28cadd605c70f29c831b58ef776c8" @@ -596,22 +651,24 @@ ms@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" -nise@^1.4.4: - version "1.4.4" - resolved "https://registry.yarnpkg.com/nise/-/nise-1.4.4.tgz#b8d9dd35334c99e514b75e46fcc38e358caecdd0" +nise@^1.4.7: + version "1.4.8" + resolved "https://registry.yarnpkg.com/nise/-/nise-1.4.8.tgz#ce91c31e86cf9b2c4cac49d7fcd7f56779bfd6b0" + integrity sha512-kGASVhuL4tlAV0tvA34yJYZIVihrUt/5bDwpp4tTluigxUr2bBlJeDXmivb6NuEdFkqvdv/Ybb9dm16PSKUhtw== dependencies: - "@sinonjs/formatio" "^2.0.0" - just-extend "^3.0.0" + "@sinonjs/formatio" "^3.1.0" + just-extend "^4.0.2" lolex "^2.3.2" path-to-regexp "^1.7.0" text-encoding "^0.6.4" -nock@^9.6.1: - version "9.6.1" - resolved "https://registry.yarnpkg.com/nock/-/nock-9.6.1.tgz#d96e099be9bc1d0189a77f4490bbbb265c381b49" +nock@^10.0.6: + version "10.0.6" + resolved "https://registry.yarnpkg.com/nock/-/nock-10.0.6.tgz#e6d90ee7a68b8cfc2ab7f6127e7d99aa7d13d111" + integrity sha512-b47OWj1qf/LqSQYnmokNWM8D88KvUl2y7jT0567NB3ZBAZFz2bWp2PC81Xn7u8F2/vJxzkzNZybnemeFa7AZ2w== dependencies: chai "^4.1.2" - debug "^3.1.0" + debug "^4.1.0" deep-equal "^1.0.0" json-stringify-safe "^5.0.1" lodash "^4.17.5" @@ -646,9 +703,10 @@ path-to-regexp@^1.7.0: dependencies: isarray "0.0.1" -pathval@^1.0.0: +pathval@^1.0.0, pathval@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/pathval/-/pathval-1.1.0.tgz#b942e6d4bde653005ef6b71361def8727d0645e0" + integrity sha1-uULm1L3mUwBe9rcTYd74cn0GReA= process-nextick-args@~2.0.0: version "2.0.0" @@ -711,10 +769,6 @@ safe-buffer@^5.0.1, safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.2" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" -samsam@1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/samsam/-/samsam-1.3.0.tgz#8d1d9350e25622da30de3e44ba692b5221ab7c50" - semver@^5.3.0, semver@^5.5.0: version "5.5.1" resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.1.tgz#7dfdd8814bdb7cabc7be0fb1d734cfb66c940477" @@ -725,19 +779,18 @@ set-getter@^0.1.0: dependencies: to-object-path "^0.3.0" -sinon@^6.3.2: - version "6.3.2" - resolved "https://registry.yarnpkg.com/sinon/-/sinon-6.3.2.tgz#9d5f39689638285683e6625d0f68c4b670d13b36" +sinon@^7.2.2: + version "7.2.2" + resolved "https://registry.yarnpkg.com/sinon/-/sinon-7.2.2.tgz#388ecabd42fa93c592bfc71d35a70894d5a0ca07" + integrity sha512-WLagdMHiEsrRmee3jr6IIDntOF4kbI6N2pfbi8wkv50qaUQcBglkzkjtoOEbeJ2vf1EsrHhLI+5Ny8//WHdMoA== dependencies: - "@sinonjs/commons" "^1.0.2" - "@sinonjs/formatio" "^2.0.0" - "@sinonjs/samsam" "^2.0.0" + "@sinonjs/commons" "^1.2.0" + "@sinonjs/formatio" "^3.1.0" + "@sinonjs/samsam" "^3.0.2" diff "^3.5.0" - lodash.get "^4.4.2" - lolex "^2.7.4" - nise "^1.4.4" + lolex "^3.0.0" + nise "^1.4.7" supports-color "^5.5.0" - type-detect "^4.0.8" source-map-support@^0.5.6: version "0.5.9" @@ -864,9 +917,10 @@ tslint-xo@^0.9.0: tslint-eslint-rules "^5.3.1" tslint-microsoft-contrib "^5.0.2" -tslint@^5.11.0: - version "5.11.0" - resolved "https://registry.yarnpkg.com/tslint/-/tslint-5.11.0.tgz#98f30c02eae3cde7006201e4c33cb08b48581eed" +tslint@^5.12.0: + version "5.12.0" + resolved "https://registry.yarnpkg.com/tslint/-/tslint-5.12.0.tgz#47f2dba291ed3d580752d109866fb640768fca36" + integrity sha512-CKEcH1MHUBhoV43SA/Jmy1l24HJJgI0eyLbBNSRyFlsQvb9v6Zdq+Nz2vEOH00nC5SUx4SneJ59PZUS/ARcokQ== dependencies: babel-code-frame "^6.22.0" builtin-modules "^1.1.1" @@ -905,17 +959,19 @@ tunnel-agent@^0.6.0: dependencies: safe-buffer "^5.0.1" -type-detect@4.0.8, type-detect@^4.0.0, type-detect@^4.0.8: +type-detect@4.0.8, type-detect@^4.0.0, type-detect@^4.0.5: version "4.0.8" resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" + integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== typedarray@^0.0.6: version "0.0.6" resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" -typescript@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.0.3.tgz#4853b3e275ecdaa27f78fda46dc273a7eb7fc1c8" +typescript@^3.2.2: + version "3.2.2" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.2.2.tgz#fe8101c46aa123f8353523ebdcf5730c2ae493e5" + integrity sha512-VCj5UiSyHBjwfYacmDuc/NOk4QQixbE+Wn7MFJuS0nRuPQbof132Pw4u53dm264O8LPc2MVsc7RJNml5szurkg== underscore.string@~2.4.0: version "2.4.0"