Giter Site home page Giter Site logo

jest-environment-jsdom-global's People

Contributors

belco90 avatar connormiha avatar danielbayerlein avatar dependabot[bot] avatar ngyikp avatar rufman avatar simon360 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

jest-environment-jsdom-global's Issues

JSDOM not available in tests

For some reason, jsdom isn't defined when I run my tests with this environment. Per the documentation, I used global.jsdom instead, and then it says global.jsdom is undefined.

I'm trying to use jsdom.reconfigure to change the URL in one of my tests.

Tag release 1.0.2

Version 1.0.2 is live on npm, but the commits never made it into GitHub. Put the commit and tag in the correct place in the commit history.

(These are sitting on my laptop at home. Will take care of this as soon as I'm back post-holidays)

Error: Not implemented: navigation (except hash changes)

I receive the following error when running my tests:

Error: Not implemented: navigation (except hash changes)
at module.exports (...\node_modules\jsdom\lib\jsdom\browser\not-implemented.js:9:17)
at navigateFetch (...\node_modules\jsdom\lib\jsdom\living\window\navigation.js:74:3)
at exports.navigate (...\node_modules\jsdom\lib\jsdom\living\window\navigation.js:52:3)
at LocationImpl._locationObjectNavigate (...\node_modules\jsdom\lib\jsdom\living\window\Location-impl.js:29:5)
at LocationImpl._locationObjectSetterNavigate (...\node_modules\jsdom\lib\jsdom\living\window\Location-impl.js:23:17)
at LocationImpl.set pathname [as pathname] (...\node_modules\jsdom\lib\jsdom\living\window\Location-impl.js:151:10)
at Location.set [as pathname] (...\node_modules\jsdom\lib\jsdom\living\generated\Location.js:293:31)
at Object.it (...\src\services\sub-services\supported-browser-service\test\supported-browser-service.spec.js:52:38)
at Object.asyncJestTest (...\node_modules\jest-jasmine2\build\jasmine_async.js:108:37)
at resolve (...\node_modules\jest-jasmine2\build\queue_runner.js:56:12) undefined

I've tried the following two methods of dynamically updating my URL but I still receive the error:

global.jsdom.reconfigure({
    url: `https://www.${hostname}`
});

and

jsdom.reconfigure({
    url: `https://www.${hostname}`
});

The tests still pass for some reason, just curious if this is something I should be concerned about?

NOTE:

Here are my dependencies in package.json:

{
...
    ,
    "dependencies": {
        "axios": "0.18.0",
        "bowser": "2.0.0-beta.3",
        "classnames": "2.2.6",
        "dashjs": "2.9.2",
        "get-countries-info": "1.2.1",
        "lodash": "4.17.11",
        "moment": "2.22.2",
        "nuka-carousel": "4.3.5",
        "prop-types": "15.6.2",
        "querystringify": "2.0.0",
        "rc-slider": "8.6.3",
        "react": "16.5.2",
        "react-custom-scrollbars": "4.2.1",
        "react-dom": "16.5.2",
        "react-icons-kit": "1.1.7",
        "react-image-fallback": "8.0.0",
        "react-lottie": "1.2.3",
        "react-markdown": "3.6.0",
        "react-player-controls": "0.5.21",
        "react-redux": "5.0.7",
        "react-router-dom": "4.3.1",
        "react-select": "2.0.0",
        "react-toastify": "3.4.3",
        "redux": "4.0.1",
        "redux-promise": "0.6.0",
        "redux-thunk": "2.3.0",
        "validator": "10.7.1"
    },
    "devDependencies": {
        "autoprefixer": "9.1.5",
        "babel-core": "6.26.3",
        "babel-eslint": "9.0.0",
        "babel-jest": "23.6.0",
        "babel-loader": "7.1.2",
        "babel-preset-react-app": "3.1.2",
        "babel-runtime": "6.26.0",
        "case-sensitive-paths-webpack-plugin": "2.1.2",
        "chalk": "2.4.1",
        "css-loader": "1.0.0",
        "dotenv": "6.0.0",
        "dotenv-expand": "4.2.0",
        "enzyme": "3.7.0",
        "enzyme-adapter-react-16": "1.6.0",
        "enzyme-matchers": "6.0.4",
        "eslint": "4.19.1",
        "eslint-config-prettier": "3.0.1",
        "eslint-config-react-app": "2.1.0",
        "eslint-loader": "2.1.1",
        "eslint-plugin-flowtype": "2.50.0",
        "eslint-plugin-import": "2.14.0",
        "eslint-plugin-jest": "21.25.1",
        "eslint-plugin-jsx-a11y": "6.1.1",
        "eslint-plugin-prettier": "3.0.0",
        "eslint-plugin-react": "7.11.1",
        "extract-text-webpack-plugin": "3.0.2",
        "file-loader": "2.0.0",
        "fs-extra": "7.0.0",
        "generate-react-code": "1.3.0",
        "html-webpack-plugin": "3.2.0",
        "husky": "0.14.3",
        "jest": "23.6.0",
        "jest-environment-jsdom": "23.4.0",
        "jest-environment-jsdom-global": "1.1.0",
        "jest-enzyme": "7.0.0",
        "jest-localstorage-mock": "2.2.0",
        "jest-mock-console": "0.4.0",
        "lint-staged": "7.3.0",
        "moxios": "0.4.0",
        "node-sass-chokidar": "1.3.3",
        "npm-run-all": "4.1.3",
        "object-assign": "4.1.1",
        "postcss-flexbugs-fixes": "4.1.0",
        "postcss-loader": "3.0.0",
        "prettier": "1.14.3",
        "promise": "8.0.2",
        "raf": "3.4.0",
        "react-dev-utils": "5.0.2",
        "react-redux-mock": "0.2.2",
        "redux-devtools-extension": "2.13.5",
        "redux-logger": "3.0.6",
        "resolve": "1.8.1",
        "style-loader": "0.23.0",
        "sw-precache-webpack-plugin": "0.11.5",
        "url-loader": "1.1.1",
        "webpack": "3.12.0",
        "webpack-dev-server": "2.11.3",
        "webpack-manifest-plugin": "2.0.3",
        "whatwg-fetch": "2.0.4"
    },
    ....
}

Here is my jest-setup.json file:

{
    "collectCoverageFrom": ["**/*.js"],
    "setupFiles": ["<rootDir>/config/polyfills.js", "jest-localstorage-mock"],
    "setupTestFrameworkScriptFile": "<rootDir>/jest-setup/setup-tests.js",
    "testMatch": ["<rootDir>/src/**/?(*.)(spec|test).{js,jsx,mjs}"],
    "testEnvironment": "jest-environment-jsdom-global",
    "testURL": "http://localhost",
    "transform": {
        "^.+\\.(js|jsx|mjs)$": "<rootDir>/node_modules/babel-jest",
        "^.+\\.css$": "<rootDir>/config/jest/css-transform.js",
        "^(?!.*\\.(js|jsx|mjs|css|json)$)": "<rootDir>/config/jest/file-transform.js"
    },
    "transformIgnorePatterns": ["[/\\\\]node_modules[/\\\\].+\\.(js|jsx|mjs)$"],
    "moduleFileExtensions": ["web.js", "js", "json", "web.jsx", "jsx", "node", "mjs"],
    "coverageThreshold": {
        "global": {
            "statements": 99,
            "branches": 99,
            "functions": 99,
            "lines": 99
        }
    }
}

TypeError: _jestEnvironmentJsdomGlobal.default.reconfigure is not a function

I've tried:

import * as jsdom from 'jest-environment-jsdom-global';

and

import jsdom from 'jest-environment-jsdom-global';

Code Excerpt:

import * as isActive from './activity-functions';
import jsdom from 'jest-environment-jsdom-global';

describe('activity functions', () => {
  it('verifies that the navbar is always active', () => {
    jsdom.reconfigure({
      url: "https://localhost/navbar",
    });
......

Package.json

    ....
    "jest": "^25.2.7",
    "jest-cli": "^25.2.7",
    "jest-environment-jsdom": "^26.1.0",
    "jest-environment-jsdom-global": "^2.0.4",
    "lint-staged": "^10.2.7",
    "prettier": "^2.0.5",
     ...

Jest Config

  "jest": {
    "testEnvironment": "jest-environment-jsdom-global",
    "coverageReporters": [
      "text",
      "text-summary"
    ]
  }

Error:

activity functions › verifies that the navbar is always active

    TypeError: _jestEnvironmentJsdomGlobal.default.reconfigure is not a function

      4 | describe('activity functions', () => {
      5 |   it('verifies that the navbar is always active', () => {
    > 6 |     jsdom.reconfigure({
        |           ^

Version 2.0.4 has bad behavior with version 27 of jest-environment-jsdom

This week, I upgraded jest-environment-jsdom from 26.6.2 to 27.0.3 and I'm now seeing some issues that I believe are related to this package. If I run multiple test files at once, everything is fine, but if I run a single test file, then there's a crash in this package:

  ● Test suite failed to run

    evalmachine.<anonymous>:1
    AggregateError
    ^

    ReferenceError: AggregateError is not defined

      at evalmachine.<anonymous>:1:1
      at setupWindow (node_modules/jsdom/lib/jsdom/browser/Window.js:111:55)
      at new Window (node_modules/jsdom/lib/jsdom/browser/Window.js:223:3)
      at exports.createWindow (node_modules/jsdom/lib/jsdom/browser/Window.js:95:10)
      at new JSDOM (node_modules/jsdom/lib/api.js:36:20)
      at new JSDOMEnvironmentGlobal (node_modules/jest-environment-jsdom-global/environment.js:12:5)

I think issue #46 is related.

Cannot find name 'jsdom'

hello simon

In my project jest-environment-jsdom-global can run normally,
But jslint will prompt me 'Cannot find name 'jsdom'

my tslint version is "^5.10.0",should i ignore this waring?

Can I use this to mock localStorage?

I am trying to use this to mock localStorage:

const localStorage = {
  getItem: jest.fn().mockReturnValue(JSON.stringify({
    BUILD_DATE: DATE
  }))
};

jsdom.reconfigure({
  localStorage
});

However it doesn't appear to work. Is mocking localStorage with jest-environment-jsdom-global possible?

Object.defineProperty , work around for href writable

Documentation of this repo talk about setting the URL at a specific value, can we also talk about what is the work around for

Object.defineProperty(window.location, 'href', {
        writable: true
      });

Few more examples related to general use cases will be very helpful for folks upgrading to Jest 22 and running into JSDOM 11 issues

Release 1.0.3

There's an updated README that should be made available on the npm page and package.

Can't take care of this until #2 is taken care of.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.