jest icon indicating copy to clipboard operation
jest copied to clipboard

[Bug]: Custom snapshot serializer not used when reporting error diffs

Open danfuzz opened this issue 1 year ago • 14 comments

Version

29.7.0

Steps to reproduce

  1. Unpack this tarball: 2024-danfuzz-jest-demo.tar.gz
  2. npm install
  3. npm test

Expected behavior

I expect to see the custom serializer used when displaying the diffs between the expected and received values in the second test case (test('fails, thereby demonstrating the problem', ...)). In this case it should probably look like this:

    - Expected  - 2
    + Received  + 2

      new SomeClass(
    -   "zorch",
    -   "florp")
    +   "foo",
    +   "bar")

Actual behavior

The custom serializer is ignored. The salient part of the reported error looks like this, which is unfortunately not very helpful:

    Expected: {}
    Received: serializes to the same string

Additional context

I tried adding the custom serializer both via the config file (snapshotSerializers) and using expect.addSnapshotSerializer() in the test file. Neither seems to work.

The first test in example.test.js is there to demonstrate that the serializer is indeed hooked up.

In case it's useful, here's the example tarball in base64-encoded form:

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
+0nNn8gu1ZrV6qGkfxISEhJvHP8BDZDuIgBUAAA=

Environment

System:
    OS: macOS 14.7.1
    CPU: (8) arm64 Apple M1
  Binaries:
    Node: 23.2.0 - /opt/homebrew/bin/node
    Yarn: 1.22.22 - /opt/homebrew/bin/yarn
    npm: 10.9.0 - /opt/homebrew/bin/npm
  npmPackages:
    jest: ^29.7.0 => 29.7.0

danfuzz avatar Nov 22 '24 18:11 danfuzz

This issue is stale because it has been open 30 days with no activity. Remove stale label or comment or this will be closed in 30 days.

github-actions[bot] avatar Dec 22 '24 19:12 github-actions[bot]

Hi! Commenting to keep this open. I believe it's worth addressing.

danfuzz avatar Dec 24 '24 06:12 danfuzz

This issue is stale because it has been open 30 days with no activity. Remove stale label or comment or this will be closed in 30 days.

github-actions[bot] avatar Jan 23 '25 07:01 github-actions[bot]

Hi! Commenting to keep this open. I believe it's worth addressing.

danfuzz avatar Jan 23 '25 14:01 danfuzz

This issue is stale because it has been open 30 days with no activity. Remove stale label or comment or this will be closed in 30 days.

github-actions[bot] avatar Feb 22 '25 16:02 github-actions[bot]

Hi! Commenting to keep this open. I believe it's worth addressing.

danfuzz avatar Feb 24 '25 14:02 danfuzz

This issue is stale because it has been open 30 days with no activity. Remove stale label or comment or this will be closed in 30 days.

github-actions[bot] avatar Mar 26 '25 15:03 github-actions[bot]

Hi! Commenting to keep this open. I believe it's worth addressing.

danfuzz avatar Mar 26 '25 15:03 danfuzz

This issue is stale because it has been open 30 days with no activity. Remove stale label or comment or this will be closed in 30 days.

github-actions[bot] avatar Apr 25 '25 17:04 github-actions[bot]

Hi! Commenting to keep this open. I believe it's worth addressing.

danfuzz avatar Apr 27 '25 22:04 danfuzz

This issue is stale because it has been open 30 days with no activity. Remove stale label or comment or this will be closed in 30 days.

github-actions[bot] avatar May 27 '25 23:05 github-actions[bot]

Hi! Commenting to keep this open. I believe it's worth addressing.

danfuzz avatar May 28 '25 02:05 danfuzz

Please send a PR.

cpojer avatar May 28 '25 06:05 cpojer

@cpojer I'm glad to find out a PR would even be considered by the project.

I'd like to request that the issue get formally triaged by someone with that authority.

danfuzz avatar May 28 '25 14:05 danfuzz

This issue is stale because it has been open 30 days with no activity. Remove stale label or comment or this will be closed in 30 days.

github-actions[bot] avatar Jun 27 '25 15:06 github-actions[bot]

Hi! Commenting to keep this open. I believe it's worth addressing. @cpojer suggested I write a PR, which I might be able to do (I've looked at the code enough to have at least some sense of how it works), but I'm definitely not going to give it a go until/unless this issue actually gets triaged.

Thanks for your collective consideration, and thanks to the folks who work on the project for all you've done.

danfuzz avatar Jun 28 '25 17:06 danfuzz

This issue is stale because it has been open 30 days with no activity. Remove stale label or comment or this will be closed in 30 days.

github-actions[bot] avatar Jul 28 '25 17:07 github-actions[bot]

Hi! Commenting to keep this open. I believe it's worth addressing.

danfuzz avatar Jul 28 '25 17:07 danfuzz

This issue is stale because it has been open 30 days with no activity. Remove stale label or comment or this will be closed in 30 days.

github-actions[bot] avatar Aug 27 '25 19:08 github-actions[bot]

This issue was closed because it has been stalled for 30 days with no activity. Please open a new issue if the issue is still relevant, linking to this one.

github-actions[bot] avatar Sep 26 '25 19:09 github-actions[bot]

This issue was closed because it has been stalled for 30 days with no activity. Please open a new issue if the issue is still relevant, linking to this one.

github-actions[bot] avatar Sep 26 '25 19:09 github-actions[bot]

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.

github-actions[bot] avatar Oct 27 '25 00:10 github-actions[bot]