import {promises as fs} from 'node:fs';import path from 'node:path';import test from '@ava/test';import {cwd, fixture} from '../helpers/exec.js';import {withTemporaryFixture} from '../helpers/with-temporary-fixture.js';import {beforeAndAfter} from './helpers/macros.js';test.serial('First run generates a .snap and a .md', async t => {await withTemporaryFixture(cwd('first-run'), async cwd => {const env = {AVA_FORCE_CI: 'not-ci',};await fixture([], {cwd, env});const [, report] = await Promise.all([t.notThrowsAsync(fs.access(path.join(cwd, 'test.js.snap'))),fs.readFile(path.join(cwd, 'test.js.md'), 'utf8'),]);t.snapshot(report, 'snapshot report');});});test.serial('Adding more snapshots to a test adds them to the .snap and .md',beforeAndAfter,{cwd: cwd('adding-snapshots'),expectChanged: true,},);test.serial('Adding a test with snapshots adds them to the .snap and .md',beforeAndAfter,{cwd: cwd('adding-test'),expectChanged: true,},);test.serial('Changing a test\'s title adds a new block, puts the old block at the end',beforeAndAfter,{cwd: cwd('changing-title'),expectChanged: true,},);test.serial('Adding skipped snapshots followed by unskipped snapshots records blanks',beforeAndAfter,{cwd: cwd('adding-skipped-snapshots'),expectChanged: true,},);test.serial('Filling in blanks doesn\'t require --update-snapshots',beforeAndAfter,{cwd: cwd('filling-in-blanks'),expectChanged: true,},);