Skip to content

test.each does not print -0 and -NaN correctly #5744

@arv

Description

@arv

Describe the bug

When using test.each the descriptive text for -0 and -NaN is printed as 0 and NaN.

Reproduction

https://stackblitz.com/edit/vitest-dev-vitest-gkmdyn?file=test%2Fbasic.test.ts

import { test, expect } from 'vitest';

test.each([[0], [-0], [NaN], [-NaN], [Infinity], [-Infinity]] as const)(
  '%f',
  (n) => {
    expect(n).toBe(n);
  }
);

The terminal output from this is:

 ✓ test/basic.test.ts (6)
   ✓ 0
   ✓ 0
   ✓ NaN
   ✓ NaN
   ✓ Infinity
   ✓ -Infinity

the expected output is:

 ✓ test/basic.test.ts (6)
   ✓ 0
   ✓ -0
   ✓ NaN
   ✓ -NaN
   ✓ Infinity
   ✓ -Infinity

System Info

System:
    OS: Linux 5.0 undefined
    CPU: (8) x64 Intel(R) Core(TM) i9-9880H CPU @ 2.30GHz
    Memory: 0 Bytes / 0 Bytes
    Shell: 1.0 - /bin/jsh
  Binaries:
    Node: 18.18.0 - /usr/local/bin/node
    Yarn: 1.22.19 - /usr/local/bin/yarn
    npm: 10.2.3 - /usr/local/bin/npm
    pnpm: 8.15.6 - /usr/local/bin/pnpm
  npmPackages:
    @vitest/ui: latest => 1.6.0 
    vite: latest => 5.2.11 
    vitest: latest => 1.6.0

Used Package Manager

npm

Validations

Metadata

Metadata

Assignees

No one assigned

    Labels

    p2-edge-caseBug, but has workaround or limited in scope (priority)

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions