jestjs/jest

[Bug]: it.each doesn't support BigInt, complaining "TypeError: Do not know how to serialize a BigInt"

Open

#12827 opened on May 9, 2022

View on GitHub
 (4 comments) (2 reactions) (0 assignees)TypeScript (45,361 stars) (6,653 forks)batch import
:bug: BugHelp WantedPinned

Description

Version

28.0.2

Steps to reproduce

Following test will end up with an error (see section "Action Behaviour"), no matter the matcher is passed or failed.

describe("error", () => {
  it.each([
    [1n, 2n, 3n]
  ])("test", (a, b, c) => {
    expect(a + b).toBe(c);
  });
});

Also, Jest prints out such error whenever a test is failed (without it.each).

describe("error", () => {
    it("print annoying message when a test failed.", () => { 
        expect(1n + 3n).toBe(10n);
    });
});

But oddly, if you write matcher outside it(...) functions, Jest will not print out the error message - it will print out messages of failed tests:

describe("write matcher outside it(...)", () => {
    expect(1n + 3n).toBe(10n);
});
  ● Test suite failed to run

    expect(received).toBe(expected) // Object.is equality

    Expected: 10n
    Received: 4n

      12 |
      13 | describe("write matcher outside it(...)", () => {
    > 14 |     expect(1n + 3n).toBe(10n);
         |                     ^
      15 | });

      at toBe (chapter.16-greedy-algorithm/exercises/__tests__/16.2-7.js:14:21)
      at describe (chapter.16-greedy-algorithm/exercises/__tests__/16.2-7.js:13:1)

Expected behaviour

This error should not shows up.

Actual behavior

Complained that:

  ● Test suite failed to run

    TypeError: Do not know how to serialize a BigInt
        at stringify (<anonymous>)

      at messageParent (node_modules/jest-worker/build/workers/messageParent.js:33:19)

Additional context

No response

Environment

System:
    OS: Windows 10 10.0.19042
    CPU: (4) x64 Intel(R) Core(TM) i5-7200U CPU @ 2.50GHz
  Binaries:
    Node: 16.14.2 - C:\Program Files\nodejs\node.EXE
    Yarn: 1.13.0 - C:\Program Files (x86)\Yarn\bin\yarn.CMD
    npm: 8.5.0 - C:\Program Files\nodejs\npm.CMD
  npmPackages:
    jest: ^28.0.2 => 28.0.2

Contributor guide