Skip to content

toMatchMarkdownTableFile ​

Asserts that tabular data matches a Markdown file snapshot. The value is serialized to a Markdown table and compared to a stored validation file.

Usage ​

Array-Based Rows ​

Use Table.define to define the actual Markdown table:

ts
import { Table } from "@cronn/vitest-file-snapshots";

test("matches Markdown table", () => {
  expect(
    Table.define({
      columns: ["input", "output"],
      rows: [
        ["input 1", "output 1"],
        ["input 2", "output 2"],
      ],
    }),
  ).toMatchMarkdownTableFile();
});

Output:

matches_Markdown_table.md
md
| input   | output   |
| ------- | -------- |
| input 1 | output 1 |
| input 2 | output 2 |

Record-Based Rows ​

Use Table.fromRecords to define the actual Markdown table by an array of records:

ts
import { Table } from "@cronn/vitest-file-snapshots";

test("matches Markdown table from records", () => {
  expect(
    Table.fromRecords([
      { input: "input 1", output: "output 1" },
      { input: "input 2", output: "output 2" },
    ]),
  ).toMatchMarkdownTableFile();
});

Output:

matches_Markdown_table_from_records.md
md
| input   | output   |
| ------- | -------- |
| input 1 | output 1 |
| input 2 | output 2 |

The columns are derived from the keys while the rows are derived from the values.

Options ​

OptionDefault ValueDescription
nameundefinedUnique name of the file snapshot. Used to distinguish multiple file snapshots within the same test. See Named Snapshots.
normalizers[]Custom normalizers to apply before serialization. See Normalization of Snapshots.
resolveFilePathresolveNameAsFileCustom resolver for the file path used to store snapshots. See File Path Resolvers.