jestjs / jest

Delightful JavaScript Testing.
https://jestjs.io
MIT License
44.21k stars 6.46k forks source link

Jest failing requiring and mocking external libraries #310

Closed jfalameda closed 8 years ago

jfalameda commented 9 years ago

Hi,

When running the jest command, it will fail loading and mocking external libraries. It seems it interpret those as regular javascript files on the project.

For example immutable:

gridModelUnitTest.js: public/javascripts/shared/tve/models/gridModel.js: Cannot find module 'immutable' from 'public/javascripts/shared/tve/models'

dontMock or adding it on "unmockedModulePathPatterns" on package.json won't help.

Using node 0.10.32. OSX. Jest version v0.4.0.

Full stack-trace:

Error: /Users/josefa/projects/applicationName/apps/frontend/tests/unit/jest/tve/models/gridModelUnitTest.js: public/javascripts/shared/tve/models/gridModel.js: Cannot find module 'immutable' from 'public/javascripts/shared/tve/models'
  at Function.module.exports [as sync] (/Users/josefa/projects/applicationName/apps/frontend/node_modules/jest-cli/node_modules/resolve/lib/sync.js:32:11)
  at Loader._nodeModuleNameToPath (/Users/josefa/projects/applicationName/apps/frontend/node_modules/jest-cli/src/HasteModuleLoader/HasteModuleLoader.js:497:22)
  at Loader._moduleNameToPath (/Users/josefa/projects/applicationName/apps/frontend/node_modules/jest-cli/src/HasteModuleLoader/HasteModuleLoader.js:471:19)
  at Loader._getNormalizedModuleID (/Users/josefa/projects/applicationName/apps/frontend/node_modules/jest-cli/src/HasteModuleLoader/HasteModuleLoader.js:358:31)
  at Loader._shouldMock (/Users/josefa/projects/applicationName/apps/frontend/node_modules/jest-cli/src/HasteModuleLoader/HasteModuleLoader.js:566:23)
  at Loader.requireModuleOrMock (/Users/josefa/projects/applicationName/apps/frontend/node_modules/jest-cli/src/HasteModuleLoader/HasteModuleLoader.js:934:12)
  at public/javascripts/shared/tve/models/gridModel.js:13:17
  at Object.runContentWithLocalBindings (/Users/josefa/projects/applicationName/apps/frontend/node_modules/jest-cli/src/lib/utils.js:361:17)
  at Loader._execModule (/Users/josefa/projects/applicationName/apps/frontend/node_modules/jest-cli/src/HasteModuleLoader/HasteModuleLoader.js:250:9)
  at Loader.requireModule (/Users/josefa/projects/applicationName/apps/frontend/node_modules/jest-cli/src/HasteModuleLoader/HasteModuleLoader.js:916:12)
  at Loader._generateMock (/Users/josefa/projects/applicationName/apps/frontend/node_modules/jest-cli/src/HasteModuleLoader/HasteModuleLoader.js:281:30)
  at Loader.requireMock (/Users/josefa/projects/applicationName/apps/frontend/node_modules/jest-cli/src/HasteModuleLoader/HasteModuleLoader.js:812:43)
  at Loader.requireModuleOrMock (/Users/josefa/projects/applicationName/apps/frontend/node_modules/jest-cli/src/HasteModuleLoader/HasteModuleLoader.js:935:17)
  at /Users/josefa/projects/applicationName/apps/frontend/tests/unit/jest/tve/models/gridModelUnitTest.js:2:17
  at Object.runContentWithLocalBindings (/Users/josefa/projects/applicationName/apps/frontend/node_modules/jest-cli/src/lib/utils.js:361:17)
  at Loader._execModule (/Users/josefa/projects/applicationName/apps/frontend/node_modules/jest-cli/src/HasteModuleLoader/HasteModuleLoader.js:250:9)
  at Loader.requireModule (/Users/josefa/projects/applicationName/apps/frontend/node_modules/jest-cli/src/HasteModuleLoader/HasteModuleLoader.js:916:12)
  at jasmineTestRunner (/Users/josefa/projects/applicationName/apps/frontend/node_modules/jest-cli/src/jasmineTestRunner/jasmineTestRunner.js:242:16)
  at /Users/josefa/projects/applicationName/apps/frontend/node_modules/jest-cli/src/TestRunner.js:371:12
  at _fulfilled (/Users/josefa/projects/applicationName/apps/frontend/node_modules/q/q.js:798:54)
  at self.promiseDispatch.done (/Users/josefa/projects/applicationName/apps/frontend/node_modules/q/q.js:827:30)
  at Promise.promise.promiseDispatch (/Users/josefa/projects/applicationName/apps/frontend/node_modules/q/q.js:760:13)
  at /Users/josefa/projects/applicationName/apps/frontend/node_modules/q/q.js:574:44
  at flush (/Users/josefa/projects/applicationName/apps/frontend/node_modules/q/q.js:108:17)
  at /Users/josefa/projects/applicationName/apps/frontend/node_modules/jest-cli/src/lib/FakeTimers.js:325:7
srph commented 9 years ago

Do you actually have immutable in your node_modules?

jfalameda commented 9 years ago

Yes, it exists in node_modules.

srph commented 9 years ago

Mind sharing your package.json? Want to see if there is anything anyone should know.

jfalameda commented 9 years ago

Here it comes:

{
  "name": "frontend",
  "version": "1.0.0",
  "private": true,
  "main": "frontendApp.js",
  "scripts": {
    "start": "node frontendApp",
    "postinstall": "make build-client",
    "test": "make test",
    "test-coverage": "istanbul cover _mocha -- tests/unit/ -R spec --recursive",
    "jest": "jest"
  },
  "dependencies": {
    "URIjs": "~1.11.2",
    "async": "~0.2.9",
    "aws-sdk": "~1.18.0",
    "body-parser": "~1.10.1",
    "compress": "~0.99.0",
    "compression": "~1.3.0",
    "consolidate": "~0.10.0",
    "cookie-parser": "~1.3.3",
    "express": "~4.11.1",
    "express-handlebars": "~1.1.0",
    "express-session": "~1.10.1",
    "fastpass": "~0.0.2",
    "flux": "^2.0.1",
    "glob": "~3.1.21",
    "handlebars": "~2.0.0",
    "immutable": "^3.6.2",
    "link-parser": "~2.0.0",
    "lodash": "~1.2.0",
    "moment": "~2.6.0",
    "moment-timezone": "~0.0.1",
    "node-schedule": "~0.1.8",
    "object-assign": "^2.0.0",
    "react": "^0.13.1",
    "react-addons": "^0.9.1-deprecated",
    "request": "~2.27.0",
    "serve-favicon": "~2.2.0",
    "useragent": "~2.0.7"
  },
  "devDependencies": {
    "bower": "^1.3.8",
    "cheerio": "^0.18.0",
    "grunt": "^0.4.0",
    "grunt-browserify": "^3.3.0",
    "grunt-contrib-copy": "^0.7.0",
    "grunt-contrib-clean": "^0.6.0",
    "grunt-contrib-cssmin": "^0.5.0",
    "grunt-contrib-handlebars": "^0.9.2",
    "grunt-contrib-jshint": "^0.10.0",
    "grunt-contrib-sass": "^0.2.2",
    "grunt-contrib-uglify": "^0.8.0",
    "grunt-contrib-watch": "^0.3.1",
    "istanbul": "^0.2.10",
    "jest-cli": "^0.4.0",
    "mocha": "^1.16",
    "node-jsx": "^0.12.4",
    "q": "^0.9.6",
    "react-tools": "^0.12.2",
    "reactify": "^1.0.0",
    "rewire": "^2.1.4",
    "should": "^3.1",
    "sinon": "^1.12.2"
  },
  "jest": {
    "testDirectoryName": "jest",
    "testPathDirs": [
      "tests"
    ],
    "unmockedModulePathPatterns": [
      "<rootDir>/node_modules/react",
      "<rootDir>/node_modules/flux",
      "<rootDir>/node_modules/immutable"
    ]
  }
}
cpojer commented 8 years ago

This should be resolved with 0.9.0 which is being released soon.

github-actions[bot] commented 3 years ago

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.