Have ideas to improve npm?Join in the discussion! »

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

    1.0.1 • Public • Published

    jest-partial

    All Contributors

    Partial Matcher for Jest Expect

    animation of jest-partial matcher

    jest-partial asserts that the provided object is a subset of the expected. We don't always want to verify the entire object that has been given. We often just want to protect the properties that we need, and ignore everything else.

    Installation

    With npm:

    npm install --save-dev jest-partial

    With yarn:

    yarn add -D jest-partial

    Setup

    Jest >v24

    Add jest-partial to your Jest setupFilesAfterEnv configuration. See for help

    "jest"{
      "setupFilesAfterEnv": ["jest-partial"]
    }

    Jest <v23

    "jest"{
      "setupTestFrameworkScriptFile": "jest-partial"
    }

    If you are already using another test framework, like jest-chain, then you should create a test setup file and require each of the frameworks you are using.

    For example:

    // ./testSetup.js
    require('jest-partial');
    require('jest-chain');
    require('any other test framework libraries you are using');

    Then in your Jest config:

    "jest"{
      "setupTestFrameworkScriptFile": "./testSetup.js"
    }

    Typescript

    If your editor does not recognise the custom jest-partial matchers, add a global.d.ts file to your project with:

    import 'jest-partial';

    API

    The examples below use the following data object:

    const kitchen = {
      version: '1',
      floor: {
        material: 'wood',
        color: 'walnut',
      },
      drawers: [
        {
          contents: [
            { type: 'spoon', count: 4 },
            { type: 'fork', count: 2 },
          ],
        },
      ],
    };

    .toMatchPartial(object)

    case: Our kitchen has multiple drawers, and we just want to know that there is at least one drawer that contains spoons.

    expect(kitchen).toMatchPartial({
      drawers: [
        {
          contents: [{ type: 'spoon' }],
        },
      ],
    });

    case: Our kitchen has multiple drawers, and we want to know that there is a drawer that holds 2 forks.

    expect(kitchen).toMatchPartial({
      drawers: [
        {
          contents: [{ type: 'fork', count: 2 }],
        },
      ],
    });

    case: Our kitchen has multiple drawers, and we want to know that there is a drawer that holds forks and spoons.

    expect(kitchen).toMatchPartial({
      drawers: [
        {
          contents: [{ type: 'fork' }, { type: 'spoon' }],
        },
      ],
    });

    Contributors ✨

    Thanks goes to these wonderful people (emoji key):


    Stephan Meijer

    🤔 💻 🚇 🚧

    This project follows the all-contributors specification. Contributions of any kind welcome!

    Install

    npm i jest-partial

    DownloadsWeekly Downloads

    3

    Version

    1.0.1

    License

    MIT

    Unpacked Size

    871 kB

    Total Files

    7

    Last publish

    Collaborators

    • avatar