Next Popular Module

    jest-location-mock
    TypeScript icon, indicating that this package has built-in type declarations

    1.0.9 • Public • Published
    Jest Location Mock icon

    Jest Location Mock

    Jest hooks for JSDOM location mock

    npm version check status license: MIT

    Description

    Ever gotten the following error when using window.location.assign, reload, or replace?

    Error: Not implemented: navigation (except hash changes)
    

    This Jest plugin fixes this error and mocks out window.location so it behaves similar to how does in the browser.

    Features

    • Mock and control window.location
    • Relative URL support
    • TypeScript extend expect support

    Installation

    npm install --save-dev jest-location-mock

    Usage

    To start using Jest Location Mock, extend expect and add hooks by importing the default export in your jest setup file.

    Setup

    jest.config.js

    module.exports = {
        setupFilesAfterEnv: [
            "./config/jest-setup.js"
        ]
    };

    config/jest-setup.js

    // Mock `window.location` with Jest spies and extend expect
    import "jest-location-mock";

    Matchers

    expect(location).toBeAt(url, [base])

    Throws: When the URLs have a different absolute href.

    Parameter Type Description
    location Location | URL Instance of URL to check its href
    url string | URL Relative or absolute URL
    base string | URL If the url parameter is relative, an base URL for the URL constructor
    it("should call assign with a relative url", () => {
        window.location.assign("/relative-url");
        expect(window.location).not.toBeAt("/");
        expect(window.location).toBeAt("/relative-url");
    });

    License

    Copyright Evelyn Hathaway, MIT License

    Install

    npm i jest-location-mock

    DownloadsWeekly Downloads

    42,229

    Version

    1.0.9

    License

    MIT

    Unpacked Size

    13.2 kB

    Total Files

    26

    Last publish

    Collaborators

    • evelynhathaway