diff --git a/packages/snapshot/src/env/node.ts b/packages/snapshot/src/env/node.ts index b5429b47a885..57231cfe011a 100644 --- a/packages/snapshot/src/env/node.ts +++ b/packages/snapshot/src/env/node.ts @@ -1,8 +1,10 @@ import { existsSync, promises as fs } from 'node:fs' import { basename, dirname, isAbsolute, join, resolve } from 'pathe' -import type { SnapshotEnvironment } from '../types' +import type { SnapshotEnvironment, SnapshotEnvironmentOptions } from '../types' export class NodeSnapshotEnvironment implements SnapshotEnvironment { + constructor(private options: SnapshotEnvironmentOptions = {}) {} + getVersion(): string { return '1' } @@ -21,7 +23,7 @@ export class NodeSnapshotEnvironment implements SnapshotEnvironment { return join( join( dirname(filepath), - '__snapshots__', + this.options.snapshotsDirName ?? '__snapshots__', ), `${basename(filepath)}.snap`, ) diff --git a/packages/snapshot/src/types/environment.ts b/packages/snapshot/src/types/environment.ts index 450274fb7c14..57776314fb5d 100644 --- a/packages/snapshot/src/types/environment.ts +++ b/packages/snapshot/src/types/environment.ts @@ -7,3 +7,7 @@ export interface SnapshotEnvironment { readSnapshotFile(filepath: string): Promise removeSnapshotFile(filepath: string): Promise } + +export interface SnapshotEnvironmentOptions { + snapshotsDirName?: string +} diff --git a/packages/snapshot/src/types/index.ts b/packages/snapshot/src/types/index.ts index 53e3480410e2..ff4f100e76f2 100644 --- a/packages/snapshot/src/types/index.ts +++ b/packages/snapshot/src/types/index.ts @@ -1,8 +1,8 @@ import type { OptionsReceived as PrettyFormatOptions } from 'pretty-format' import type { RawSnapshotInfo } from '../port/rawSnapshot' -import type { SnapshotEnvironment } from './environment' +import type { SnapshotEnvironment, SnapshotEnvironmentOptions } from './environment' -export type { SnapshotEnvironment } +export type { SnapshotEnvironment, SnapshotEnvironmentOptions } export type SnapshotData = Record export type SnapshotUpdateState = 'all' | 'new' | 'none'