Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Coverage Broken: metrics.isEmpty is not a function at tableRow #5772

Closed
felangel opened this issue Mar 10, 2018 · 24 comments
Closed

Coverage Broken: metrics.isEmpty is not a function at tableRow #5772

felangel opened this issue Mar 10, 2018 · 24 comments

Comments

@felangel
Copy link

command run:
jest --forceExit --verbose --bail --useStderr --runInBand --expand --colors --coverage

output:
Failed to write coverage reports: ERROR: TypeError: metrics.isEmpty is not a function STACK: TypeError: metrics.isEmpty is not a function at tableRow (/Users/qtb9604/bmw/packages/http/node_modules/istanbul-reports/lib/text/index.js:133:27) at TextReport.onSummary (/Users/qtb9604/bmw/packages/http/node_modules/istanbul-reports/lib/text/index.js:188:15) at TextReport.onDetail (/Users/qtb9604/bmw/packages/http/node_modules/istanbul-reports/lib/text/index.js:193:17) at Visitor.(anonymous function) [as onDetail] (/Users/qtb9604/bmw/packages/http/node_modules/istanbul-lib-report/lib/tree.js:34:30) at ReportNode.Node.visit (/Users/qtb9604/bmw/packages/http/node_modules/istanbul-lib-report/lib/tree.js:123:17) at /Users/qtb9604/bmw/packages/http/node_modules/istanbul-lib-report/lib/tree.js:116:23 at Array.forEach (native) at visitChildren (/Users/qtb9604/bmw/packages/http/node_modules/istanbul-lib-report/lib/tree.js:115:32) at ReportNode.Node.visit (/Users/qtb9604/bmw/packages/http/node_modules/istanbul-lib-report/lib/tree.js:126:5) at /Users/qtb9604/bmw/packages/http/node_modules/istanbul-lib-report/lib/tree.js:116:23

jest --debug yields:
{ "configs": [ { "automock": false, "browser": false, "cache": true, "cacheDirectory": "/var/folders/t6/0brzsz0s6v5fqttj19rylpn18r1g3z/T/jest_mm3xxb", "clearMocks": false, "coveragePathIgnorePatterns": [ "index.ts", "locales", "src/controllers", "src/middleware", "src/prototypes", "src/types", "tests/unit/mocks" ], "detectLeaks": false, "forceCoverageMatch": [], "globals": { "ts-jest": { "tsConfigFile": "tsconfig.json" } }, "haste": { "providesModuleNodeModules": [] }, "moduleDirectories": [ "node_modules" ], "moduleFileExtensions": [ "ts", "js" ], "moduleNameMapper": {}, "modulePathIgnorePatterns": [], "name": "3fa0a9dc4bb9d4586ae003b68f15eda0", "resetMocks": false, "resetModules": false, "restoreMocks": false, "rootDir": "/Users/qtb9604/vea-server", "roots": [ "/Users/qtb9604/vea-server" ], "runner": "jest-runner", "setupFiles": [], "snapshotSerializers": [], "testEnvironment": "/Users/qtb9604/vea-server/node_modules/jest-environment-node/build/index.js", "testEnvironmentOptions": {}, "testLocationInResults": false, "testMatch": [ "**/tests/**/*.test.(ts)" ], "testPathIgnorePatterns": [ "/node_modules/" ], "testRegex": "", "testRunner": "/Users/qtb9604/vea-server/node_modules/jest-jasmine2/build/index.js", "testURL": "about:blank", "timers": "real", "transform": [ [ "^.+\\.(ts|tsx)$", "/Users/qtb9604/vea-server/node_modules/ts-jest/preprocessor.js" ] ], "transformIgnorePatterns": [ "/node_modules/" ], "watchPathIgnorePatterns": [] } ], "globalConfig": { "bail": false, "changedFilesWithAncestor": false, "collectCoverageFrom": [ "src/**" ], "coverageDirectory": "/Users/qtb9604/vea-server/coverage", "coverageReporters": [ "json", "text", "lcov", "clover" ], "detectLeaks": false, "expand": false, "globalSetup": null, "globalTeardown": null, "listTests": false, "maxWorkers": 7, "noStackTrace": false, "nonFlagArgs": [], "notify": false, "notifyMode": "always", "passWithNoTests": false, "rootDir": "/Users/qtb9604/vea-server", "runTestsByPath": false, "testFailureExitCode": 1, "testPathPattern": "", "testResultsProcessor": null, "updateSnapshot": "new", "useStderr": false, "verbose": null, "watch": false, "watchman": true }, "version": "22.4.2" }

@dazip
Copy link

dazip commented Mar 10, 2018

istanbuljs/istanbuljs#140

@felangel
Copy link
Author

@dazip how does this help?

@dazip
Copy link

dazip commented Mar 10, 2018

The pull request referenced appears to break coverage within jest. In cases where my package-lock.json used version 1.1.4 of istanbul-reports, coverage works. Updating, in which Jest pulls in 1.3.0, and the pull request above, breaks.

@bcoe
Copy link
Contributor

bcoe commented Mar 10, 2018

@dazip @felangel could you try reinstalling, I'm pretty sure the core issue is an incompatible version of istanbul-reports and istanbul-lib-coverage ... not quite sure why one would be upgrading and not the other for you (probably lock related).

@felangel
Copy link
Author

felangel commented Mar 10, 2018

@bcoe I have tried installing multiple times and it seems to have no effect. My dependency tree is:

vea-service@0.0.0 /Users/qtb9604/vea-server
├── @bmw/attribute-api@0.0.1-15
├── @bmw/http@0.0.1-15
├── @bmw/notification-api@0.0.1-15
├── @types/body-parser@1.16.8
├── @types/dotenv@2.0.23
├─┬ @types/express@4.11.0
│ ├─┬ @types/express-serve-static-core@4.11.1
│ │ └── @types/events@1.2.0
│ └─┬ @types/serve-static@1.13.1
│   └── @types/mime@2.0.0
├── @types/jest@21.1.8
├── @types/lodash@4.14.91
├── @types/moment-timezone@0.5.3
├── @types/morgan@1.7.35
├── @types/nock@9.1.2
├── @types/node@7.0.51
├─┬ @types/request@0.0.45
│ ├─┬ @types/form-data@2.2.1
│ │ └── @types/node@9.4.7
│ └── @types/node@9.4.7
├─┬ @types/supertest@2.0.4
│ └── @types/superagent@3.5.7
├─┬ applicationinsights@1.0.1
│ ├── diagnostic-channel@0.2.0
│ ├── diagnostic-channel-publishers@0.2.1
│ └── zone.js@0.7.6
├─┬ body-parser@1.18.2
│ ├── bytes@3.0.0
│ ├── content-type@1.0.4
│ ├─┬ debug@2.6.9
│ │ └── ms@2.0.0
│ ├── depd@1.1.2
│ ├─┬ http-errors@1.6.2
│ │ ├── depd@1.1.1
│ │ ├── inherits@2.0.3
│ │ ├── setprototypeof@1.0.3
│ │ └── statuses@1.4.0
│ ├── iconv-lite@0.4.19
│ ├─┬ on-finished@2.3.0
│ │ └── ee-first@1.1.1
│ ├── qs@6.5.1
│ ├─┬ raw-body@2.3.2
│ │ └── unpipe@1.0.0
│ └─┬ type-is@1.6.16
│   └── media-typer@0.3.0
├─┬ concurrently@3.5.1
│ ├─┬ chalk@0.5.1
│ │ ├── ansi-styles@1.1.0
│ │ ├── escape-string-regexp@1.0.5
│ │ ├─┬ has-ansi@0.1.0
│ │ │ └── ansi-regex@0.2.1
│ │ ├── strip-ansi@0.3.0
│ │ └── supports-color@0.2.0
│ ├── commander@2.6.0
│ ├── date-fns@1.29.0
│ ├── rx@2.3.24
│ ├── spawn-command@0.0.2-1
│ ├─┬ supports-color@3.2.3
│ │ └── has-flag@1.0.0
│ └── tree-kill@1.2.0
├── dotenv@4.0.0
├─┬ express@4.16.2
│ ├─┬ accepts@1.3.5
│ │ └── negotiator@0.6.1
│ ├── array-flatten@1.1.1
│ ├── content-disposition@0.5.2
│ ├── cookie@0.3.1
│ ├── cookie-signature@1.0.6
│ ├── encodeurl@1.0.2
│ ├── escape-html@1.0.3
│ ├── etag@1.8.1
│ ├─┬ finalhandler@1.1.0
│ │ └── statuses@1.3.1
│ ├── fresh@0.5.2
│ ├── merge-descriptors@1.0.1
│ ├── methods@1.1.2
│ ├── parseurl@1.3.2
│ ├── path-to-regexp@0.1.7
│ ├─┬ proxy-addr@2.0.3
│ │ ├── forwarded@0.1.2
│ │ └── ipaddr.js@1.6.0
│ ├── range-parser@1.2.0
│ ├── safe-buffer@5.1.1
│ ├─┬ send@0.16.1
│ │ ├── destroy@1.0.4
│ │ ├── mime@1.4.1
│ │ └── statuses@1.3.1
│ ├── serve-static@1.13.1
│ ├── setprototypeof@1.1.0
│ ├── statuses@1.3.1
│ ├── utils-merge@1.0.1
│ └── vary@1.1.2
├── express-https-redirect@1.0.0
├─┬ jest@22.4.2
│ ├─┬ import-local@1.0.0
│ │ └─┬ resolve-cwd@2.0.0
│ │   └── resolve-from@3.0.0
│ └─┬ jest-cli@22.4.2
│   ├── ansi-escapes@3.0.0
│   ├─┬ chalk@2.3.2
│   │ ├── ansi-styles@3.2.1
│   │ └─┬ supports-color@5.3.0
│   │   └── has-flag@3.0.0
│   ├── exit@0.1.2
│   ├── graceful-fs@4.1.11
│   ├─┬ is-ci@1.1.0
│   │ └── ci-info@1.1.2
│   ├─┬ istanbul-api@1.3.1
│   │ ├── async@2.6.0
│   │ ├── compare-versions@3.1.0
│   │ ├── fileset@2.0.3
│   │ ├── istanbul-lib-coverage@1.2.0
│   │ ├─┬ istanbul-lib-hook@1.2.0
│   │ │ └─┬ append-transform@0.4.0
│   │ │   └─┬ default-require-extensions@1.0.0
│   │ │     └─┬ strip-bom@2.0.0
│   │ │       └── is-utf8@0.2.1
│   │ ├─┬ istanbul-lib-report@1.1.4
│   │ │ └── istanbul-lib-coverage@1.2.0
│   │ ├─┬ istanbul-lib-source-maps@1.2.4
│   │ │ └── debug@3.1.0
│   │ ├─┬ istanbul-reports@1.3.0
│   │ │ └─┬ handlebars@4.0.11
│   │ │   ├── async@1.5.2
│   │ │   ├─┬ optimist@0.6.1
│   │ │   │ └── wordwrap@0.0.3
│   │ │   ├─┬ source-map@0.4.4
│   │ │   │ └── amdefine@1.0.1
│   │ │   └─┬ uglify-js@2.8.29
│   │ │     ├── uglify-to-browserify@1.0.2
│   │ │     └─┬ yargs@3.10.0
│   │ │       ├── camelcase@1.2.1
│   │ │       ├─┬ cliui@2.1.0
│   │ │       │ ├─┬ center-align@0.1.3
│   │ │       │ │ ├─┬ align-text@0.1.4
│   │ │       │ │ │ └── longest@1.0.1
│   │ │       │ │ └── lazy-cache@1.0.4
│   │ │       │ ├── right-align@0.1.3
│   │ │       │ └── wordwrap@0.0.2
│   │ │       └── window-size@0.1.0
│   │ └─┬ js-yaml@3.11.0
│   │   ├─┬ argparse@1.0.10
│   │   │ └── sprintf-js@1.0.3
│   │   └── esprima@4.0.0
│   ├── istanbul-lib-coverage@1.1.2
│   ├─┬ istanbul-lib-instrument@1.10.1
│   │ └── istanbul-lib-coverage@1.2.0
│   ├─┬ istanbul-lib-source-maps@1.2.3
│   │ └── debug@3.1.0
│   ├─┬ jest-changed-files@22.2.0
│   │ └── throat@4.1.0
│   ├─┬ jest-config@22.4.2
│   │ ├─┬ chalk@2.3.2
│   │ │ ├── ansi-styles@3.2.1
│   │ │ └─┬ supports-color@5.3.0
│   │ │   └── has-flag@3.0.0
│   │ ├── jest-environment-node@22.4.1
│   │ ├─┬ jest-jasmine2@22.4.2
│   │ │ ├─┬ chalk@2.3.2
│   │ │ │ ├── ansi-styles@3.2.1
│   │ │ │ └─┬ supports-color@5.3.0
│   │ │ │   └── has-flag@3.0.0
│   │ │ ├─┬ expect@22.4.0
│   │ │ │ └── ansi-styles@3.2.1
│   │ │ └── is-generator-fn@1.0.0
│   │ ├─┬ jest-resolve@22.4.2
│   │ │ └─┬ chalk@2.3.2
│   │ │   ├── ansi-styles@3.2.1
│   │ │   └─┬ supports-color@5.3.0
│   │ │     └── has-flag@3.0.0
│   │ └─┬ pretty-format@22.4.0
│   │   ├── ansi-regex@3.0.0
│   │   └── ansi-styles@3.2.1
│   ├─┬ jest-environment-jsdom@22.4.1
│   │ ├── jest-mock@22.2.0
│   │ └─┬ jsdom@11.6.2
│   │   ├── abab@1.0.4
│   │   ├── acorn@5.5.3
│   │   ├── acorn-globals@4.1.0
│   │   ├── array-equal@1.0.0
│   │   ├── browser-process-hrtime@0.1.2
│   │   ├── content-type-parser@1.0.2
│   │   ├── cssom@0.3.2
│   │   ├── cssstyle@0.2.37
│   │   ├── domexception@1.0.1
│   │   ├─┬ escodegen@1.9.1
│   │   │ ├── esprima@3.1.3
│   │   │ ├── estraverse@4.2.0
│   │   │ ├─┬ optionator@0.8.2
│   │   │ │ ├── deep-is@0.1.3
│   │   │ │ ├── fast-levenshtein@2.0.6
│   │   │ │ ├── levn@0.3.0
│   │   │ │ ├── prelude-ls@1.1.2
│   │   │ │ ├── type-check@0.3.2
│   │   │ │ └── wordwrap@1.0.0
│   │   │ └── source-map@0.6.1
│   │   ├── html-encoding-sniffer@1.0.2
│   │   ├── left-pad@1.2.0
│   │   ├── nwmatcher@1.4.3
│   │   ├── parse5@4.0.0
│   │   ├── pn@1.1.0
│   │   ├─┬ request-promise-native@1.0.5
│   │   │ ├── request-promise-core@1.1.1
│   │   │ └── stealthy-require@1.1.1
│   │   ├── sax@1.2.4
│   │   ├── symbol-tree@3.2.2
│   │   ├── w3c-hr-time@1.0.1
│   │   ├── webidl-conversions@4.0.2
│   │   ├── whatwg-encoding@1.0.3
│   │   ├─┬ whatwg-url@6.4.0
│   │   │ ├── lodash.sortby@4.7.0
│   │   │ └─┬ tr46@1.0.1
│   │   │   └── punycode@2.1.0
│   │   ├─┬ ws@4.1.0
│   │   │ └── async-limiter@1.0.0
│   │   └── xml-name-validator@3.0.0
│   ├── jest-get-type@22.1.0
│   ├─┬ jest-haste-map@22.4.2
│   │ ├─┬ fb-watchman@2.0.0
│   │ │ └─┬ bser@2.0.0
│   │ │   └── node-int64@0.4.0
│   │ ├─┬ jest-docblock@22.4.0
│   │ │ └── detect-newline@2.1.0
│   │ ├── jest-serializer@22.4.0
│   │ └─┬ sane@2.4.1
│   │   ├─┬ exec-sh@0.2.1
│   │   │ └── merge@1.2.0
│   │   ├── minimist@1.2.0
│   │   ├─┬ walker@1.0.7
│   │   │ └─┬ makeerror@1.0.11
│   │   │   └── tmpl@1.0.4
│   │   └─┬ watch@0.18.0
│   │     └── minimist@1.2.0
│   ├─┬ jest-message-util@22.4.0
│   │ ├─┬ @babel/code-frame@7.0.0-beta.40
│   │ │ └─┬ @babel/highlight@7.0.0-beta.40
│   │ │   └─┬ chalk@2.3.2
│   │ │     ├── ansi-styles@3.2.1
│   │ │     └─┬ supports-color@5.3.0
│   │ │       └── has-flag@3.0.0
│   │ ├─┬ chalk@2.3.2
│   │ │ ├── ansi-styles@3.2.1
│   │ │ └─┬ supports-color@5.3.0
│   │ │   └── has-flag@3.0.0
│   │ └── stack-utils@1.0.1
│   ├── jest-regex-util@22.1.0
│   ├── jest-resolve-dependencies@22.1.0
│   ├─┬ jest-runner@22.4.2
│   │ └── jest-leak-detector@22.4.0
│   ├─┬ jest-runtime@22.4.2
│   │ ├─┬ babel-jest@22.4.1
│   │ │ └─┬ babel-preset-jest@22.4.1
│   │ │   └── babel-plugin-jest-hoist@22.4.1
│   │ ├─┬ chalk@2.3.2
│   │ │ ├── ansi-styles@3.2.1
│   │ │ └─┬ supports-color@5.3.0
│   │ │   └── has-flag@3.0.0
│   │ ├── json-stable-stringify@1.0.1
│   │ ├── strip-bom@3.0.0
│   │ └─┬ write-file-atomic@2.3.0
│   │   ├── imurmurhash@0.1.4
│   │   └── signal-exit@3.0.2
│   ├─┬ jest-snapshot@22.4.0
│   │ ├─┬ chalk@2.3.2
│   │ │ ├── ansi-styles@3.2.1
│   │ │ └─┬ supports-color@5.3.0
│   │ │   └── has-flag@3.0.0
│   │ ├─┬ jest-diff@22.4.0
│   │ │ └─┬ chalk@2.3.2
│   │ │   ├── ansi-styles@3.2.1
│   │ │   └─┬ supports-color@5.3.0
│   │ │     └── has-flag@3.0.0
│   │ ├─┬ jest-matcher-utils@22.4.0
│   │ │ └─┬ chalk@2.3.2
│   │ │   ├── ansi-styles@3.2.1
│   │ │   └─┬ supports-color@5.3.0
│   │ │     └── has-flag@3.0.0
│   │ └── natural-compare@1.4.0
│   ├─┬ jest-util@22.4.1
│   │ ├── callsites@2.0.0
│   │ ├─┬ chalk@2.3.2
│   │ │ ├── ansi-styles@3.2.1
│   │ │ └─┬ supports-color@5.3.0
│   │ │   └── has-flag@3.0.0
│   │ └── source-map@0.6.1
│   ├─┬ jest-validate@22.4.2
│   │ ├─┬ chalk@2.3.2
│   │ │ ├── ansi-styles@3.2.1
│   │ │ └─┬ supports-color@5.3.0
│   │ │   └── has-flag@3.0.0
│   │ └── leven@2.1.0
│   ├─┬ jest-worker@22.2.2
│   │ └── merge-stream@1.0.1
│   ├─┬ micromatch@2.3.11
│   │ ├─┬ arr-diff@2.0.0
│   │ │ └── arr-flatten@1.1.0
│   │ ├── array-unique@0.2.1
│   │ ├─┬ braces@1.8.5
│   │ │ ├─┬ expand-range@1.8.2
│   │ │ │ └─┬ fill-range@2.2.3
│   │ │ │   ├── is-number@2.1.0
│   │ │ │   ├── isobject@2.1.0
│   │ │ │   ├─┬ randomatic@1.1.7
│   │ │ │   │ ├─┬ is-number@3.0.0
│   │ │ │   │ │ └── kind-of@3.2.2
│   │ │ │   │ └── kind-of@4.0.0
│   │ │ │   └── repeat-string@1.6.1
│   │ │ ├── preserve@0.2.0
│   │ │ └── repeat-element@1.1.2
│   │ ├─┬ expand-brackets@0.1.5
│   │ │ └── is-posix-bracket@0.1.1
│   │ ├── extglob@0.3.2
│   │ ├── filename-regex@2.0.1
│   │ ├── is-extglob@1.0.0
│   │ ├─┬ kind-of@3.2.2
│   │ │ └── is-buffer@1.1.6
│   │ ├─┬ normalize-path@2.1.1
│   │ │ └── remove-trailing-separator@1.1.0
│   │ ├─┬ object.omit@2.0.1
│   │ │ ├─┬ for-own@0.1.5
│   │ │ │ └── for-in@1.0.2
│   │ │ └── is-extendable@0.1.1
│   │ ├─┬ parse-glob@3.0.4
│   │ │ ├── glob-base@0.3.0
│   │ │ └── is-dotfile@1.0.3
│   │ └─┬ regex-cache@0.4.4
│   │   └─┬ is-equal-shallow@0.1.3
│   │     └── is-primitive@2.0.0
│   ├─┬ node-notifier@5.2.1
│   │ ├── growly@1.3.0
│   │ └── shellwords@0.1.1
│   ├─┬ realpath-native@1.0.0
│   │ └─┬ util.promisify@1.0.0
│   │   ├─┬ define-properties@1.1.2
│   │   │ ├── foreach@2.0.5
│   │   │ └── object-keys@1.0.11
│   │   └─┬ object.getownpropertydescriptors@2.0.3
│   │     └─┬ es-abstract@1.10.0
│   │       ├─┬ es-to-primitive@1.1.1
│   │       │ ├── is-date-object@1.0.1
│   │       │ └── is-symbol@1.0.1
│   │       ├── function-bind@1.1.1
│   │       ├── has@1.0.1
│   │       ├── is-callable@1.1.3
│   │       └── is-regex@1.0.4
│   ├── slash@1.0.0
│   ├─┬ string-length@2.0.0
│   │ ├── astral-regex@1.0.0
│   │ └─┬ strip-ansi@4.0.0
│   │   └── ansi-regex@3.0.0
│   ├─┬ strip-ansi@4.0.0
│   │ └── ansi-regex@3.0.0
│   └─┬ which@1.3.0
│     └── isexe@2.0.0
├─┬ locale-manager@1.2.6
│ ├─┬ glob@7.1.2
│ │ ├── fs.realpath@1.0.0
│ │ ├─┬ inflight@1.0.6
│ │ │ └── wrappy@1.0.2
│ │ ├── once@1.4.0
│ │ └── path-is-absolute@1.0.1
│ └─┬ path@0.12.7
│   ├── process@0.11.10
│   └─┬ util@0.10.3
│     └── inherits@2.0.1
├── lodash@4.17.4
├── moment@2.20.1
├── moment-duration-format@2.2.1
├── moment-timezone@0.5.14
├─┬ morgan@1.9.0
│ ├── basic-auth@2.0.0
│ └── on-headers@1.0.1
├─┬ nock@9.1.5
│ ├─┬ chai@3.5.0
│ │ ├── assertion-error@1.1.0
│ │ ├─┬ deep-eql@0.1.3
│ │ │ └── type-detect@0.1.1
│ │ └── type-detect@1.0.0
│ ├── deep-equal@1.0.1
│ ├── json-stringify-safe@5.0.1
│ ├─┬ mkdirp@0.5.1
│ │ └── minimist@0.0.8
│ ├── propagate@0.4.0
│ └── semver@5.5.0
├─┬ nodemon@1.14.3
│ ├─┬ chokidar@1.7.0
│ │ ├── anymatch@1.3.2
│ │ ├── async-each@1.0.1
│ │ ├─┬ fsevents@1.1.3
│ │ │ ├── nan@2.9.2
│ │ │ └─┬ node-pre-gyp@0.6.39
│ │ │   ├── detect-libc@1.0.2
│ │ │   ├─┬ hawk@3.1.3
│ │ │   │ ├── boom@2.10.1
│ │ │   │ ├── cryptiles@2.0.5
│ │ │   │ ├── hoek@2.16.3
│ │ │   │ └── sntp@1.0.9
│ │ │   ├─┬ mkdirp@0.5.1
│ │ │   │ └── minimist@0.0.8
│ │ │   ├─┬ nopt@4.0.1
│ │ │   │ ├── abbrev@1.1.0
│ │ │   │ └─┬ osenv@0.1.4
│ │ │   │   ├── os-homedir@1.0.2
│ │ │   │   └── os-tmpdir@1.0.2
│ │ │   ├─┬ npmlog@4.1.0
│ │ │   │ ├─┬ are-we-there-yet@1.1.4
│ │ │   │ │ └── delegates@1.0.0
│ │ │   │ ├── console-control-strings@1.1.0
│ │ │   │ ├─┬ gauge@2.7.4
│ │ │   │ │ ├── aproba@1.1.1
│ │ │   │ │ ├── has-unicode@2.0.1
│ │ │   │ │ ├── object-assign@4.1.1
│ │ │   │ │ ├── signal-exit@3.0.2
│ │ │   │ │ ├─┬ string-width@1.0.2
│ │ │   │ │ │ ├── code-point-at@1.1.0
│ │ │   │ │ │ └─┬ is-fullwidth-code-point@1.0.0
│ │ │   │ │ │   └── number-is-nan@1.0.1
│ │ │   │ │ ├─┬ strip-ansi@3.0.1
│ │ │   │ │ │ └── ansi-regex@2.1.1
│ │ │   │ │ └── wide-align@1.1.2
│ │ │   │ └── set-blocking@2.0.0
│ │ │   ├─┬ rc@1.2.1
│ │ │   │ ├── deep-extend@0.4.2
│ │ │   │ ├── ini@1.3.4
│ │ │   │ ├── minimist@1.2.0
│ │ │   │ └── strip-json-comments@2.0.1
│ │ │   ├─┬ request@2.81.0
│ │ │   │ ├── aws-sign2@0.6.0
│ │ │   │ ├── aws4@1.6.0
│ │ │   │ ├── caseless@0.12.0
│ │ │   │ ├─┬ combined-stream@1.0.5
│ │ │   │ │ └── delayed-stream@1.0.0
│ │ │   │ ├── extend@3.0.1
│ │ │   │ ├── forever-agent@0.6.1
│ │ │   │ ├─┬ form-data@2.1.4
│ │ │   │ │ └── asynckit@0.4.0
│ │ │   │ ├─┬ har-validator@4.2.1
│ │ │   │ │ ├─┬ ajv@4.11.8
│ │ │   │ │ │ ├── co@4.6.0
│ │ │   │ │ │ └─┬ json-stable-stringify@1.0.1
│ │ │   │ │ │   └── jsonify@0.0.0
│ │ │   │ │ └── har-schema@1.0.5
│ │ │   │ ├─┬ http-signature@1.1.1
│ │ │   │ │ ├── assert-plus@0.2.0
│ │ │   │ │ ├─┬ jsprim@1.4.0
│ │ │   │ │ │ ├── assert-plus@1.0.0
│ │ │   │ │ │ ├── extsprintf@1.0.2
│ │ │   │ │ │ ├── json-schema@0.2.3
│ │ │   │ │ │ └── verror@1.3.6
│ │ │   │ │ └─┬ sshpk@1.13.0
│ │ │   │ │   ├── asn1@0.2.3
│ │ │   │ │   ├── assert-plus@1.0.0
│ │ │   │ │   ├── bcrypt-pbkdf@1.0.1
│ │ │   │ │   ├─┬ dashdash@1.14.1
│ │ │   │ │   │ └── assert-plus@1.0.0
│ │ │   │ │   ├── ecc-jsbn@0.1.1
│ │ │   │ │   ├─┬ getpass@0.1.7
│ │ │   │ │   │ └── assert-plus@1.0.0
│ │ │   │ │   ├── jodid25519@1.0.2
│ │ │   │ │   ├── jsbn@0.1.1
│ │ │   │ │   └── tweetnacl@0.14.5
│ │ │   │ ├── is-typedarray@1.0.0
│ │ │   │ ├── isstream@0.1.2
│ │ │   │ ├── json-stringify-safe@5.0.1
│ │ │   │ ├─┬ mime-types@2.1.15
│ │ │   │ │ └── mime-db@1.27.0
│ │ │   │ ├── oauth-sign@0.8.2
│ │ │   │ ├── performance-now@0.2.0
│ │ │   │ ├── qs@6.4.0
│ │ │   │ ├── safe-buffer@5.0.1
│ │ │   │ ├── stringstream@0.0.5
│ │ │   │ ├─┬ tough-cookie@2.3.2
│ │ │   │ │ └── punycode@1.4.1
│ │ │   │ ├── tunnel-agent@0.6.0
│ │ │   │ └── uuid@3.0.1
│ │ │   ├─┬ rimraf@2.6.1
│ │ │   │ └─┬ glob@7.1.2
│ │ │   │   ├── fs.realpath@1.0.0
│ │ │   │   ├── inflight@1.0.6
│ │ │   │   ├─┬ minimatch@3.0.4
│ │ │   │   │ └─┬ brace-expansion@1.1.7
│ │ │   │   │   ├── balanced-match@0.4.2
│ │ │   │   │   └── concat-map@0.0.1
│ │ │   │   └── path-is-absolute@1.0.1
│ │ │   ├── semver@5.3.0
│ │ │   ├─┬ tar@2.2.1
│ │ │   │ ├── block-stream@0.0.9
│ │ │   │ ├─┬ fstream@1.0.11
│ │ │   │ │ └── graceful-fs@4.1.11
│ │ │   │ └── inherits@2.0.3
│ │ │   └─┬ tar-pack@3.4.0
│ │ │     ├─┬ debug@2.6.8
│ │ │     │ └── ms@2.0.0
│ │ │     ├── fstream-ignore@1.0.5
│ │ │     ├─┬ once@1.4.0
│ │ │     │ └── wrappy@1.0.2
│ │ │     ├─┬ readable-stream@2.2.9
│ │ │     │ ├── buffer-shims@1.0.0
│ │ │     │ ├── core-util-is@1.0.2
│ │ │     │ ├── isarray@1.0.0
│ │ │     │ ├── process-nextick-args@1.0.7
│ │ │     │ ├── string_decoder@1.0.1
│ │ │     │ └── util-deprecate@1.0.2
│ │ │     └── uid-number@0.0.6
│ │ ├── glob-parent@2.0.0
│ │ ├─┬ is-binary-path@1.0.1
│ │ │ └── binary-extensions@1.11.0
│ │ ├── is-glob@2.0.1
│ │ └─┬ readdirp@2.1.0
│ │   └── set-immediate-shim@1.0.1
│ ├── ignore-by-default@1.0.1
│ ├─┬ minimatch@3.0.4
│ │ └─┬ brace-expansion@1.1.11
│ │   ├── balanced-match@1.0.0
│ │   └── concat-map@0.0.1
│ ├─┬ pstree.remy@1.1.0
│ │ └─┬ ps-tree@1.1.0
│ │   └─┬ event-stream@3.3.4
│ │     ├── from@0.1.7
│ │     ├── map-stream@0.1.0
│ │     ├── pause-stream@0.0.11
│ │     ├── split@0.3.3
│ │     ├── stream-combiner@0.0.4
│ │     └── through@2.3.8
│ ├─┬ touch@3.1.0
│ │ └─┬ nopt@1.0.10
│ │   └── abbrev@1.1.1
│ ├── undefsafe@0.0.3
│ └─┬ update-notifier@2.3.0
│   ├─┬ boxen@1.3.0
│   │ ├── ansi-align@2.0.0
│   │ ├── camelcase@4.1.0
│   │ ├─┬ chalk@2.3.2
│   │ │ ├── ansi-styles@3.2.1
│   │ │ └─┬ supports-color@5.3.0
│   │ │   └── has-flag@3.0.0
│   │ ├── cli-boxes@1.0.0
│   │ ├── term-size@1.2.0
│   │ └── widest-line@2.0.0
│   ├─┬ chalk@2.3.2
│   │ ├── ansi-styles@3.2.1
│   │ └─┬ supports-color@5.3.0
│   │   └── has-flag@3.0.0
│   ├─┬ configstore@3.1.1
│   │ ├─┬ dot-prop@4.2.0
│   │ │ └── is-obj@1.0.1
│   │ ├─┬ make-dir@1.2.0
│   │ │ └── pify@3.0.0
│   │ └─┬ unique-string@1.0.0
│   │   └── crypto-random-string@1.0.0
│   ├── import-lazy@2.1.0
│   ├─┬ is-installed-globally@0.1.0
│   │ ├─┬ global-dirs@0.1.1
│   │ │ └── ini@1.3.5
│   │ └─┬ is-path-inside@1.0.1
│   │   └── path-is-inside@1.0.2
│   ├── is-npm@1.0.0
│   ├─┬ latest-version@3.1.0
│   │ └─┬ package-json@4.0.1
│   │   ├─┬ got@6.7.1
│   │   │ ├─┬ create-error-class@3.0.2
│   │   │ │ └── capture-stack-trace@1.0.0
│   │   │ ├── duplexer3@0.1.4
│   │   │ ├── is-redirect@1.0.0
│   │   │ ├── is-retry-allowed@1.1.0
│   │   │ ├── lowercase-keys@1.0.0
│   │   │ ├── timed-out@4.0.1
│   │   │ ├── unzip-response@2.0.1
│   │   │ └─┬ url-parse-lax@1.0.0
│   │   │   └── prepend-http@1.0.4
│   │   ├─┬ registry-auth-token@3.3.2
│   │   │ └─┬ rc@1.2.5
│   │   │   ├── deep-extend@0.4.2
│   │   │   ├── minimist@1.2.0
│   │   │   └── strip-json-comments@2.0.1
│   │   └── registry-url@3.1.0
│   ├── semver-diff@2.1.0
│   └── xdg-basedir@3.0.0
├── prettier@1.10.2
├─┬ request@2.83.0
│ ├── aws-sign2@0.7.0
│ ├── aws4@1.6.0
│ ├── caseless@0.12.0
│ ├─┬ combined-stream@1.0.6
│ │ └── delayed-stream@1.0.0
│ ├── extend@3.0.1
│ ├── forever-agent@0.6.1
│ ├─┬ form-data@2.3.2
│ │ └── asynckit@0.4.0
│ ├─┬ har-validator@5.0.3
│ │ ├─┬ ajv@5.5.2
│ │ │ ├── co@4.6.0
│ │ │ ├── fast-deep-equal@1.1.0
│ │ │ ├── fast-json-stable-stringify@2.0.0
│ │ │ └── json-schema-traverse@0.3.1
│ │ └── har-schema@2.0.0
│ ├─┬ hawk@6.0.2
│ │ ├── boom@4.3.1
│ │ ├─┬ cryptiles@3.1.2
│ │ │ └── boom@5.2.0
│ │ ├── hoek@4.2.1
│ │ └── sntp@2.1.0
│ ├─┬ http-signature@1.2.0
│ │ ├── assert-plus@1.0.0
│ │ ├─┬ jsprim@1.4.1
│ │ │ ├── extsprintf@1.3.0
│ │ │ ├── json-schema@0.2.3
│ │ │ └── verror@1.10.0
│ │ └─┬ sshpk@1.13.1
│ │   ├── asn1@0.2.3
│ │   ├── bcrypt-pbkdf@1.0.1
│ │   ├── dashdash@1.14.1
│ │   ├── ecc-jsbn@0.1.1
│ │   ├── getpass@0.1.7
│ │   ├── jsbn@0.1.1
│ │   └── tweetnacl@0.14.5
│ ├── is-typedarray@1.0.0
│ ├── isstream@0.1.2
│ ├─┬ mime-types@2.1.18
│ │ └── mime-db@1.33.0
│ ├── oauth-sign@0.8.2
│ ├── performance-now@2.1.0
│ ├── stringstream@0.0.5
│ ├─┬ tough-cookie@2.3.4
│ │ └── punycode@1.4.1
│ ├── tunnel-agent@0.6.0
│ └── uuid@3.2.1
├── rimraf@2.6.2
├─┬ shelljs@0.7.8
│ ├── interpret@1.1.0
│ └─┬ rechoir@0.6.2
│   └── resolve@1.1.7
├─┬ supertest@3.0.0
│ └─┬ superagent@3.8.2
│   ├── component-emitter@1.2.1
│   ├── cookiejar@2.1.1
│   ├── debug@3.1.0
│   ├── formidable@1.2.0
│   └─┬ readable-stream@2.3.5
│     ├── core-util-is@1.0.2
│     ├── isarray@1.0.0
│     ├── process-nextick-args@2.0.0
│     ├── string_decoder@1.0.3
│     └── util-deprecate@1.0.2
├─┬ ts-jest@21.2.4
│ ├─┬ babel-core@6.26.0
│ │ ├─┬ babel-generator@6.26.1
│ │ │ ├─┬ detect-indent@4.0.0
│ │ │ │ └─┬ repeating@2.0.1
│ │ │ │   └─┬ is-finite@1.0.2
│ │ │ │     └── number-is-nan@1.0.1
│ │ │ ├── jsesc@1.3.0
│ │ │ └── trim-right@1.0.1
│ │ ├── babel-helpers@6.24.1
│ │ ├── babel-messages@6.23.0
│ │ ├─┬ babel-register@6.26.0
│ │ │ ├── core-js@2.5.3
│ │ │ ├─┬ home-or-tmp@2.0.0
│ │ │ │ ├── os-homedir@1.0.2
│ │ │ │ └── os-tmpdir@1.0.2
│ │ │ └── source-map-support@0.4.18
│ │ ├─┬ babel-runtime@6.26.0
│ │ │ └── regenerator-runtime@0.11.1
│ │ ├── babel-template@6.26.0
│ │ ├─┬ babel-traverse@6.26.0
│ │ │ ├── globals@9.18.0
│ │ │ └─┬ invariant@2.2.3
│ │ │   └── loose-envify@1.3.1
│ │ ├─┬ babel-types@6.26.0
│ │ │ └── to-fast-properties@1.0.3
│ │ ├── babylon@6.18.0
│ │ ├── convert-source-map@1.5.1
│ │ ├── json5@0.5.1
│ │ ├── private@0.1.8
│ │ └── source-map@0.5.7
│ ├─┬ babel-plugin-istanbul@4.1.5
│ │ ├─┬ find-up@2.1.0
│ │ │ └─┬ locate-path@2.0.0
│ │ │   ├─┬ p-locate@2.0.0
│ │ │   │ └─┬ p-limit@1.2.0
│ │ │   │   └── p-try@1.0.0
│ │ │   └── path-exists@3.0.0
│ │ └─┬ test-exclude@4.2.1
│ │   ├── arrify@1.0.1
│ │   ├─┬ micromatch@3.1.9
│ │   │ ├── arr-diff@4.0.0
│ │   │ ├── array-unique@0.3.2
│ │   │ ├─┬ braces@2.3.1
│ │   │ │ ├── define-property@1.0.0
│ │   │ │ ├── extend-shallow@2.0.1
│ │   │ │ ├─┬ fill-range@4.0.0
│ │   │ │ │ ├── extend-shallow@2.0.1
│ │   │ │ │ ├─┬ is-number@3.0.0
│ │   │ │ │ │ └── kind-of@3.2.2
│ │   │ │ │ └─┬ to-regex-range@2.1.1
│ │   │ │ │   └── is-number@3.0.0
│ │   │ │ ├── isobject@3.0.1
│ │   │ │ ├─┬ snapdragon-node@2.1.1
│ │   │ │ │ ├── define-property@1.0.0
│ │   │ │ │ ├── isobject@3.0.1
│ │   │ │ │ └── snapdragon-util@3.0.1
│ │   │ │ └── split-string@3.1.0
│ │   │ ├─┬ define-property@2.0.2
│ │   │ │ ├─┬ is-descriptor@1.0.2
│ │   │ │ │ ├─┬ is-accessor-descriptor@1.0.0
│ │   │ │ │ │ └── kind-of@6.0.2
│ │   │ │ │ ├─┬ is-data-descriptor@1.0.0
│ │   │ │ │ │ └── kind-of@6.0.2
│ │   │ │ │ └── kind-of@6.0.2
│ │   │ │ └── isobject@3.0.1
│ │   │ ├─┬ extend-shallow@3.0.2
│ │   │ │ ├── assign-symbols@1.0.0
│ │   │ │ └─┬ is-extendable@1.0.1
│ │   │ │   └─┬ is-plain-object@2.0.4
│ │   │ │     └── isobject@3.0.1
│ │   │ ├─┬ extglob@2.0.4
│ │   │ │ ├── define-property@1.0.0
│ │   │ │ ├─┬ expand-brackets@2.1.4
│ │   │ │ │ ├─┬ define-property@0.2.5
│ │   │ │ │ │ └─┬ is-descriptor@0.1.6
│ │   │ │ │ │   ├─┬ is-accessor-descriptor@0.1.6
│ │   │ │ │ │   │ └── kind-of@3.2.2
│ │   │ │ │ │   ├─┬ is-data-descriptor@0.1.4
│ │   │ │ │ │   │ └── kind-of@3.2.2
│ │   │ │ │ │   └── kind-of@5.1.0
│ │   │ │ │ ├── extend-shallow@2.0.1
│ │   │ │ │ └── posix-character-classes@0.1.1
│ │   │ │ └── extend-shallow@2.0.1
│ │   │ ├─┬ fragment-cache@0.2.1
│ │   │ │ └── map-cache@0.2.2
│ │   │ ├── kind-of@6.0.2
│ │   │ ├─┬ nanomatch@1.2.9
│ │   │ │ ├── arr-diff@4.0.0
│ │   │ │ ├── array-unique@0.3.2
│ │   │ │ ├─┬ is-odd@2.0.0
│ │   │ │ │ └── is-number@4.0.0
│ │   │ │ ├── is-windows@1.0.2
│ │   │ │ └── kind-of@6.0.2
│ │   │ ├─┬ object.pick@1.3.0
│ │   │ │ └── isobject@3.0.1
│ │   │ ├─┬ regex-not@1.0.2
│ │   │ │ └─┬ safe-regex@1.1.0
│ │   │ │   └── ret@0.1.15
│ │   │ ├─┬ snapdragon@0.8.1
│ │   │ │ ├─┬ base@0.11.2
│ │   │ │ │ ├─┬ cache-base@1.0.1
│ │   │ │ │ │ ├─┬ collection-visit@1.0.0
│ │   │ │ │ │ │ ├── map-visit@1.0.0
│ │   │ │ │ │ │ └─┬ object-visit@1.0.1
│ │   │ │ │ │ │   └── isobject@3.0.1
│ │   │ │ │ │ ├── get-value@2.0.6
│ │   │ │ │ │ ├─┬ has-value@1.0.0
│ │   │ │ │ │ │ ├─┬ has-values@1.0.0
│ │   │ │ │ │ │ │ ├─┬ is-number@3.0.0
│ │   │ │ │ │ │ │ │ └── kind-of@3.2.2
│ │   │ │ │ │ │ │ └── kind-of@4.0.0
│ │   │ │ │ │ │ └── isobject@3.0.1
│ │   │ │ │ │ ├── isobject@3.0.1
│ │   │ │ │ │ ├─┬ set-value@2.0.0
│ │   │ │ │ │ │ └── extend-shallow@2.0.1
│ │   │ │ │ │ ├── to-object-path@0.3.0
│ │   │ │ │ │ ├─┬ union-value@1.0.0
│ │   │ │ │ │ │ └─┬ set-value@0.4.3
│ │   │ │ │ │ │   └── extend-shallow@2.0.1
│ │   │ │ │ │ └─┬ unset-value@1.0.0
│ │   │ │ │ │   ├─┬ has-value@0.3.1
│ │   │ │ │ │   │ ├── has-values@0.1.4
│ │   │ │ │ │   │ └── isobject@2.1.0
│ │   │ │ │ │   └── isobject@3.0.1
│ │   │ │ │ ├─┬ class-utils@0.3.6
│ │   │ │ │ │ ├── arr-union@3.1.0
│ │   │ │ │ │ ├─┬ define-property@0.2.5
│ │   │ │ │ │ │ └─┬ is-descriptor@0.1.6
│ │   │ │ │ │ │   ├─┬ is-accessor-descriptor@0.1.6
│ │   │ │ │ │ │   │ └── kind-of@3.2.2
│ │   │ │ │ │ │   ├─┬ is-data-descriptor@0.1.4
│ │   │ │ │ │ │   │ └── kind-of@3.2.2
│ │   │ │ │ │ │   └── kind-of@5.1.0
│ │   │ │ │ │ ├── isobject@3.0.1
│ │   │ │ │ │ └─┬ static-extend@0.1.2
│ │   │ │ │ │   ├─┬ define-property@0.2.5
│ │   │ │ │ │   │ └─┬ is-descriptor@0.1.6
│ │   │ │ │ │   │   ├─┬ is-accessor-descriptor@0.1.6
│ │   │ │ │ │   │   │ └── kind-of@3.2.2
│ │   │ │ │ │   │   ├─┬ is-data-descriptor@0.1.4
│ │   │ │ │ │   │   │ └── kind-of@3.2.2
│ │   │ │ │ │   │   └── kind-of@5.1.0
│ │   │ │ │ │   └─┬ object-copy@0.1.0
│ │   │ │ │ │     ├── copy-descriptor@0.1.1
│ │   │ │ │ │     └─┬ define-property@0.2.5
│ │   │ │ │ │       └─┬ is-descriptor@0.1.6
│ │   │ │ │ │         ├── is-accessor-descriptor@0.1.6
│ │   │ │ │ │         ├── is-data-descriptor@0.1.4
│ │   │ │ │ │         └── kind-of@5.1.0
│ │   │ │ │ ├── define-property@1.0.0
│ │   │ │ │ ├── isobject@3.0.1
│ │   │ │ │ ├─┬ mixin-deep@1.3.1
│ │   │ │ │ │ └── is-extendable@1.0.1
│ │   │ │ │ └── pascalcase@0.1.1
│ │   │ │ ├─┬ define-property@0.2.5
│ │   │ │ │ └─┬ is-descriptor@0.1.6
│ │   │ │ │   ├─┬ is-accessor-descriptor@0.1.6
│ │   │ │ │   │ └── kind-of@3.2.2
│ │   │ │ │   ├─┬ is-data-descriptor@0.1.4
│ │   │ │ │   │ └── kind-of@3.2.2
│ │   │ │ │   └── kind-of@5.1.0
│ │   │ │ ├── extend-shallow@2.0.1
│ │   │ │ ├─┬ source-map-resolve@0.5.1
│ │   │ │ │ ├── atob@2.0.3
│ │   │ │ │ ├── decode-uri-component@0.2.0
│ │   │ │ │ ├── resolve-url@0.2.1
│ │   │ │ │ ├── source-map-url@0.4.0
│ │   │ │ │ └── urix@0.1.0
│ │   │ │ └─┬ use@2.0.2
│ │   │ │   ├─┬ define-property@0.2.5
│ │   │ │   │ └─┬ is-descriptor@0.1.6
│ │   │ │   │   ├─┬ is-accessor-descriptor@0.1.6
│ │   │ │   │   │ └── kind-of@3.2.2
│ │   │ │   │   ├─┬ is-data-descriptor@0.1.4
│ │   │ │   │   │ └── kind-of@3.2.2
│ │   │ │   │   └── kind-of@5.1.0
│ │   │ │   ├── isobject@3.0.1
│ │   │ │   └─┬ lazy-cache@2.0.2
│ │   │ │     └── set-getter@0.1.0
│ │   │ └── to-regex@3.0.2
│ │   ├── object-assign@4.1.1
│ │   └─┬ read-pkg-up@1.0.1
│ │     ├─┬ find-up@1.1.2
│ │     │ ├── path-exists@2.1.0
│ │     │ └─┬ pinkie-promise@2.0.1
│ │     │   └── pinkie@2.0.4
│ │     └─┬ read-pkg@1.1.0
│ │       ├─┬ load-json-file@1.1.0
│ │       │ ├─┬ parse-json@2.2.0
│ │       │ │ └─┬ error-ex@1.3.1
│ │       │ │   └── is-arrayish@0.2.1
│ │       │ └── pify@2.3.0
│ │       ├─┬ normalize-package-data@2.4.0
│ │       │ ├── hosted-git-info@2.6.0
│ │       │ └─┬ validate-npm-package-license@3.0.3
│ │       │   ├─┬ spdx-correct@3.0.0
│ │       │   │ └── spdx-license-ids@3.0.0
│ │       │   └─┬ spdx-expression-parse@3.0.0
│ │       │     └── spdx-exceptions@2.1.0
│ │       └── path-type@1.1.0
│ ├─┬ babel-plugin-transform-es2015-modules-commonjs@6.26.0
│ │ └── babel-plugin-transform-strict-mode@6.24.1
│ ├─┬ babel-preset-jest@21.2.0
│ │ ├── babel-plugin-jest-hoist@21.2.0
│ │ └── babel-plugin-syntax-object-rest-spread@6.13.0
│ ├─┬ cpx@1.5.0
│ │ ├── duplexer@0.1.1
│ │ ├─┬ glob2base@0.0.12
│ │ │ └── find-index@0.1.1
│ │ ├─┬ shell-quote@1.6.1
│ │ │ ├── array-filter@0.0.1
│ │ │ ├── array-map@0.0.0
│ │ │ ├── array-reduce@0.0.0
│ │ │ └── jsonify@0.0.0
│ │ └─┬ subarg@1.0.0
│ │   └── minimist@1.2.0
│ ├─┬ fs-extra@4.0.3
│ │ ├── jsonfile@4.0.0
│ │ └── universalify@0.1.1
│ ├─┬ jest-config@21.2.1
│ │ ├─┬ chalk@2.3.2
│ │ │ ├── ansi-styles@3.2.1
│ │ │ └─┬ supports-color@5.3.0
│ │ │   └── has-flag@3.0.0
│ │ ├─┬ jest-environment-jsdom@21.2.1
│ │ │ ├── jest-mock@21.2.0
│ │ │ └─┬ jsdom@9.12.0
│ │ │   ├── acorn@4.0.13
│ │ │   ├── acorn-globals@3.1.0
│ │ │   ├── parse5@1.5.1
│ │ │   ├─┬ whatwg-url@4.8.0
│ │ │   │ ├── tr46@0.0.3
│ │ │   │ └── webidl-conversions@3.0.1
│ │ │   └── xml-name-validator@2.0.1
│ │ ├── jest-environment-node@21.2.1
│ │ ├── jest-get-type@21.2.0
│ │ ├─┬ jest-jasmine2@21.2.1
│ │ │ ├── expect@21.2.1
│ │ │ ├── jest-diff@21.2.1
│ │ │ ├── jest-matcher-utils@21.2.1
│ │ │ ├── jest-message-util@21.2.1
│ │ │ ├── jest-snapshot@21.2.1
│ │ │ └── p-cancelable@0.3.0
│ │ ├── jest-regex-util@21.2.0
│ │ ├─┬ jest-resolve@21.2.0
│ │ │ ├── browser-resolve@1.11.2
│ │ │ └── is-builtin-module@1.0.0
│ │ ├── jest-util@21.2.1
│ │ ├── jest-validate@21.2.1
│ │ └─┬ pretty-format@21.2.1
│ │   └── ansi-regex@3.0.0
│ ├── pkg-dir@2.0.0
│ ├─┬ source-map-support@0.5.3
│ │ └── source-map@0.6.1
│ └─┬ yargs@10.1.2
│   ├─┬ cliui@4.0.0
│   │ ├─┬ strip-ansi@4.0.0
│   │ │ └── ansi-regex@3.0.0
│   │ └─┬ wrap-ansi@2.1.0
│   │   ├─┬ string-width@1.0.2
│   │   │ ├── code-point-at@1.1.0
│   │   │ └── is-fullwidth-code-point@1.0.0
│   │   └─┬ strip-ansi@3.0.1
│   │     └── ansi-regex@2.1.1
│   ├── decamelize@1.2.0
│   ├── get-caller-file@1.0.2
│   ├─┬ os-locale@2.1.0
│   │ ├─┬ execa@0.7.0
│   │ │ ├─┬ cross-spawn@5.1.0
│   │ │ │ ├─┬ lru-cache@4.1.2
│   │ │ │ │ ├── pseudomap@1.0.2
│   │ │ │ │ └── yallist@2.1.2
│   │ │ │ └─┬ shebang-command@1.2.0
│   │ │ │   └── shebang-regex@1.0.0
│   │ │ ├── get-stream@3.0.0
│   │ │ ├── is-stream@1.1.0
│   │ │ ├─┬ npm-run-path@2.0.2
│   │ │ │ └── path-key@2.0.1
│   │ │ ├── p-finally@1.0.0
│   │ │ └── strip-eof@1.0.0
│   │ ├─┬ lcid@1.0.0
│   │ │ └── invert-kv@1.0.0
│   │ └─┬ mem@1.1.0
│   │   └── mimic-fn@1.2.0
│   ├── require-directory@2.1.1
│   ├── require-main-filename@1.0.1
│   ├── set-blocking@2.0.0
│   ├─┬ string-width@2.1.1
│   │ ├── is-fullwidth-code-point@2.0.0
│   │ └─┬ strip-ansi@4.0.0
│   │   └── ansi-regex@3.0.0
│   ├── which-module@2.0.0
│   ├── y18n@3.2.1
│   └─┬ yargs-parser@8.1.0
│     └── camelcase@4.1.0
├─┬ tslint@5.8.0
│ ├─┬ babel-code-frame@6.26.0
│ │ ├─┬ chalk@1.1.3
│ │ │ ├── ansi-styles@2.2.1
│ │ │ ├─┬ has-ansi@2.0.0
│ │ │ │ └── ansi-regex@2.1.1
│ │ │ ├── strip-ansi@3.0.1
│ │ │ └── supports-color@2.0.0
│ │ ├── esutils@2.0.2
│ │ └── js-tokens@3.0.2
│ ├── builtin-modules@1.1.1
│ ├─┬ chalk@2.3.2
│ │ ├─┬ ansi-styles@3.2.1
│ │ │ └─┬ color-convert@1.9.1
│ │ │   └── color-name@1.1.3
│ │ └─┬ supports-color@5.3.0
│ │   └── has-flag@3.0.0
│ ├── commander@2.15.0
│ ├── diff@3.5.0
│ ├─┬ resolve@1.5.0
│ │ └── path-parse@1.0.5
│ ├── tslib@1.9.0
│ └── tsutils@2.22.2
├── typescript@2.6.2
└── tz-lookup@6.1.3

Also, i'm still on npm v4.2.0 so there is no package lock etc. I think @dazip is right, since Jest is pulling 1.3.0 of istanbul-reports coverage has been broken.

@obchap
Copy link

obchap commented Mar 10, 2018

@bcoe suggestion worked for me. I initially just updated the package.json to get the latest version of jest and that's when I got the error listed by the OP. I uninstalled and then reinstalled jest and it worked. Thanks @bcoe.

@felangel
Copy link
Author

felangel commented Mar 10, 2018

It worked for me as well now. Not sure what was going on before...thanks!

@SimenB
Copy link
Member

SimenB commented Mar 10, 2018

PR welcome to bump Jests dependencies to make sure we get the correct versions

@bambielli
Copy link
Contributor

bambielli commented Mar 12, 2018

I am running in to this issue as well. Upgrading to the latest version of jest does not appear to help.

        Failed to write coverage reports:
        ERROR: TypeError: metrics.isEmpty is not a function
        STACK: TypeError: metrics.isEmpty is not a function
    at tableRow (/node_modules/istanbul-reports/lib/text/index.js:133:27)
    at TextReport.onSummary (/node_modules/istanbul-reports/lib/text/index.js:188:15)
    at TextReport.onDetail (/node_modules/istanbul-reports/lib/text/index.js:193:17)
    at Visitor.(anonymous function) [as onDetail] (/node_modules/istanbul-lib-report/lib/tree.js:34:30)
    at ReportNode.Node.visit (/node_modules/istanbul-lib-report/lib/tree.js:123:17)
    at /node_modules/istanbul-lib-report/lib/tree.js:116:23
    at Array.forEach (<anonymous>)
    at visitChildren (/node_modules/istanbul-lib-report/lib/tree.js:115:32)
    at ReportNode.Node.visit (/node_modules/istanbul-lib-report/lib/tree.js:126:5)

@SimenB
Copy link
Member

SimenB commented Mar 12, 2018

try yarn remove jest && yarn add --dev jest (or npm equivalent) to amke sure all of Jest's dependencies are updated as well

@bambielli
Copy link
Contributor

^got it working. I forgot my lockfile updated as well when I did the upgrade.
I also ran an npm clear cache just to be sure newer versions were not cached as well.
thanks!

@benjamincharity
Copy link

FWIW, I had to manually delete my yarn.lock file to get this working. Much thanks to others in this thread that pointed me in the correct direction 🙏 .. I was banging my head around for a while.


Things tried with no luck (in no particular order):

  • manually remove the yarn cache file from my machine
  • tell yarn to clean up the cache
  • manually lock istanbul deps to earlier versions
  • remove node_modules and reinstall
  • bump jest back down to 22.4.0

@stevenzeck
Copy link

If you're using only npm (not yarn), delete node_modules and package-lock.json and run npm install again.

maoberlehner added a commit to maoberlehner/vuex-map-fields that referenced this issue Mar 14, 2018
kirlat pushed a commit to alpheios-project/data-models that referenced this issue Mar 22, 2018
…kage.lock to fix an issue with Jest metrics reporting (see jestjs/jest#5772).
kmjennison added a commit to gladly-team/tab that referenced this issue Mar 26, 2018
Fixes “metrics.isEmpty is not a function” when running Jest code coverage. Make sure Jest dependencies are up to date:
jestjs/jest#5772 (comment)
lquixada added a commit to lquixada/boggle that referenced this issue Apr 9, 2018
@mjesun
Copy link
Contributor

mjesun commented Apr 11, 2018

@SimenB, Could we force somehow the upgrade of istanbul by tweaking package.json, instead of the yarn remove + yarn add? 😄 We just got hit by that with alpha.5r. 🙃

@SimenB
Copy link
Member

SimenB commented Apr 11, 2018

For sure, it's just a matter of applying this:

diff --git i/packages/jest-cli/package.json w/packages/jest-cli/package.json
index 3e4bfd85..bebedaea 100644
--- i/packages/jest-cli/package.json
+++ w/packages/jest-cli/package.json
@@ -12,9 +12,9 @@
     "import-local": "^1.0.0",
     "is-ci": "^1.0.10",
     "istanbul-api": "^1.3.1",
-    "istanbul-lib-coverage": "^1.1.1",
-    "istanbul-lib-instrument": "^1.8.0",
-    "istanbul-lib-source-maps": "^1.2.1",
+    "istanbul-lib-coverage": "^1.2.0",
+    "istanbul-lib-instrument": "^1.10.1",
+    "istanbul-lib-source-maps": "^1.2.3",
     "jest-changed-files": "^22.2.0",
     "jest-config": "^22.4.2",
     "jest-environment-jsdom": "^22.4.1",
diff --git i/packages/jest-runtime/package.json w/packages/jest-runtime/package.json
index 6ab876ad..c4cb00c4 100644
--- i/packages/jest-runtime/package.json
+++ w/packages/jest-runtime/package.json
@@ -9,7 +9,7 @@
   "main": "build/index.js",
   "dependencies": {
     "babel-core": "^6.0.0",
-    "babel-plugin-istanbul": "^4.1.5",
+    "babel-plugin-istanbul": "^4.1.6",
     "chalk": "^2.0.1",
     "convert-source-map": "^1.4.0",
     "exit": "^0.1.2",

Not sure which of them matters, but that should be enough to bump things up enough.

@mjesun
Copy link
Contributor

mjesun commented Apr 11, 2018

I'm open to apply them all 🤪

@SimenB
Copy link
Member

SimenB commented Apr 11, 2018

istanbul-lib-coverage is the one we care about, in theory, but doesn't hurt to bump'em all.

@mjesun
Copy link
Contributor

mjesun commented Apr 11, 2018

Ok! Will do the PR in a min, thanks @SimenB!

bryfox added a commit to complexdatacollective/Server that referenced this issue Apr 12, 2018
Had to do this sooner or later: done() signature changed; any argument
will be treated as a failure.

Note: coverage broken until we/they update istanbul-coverage
(jestjs/jest#5772)
bryfox added a commit to complexdatacollective/Server that referenced this issue Apr 12, 2018
Can remove from package.json pending
jestjs/jest#5772
bryfox added a commit to complexdatacollective/Server that referenced this issue Apr 13, 2018
Had to do this sooner or later: done() signature changed; any argument
will be treated as a failure.

Note: coverage broken until we/they update istanbul-coverage
(jestjs/jest#5772)
bryfox added a commit to complexdatacollective/Server that referenced this issue Apr 13, 2018
Can remove from package.json pending
jestjs/jest#5772
bryfox added a commit to complexdatacollective/Server that referenced this issue Apr 13, 2018
Had to do this sooner or later: done() signature changed; any argument
will be treated as a failure.

Note: coverage broken until we/they update istanbul-coverage
(jestjs/jest#5772)
bryfox added a commit to complexdatacollective/Server that referenced this issue Apr 13, 2018
Can remove from package.json pending
jestjs/jest#5772
bryfox added a commit to complexdatacollective/Server that referenced this issue Apr 13, 2018
Had to do this sooner or later: done() signature changed; any argument
will be treated as a failure.

Note: coverage broken until we/they update istanbul-coverage
(jestjs/jest#5772)
bryfox added a commit to complexdatacollective/Server that referenced this issue Apr 13, 2018
Can remove from package.json pending
jestjs/jest#5772
JMPerez added a commit to JMPerez/spotify-web-api-js that referenced this issue Apr 17, 2018
JMPerez added a commit to JMPerez/spotify-web-api-js that referenced this issue Apr 17, 2018
cloughney pushed a commit to cloughney/spotify-web-api-js that referenced this issue Apr 17, 2018
maoberlehner pushed a commit to maoberlehner/css-node-extract that referenced this issue Apr 23, 2018
@slawiko
Copy link

slawiko commented Apr 28, 2018

When can we see the release with this fix? Or it's released? I didn't find this fix in CHANGELOG.md

@rickhanlonii
Copy link
Member

@slawiko this should be in jest@23.0.0-beta.2

@SimenB
Copy link
Member

SimenB commented Apr 29, 2018

And you don't need jest to bump the version, as they are within semver range. Just update your own lockfile

@slawiko
Copy link

slawiko commented Apr 30, 2018

@SimenB didn't understand: I have "jest": "^22.4.3", "jest-cli": "^22.4.3" in my package.json. How can semver help me to get jest@23.0.0-beta.2? I don't want to "jest": "*" :)

@SimenB
Copy link
Member

SimenB commented May 1, 2018

You don't need the jest beta, you need istanbul-lib-coverage@1.2.0 and istanbul-lib-instrument@1.10.1, which are within semver range of at least Jest 21 and Jest 22.

kirlat pushed a commit to alpheios-project/alpheios-core that referenced this issue Feb 4, 2020
…kage.lock to fix an issue with Jest metrics reporting (see jestjs/jest#5772).
jthrilly pushed a commit to complexdatacollective/Server that referenced this issue Jul 24, 2020
Had to do this sooner or later: done() signature changed; any argument
will be treated as a failure.

Note: coverage broken until we/they update istanbul-coverage
(jestjs/jest#5772)
jthrilly pushed a commit to complexdatacollective/Server that referenced this issue Jul 24, 2020
Can remove from package.json pending
jestjs/jest#5772
@github-actions
Copy link

This issue has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs.
Please note this issue tracker is not a help forum. We recommend using StackOverflow or our discord channel for questions.

@github-actions github-actions bot locked as resolved and limited conversation to collaborators May 12, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests