Skip to content

annotate(.., { body: string }) expects string pre-encoded with base64 on UI and HTML report #9633

@hi-ogawa

Description

@hi-ogawa

Describe the bug

With following tests:

import { test } from 'vitest';

test('raw string', async ({ annotate }) => {
  await annotate('hello-bad', {
    body: 'hello',
    contentType: 'text/markdown',
  });
});

test('pre-encoded string', async ({ annotate }) => {
  await annotate('hello-good', {
    body: btoa('hello'),
    contentType: 'text/markdown',
  });
});

the annotation downloads button works only for the 2nd one where the body is wrapped with btoa.

The test case is also added in #9632

Reproduction

https://stackblitz.com/edit/vitest-dev-vitest-77ywggo2?file=test%2Frepro.test.ts

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: 20.19.1 - /usr/local/bin/node
    Yarn: 1.22.19 - /usr/local/bin/yarn
    npm: 10.8.2 - /usr/local/bin/npm
    pnpm: 8.15.6 - /usr/local/bin/pnpm
  npmPackages:
    @vitest/ui: beta => 4.1.0-beta.3 
    vite: latest => 7.3.1 
    vitest: beta => 4.1.0-beta.3

Used Package Manager

npm

Validations

Metadata

Metadata

Assignees

No one assigned

    Type

    Projects

    Status

    P2 - 3

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions