vitest-plugin-vis
Version:
Vitest visual testing plugin
32 lines (30 loc) • 977 B
text/typescript
import type { Plugin } from 'vitest/config'
import { commands } from '../server/commands/commands.ts'
import { setVisOption } from '../server/vis_options.ts'
import { NAME } from '../shared/constants.ts'
import type { ComparisonMethod } from '../shared/types.ts'
import type { VisOptions } from './types.ts'
/**
* Create a Vite plugin for visual testing.
*
* If options are not provided, the plugin will use the default options,
* which enables the `auto` preset.
*/
export function vis<M extends ComparisonMethod = 'pixel'>(options: VisOptions<M> = { preset: 'auto' } as any) {
return {
name: NAME,
config(this: unknown, userConfig) {
setVisOption(userConfig, options)
const preset = options?.preset
return {
test: {
browser: {
name: undefined,
commands: commands as any,
},
setupFiles: preset && preset !== 'none' && preset !== 'custom' ? [`vitest-plugin-vis/presets/${preset}`] : [],
},
}
},
} satisfies Plugin
}