TestConfigSchema: ZodObject<
{
version: ZodString;
testDir: ZodString;
outputDir: ZodDefault<ZodString>;
baseURL: ZodOptional<ZodString>;
retries: ZodDefault<ZodNumber>;
timeout: ZodDefault<ZodNumber>;
workers: ZodDefault<ZodNumber>;
shards: ZodDefault<ZodNumber>;
reporters: ZodOptional<ZodArray<ZodString, "many">>;
browsers: ZodDefault<
ZodArray<ZodEnum<["chromium", "firefox", "webkit"]>, "many">,
>;
headers: ZodOptional<ZodRecord<ZodString, ZodString>>;
flakyThreshold: ZodDefault<ZodNumber>;
isolateFlaky: ZodDefault<ZodBoolean>;
traces: ZodOptional<
ZodObject<
{
enabled: ZodDefault<ZodBoolean>;
mode: ZodDefault<
ZodEnum<["off", "on", "retain-on-failure", "on-first-retry"]>,
>;
screenshots: ZodDefault<ZodBoolean>;
snapshots: ZodDefault<ZodBoolean>;
sources: ZodDefault<ZodBoolean>;
attachments: ZodDefault<ZodBoolean>;
outputDir: ZodOptional<ZodString>;
},
"strip",
ZodTypeAny,
{
enabled: boolean;
mode: "off"
| "on"
| "retain-on-failure"
| "on-first-retry";
screenshots: boolean;
snapshots: boolean;
sources: boolean;
attachments: boolean;
outputDir?: string;
},
{
enabled?: boolean;
mode?: "off"
| "on"
| "retain-on-failure"
| "on-first-retry";
screenshots?: boolean;
snapshots?: boolean;
sources?: boolean;
attachments?: boolean;
outputDir?: string;
},
>,
>;
artifacts: ZodOptional<
ZodObject<
{
enabled: ZodDefault<ZodBoolean>;
screenshots: ZodDefault<ZodEnum<["off", "on", "only-on-failure"]>>;
videos: ZodDefault<
ZodEnum<["off", "on", "retain-on-failure", "on-first-retry"]>,
>;
downloads: ZodOptional<ZodBoolean>;
outputDir: ZodOptional<ZodString>;
maxFileSize: ZodOptional<ZodNumber>;
},
"strip",
ZodTypeAny,
{
enabled: boolean;
screenshots: "off"
| "on"
| "only-on-failure";
videos: "off" | "on" | "retain-on-failure" | "on-first-retry";
downloads?: boolean;
outputDir?: string;
maxFileSize?: number;
},
{
enabled?: boolean;
screenshots?: "off"
| "on"
| "only-on-failure";
videos?: "off" | "on" | "retain-on-failure" | "on-first-retry";
downloads?: boolean;
outputDir?: string;
maxFileSize?: number;
},
>,
>;
visualTesting: ZodOptional<
ZodObject<
{
enabled: ZodDefault<ZodBoolean>;
threshold: ZodDefault<ZodNumber>;
maxDiffPixelRatio: ZodDefault<ZodNumber>;
maxDiffPixels: ZodDefault<ZodNumber>;
updateSnapshots: ZodDefault<ZodBoolean>;
compareWith: ZodOptional<ZodString>;
outputDir: ZodOptional<ZodString>;
},
"strip",
ZodTypeAny,
{
enabled: boolean;
threshold: number;
maxDiffPixelRatio: number;
maxDiffPixels: number;
updateSnapshots: boolean;
compareWith?: string;
outputDir?: string;
},
{
enabled?: boolean;
threshold?: number;
maxDiffPixelRatio?: number;
maxDiffPixels?: number;
updateSnapshots?: boolean;
compareWith?: string;
outputDir?: string;
},
>,
>;
annotations: ZodOptional<
ZodObject<
{
enabled: ZodDefault<ZodBoolean>;
respectSkip: ZodDefault<ZodBoolean>;
respectOnly: ZodDefault<ZodBoolean>;
respectFail: ZodDefault<ZodBoolean>;
respectSlow: ZodDefault<ZodBoolean>;
respectFixme: ZodDefault<ZodBoolean>;
customAnnotations: ZodOptional<
ZodRecord<
ZodString,
ZodObject<
{ action: ZodEnum<[(...), (...), (...), (...)]> },
"strip",
ZodTypeAny,
{ action: "skip" | "fail" | "slow" | "mark" },
{ action: "skip" | "fail" | "slow" | "mark" },
>,
>,
>;
},
"strip",
ZodTypeAny,
{
enabled: boolean;
respectSkip: boolean;
respectOnly: boolean;
respectFail: boolean;
respectSlow: boolean;
respectFixme: boolean;
customAnnotations?: Record<
string,
{ action: "skip"
| "fail"
| "slow"
| "mark" },
>;
},
{
enabled?: boolean;
respectSkip?: boolean;
respectOnly?: boolean;
respectFail?: boolean;
respectSlow?: boolean;
respectFixme?: boolean;
customAnnotations?: Record<
string,
{ action: "skip"
| "fail"
| "slow"
| "mark" },
>;
},
>,
>;
tags: ZodOptional<
ZodObject<
{
enabled: ZodDefault<ZodBoolean>;
include: ZodOptional<ZodArray<ZodString, "many">>;
exclude: ZodOptional<ZodArray<ZodString, "many">>;
require: ZodOptional<ZodArray<ZodString, "many">>;
},
"strip",
ZodTypeAny,
{
enabled: boolean;
include?: string[];
exclude?: string[];
require?: string[];
},
{
enabled?: boolean;
include?: string[];
exclude?: string[];
require?: string[];
},
>,
>;
htmlReport: ZodDefault<ZodBoolean>;
htmlReportDir: ZodOptional<ZodString>;
testMatch: ZodOptional<ZodArray<ZodString, "many">>;
testIgnore: ZodOptional<ZodArray<ZodString, "many">>;
ignoreDirs: ZodDefault<ZodArray<ZodString, "many">>;
quarantine: ZodOptional<
ZodObject<
{
enabled: ZodDefault<ZodBoolean>;
threshold: ZodDefault<ZodNumber>;
autoQuarantine: ZodDefault<ZodBoolean>;
},
"strip",
ZodTypeAny,
{ enabled: boolean; threshold: number; autoQuarantine: boolean },
{ enabled?: boolean; threshold?: number; autoQuarantine?: boolean },
>,
>;
},
"strip",
ZodTypeAny,
{
version: string;
testDir: string;
outputDir: string;
baseURL?: string;
retries: number;
timeout: number;
workers: number;
shards: number;
reporters?: string[];
browsers: ("chromium" | "firefox" | "webkit")[];
headers?: Record<string, string>;
flakyThreshold: number;
isolateFlaky: boolean;
traces?: {
enabled: boolean;
mode: "off" | "on" | "retain-on-failure" | "on-first-retry";
screenshots: boolean;
snapshots: boolean;
sources: boolean;
attachments: boolean;
outputDir?: string;
};
artifacts?: {
enabled: boolean;
screenshots: "off"
| "on"
| "only-on-failure";
videos: "off" | "on" | "retain-on-failure" | "on-first-retry";
downloads?: boolean;
outputDir?: string;
maxFileSize?: number;
};
visualTesting?: {
enabled: boolean;
threshold: number;
maxDiffPixelRatio: number;
maxDiffPixels: number;
updateSnapshots: boolean;
compareWith?: string;
outputDir?: string;
};
annotations?: {
enabled: boolean;
respectSkip: boolean;
respectOnly: boolean;
respectFail: boolean;
respectSlow: boolean;
respectFixme: boolean;
customAnnotations?: Record<
string,
{ action: "skip"
| "fail"
| "slow"
| "mark" },
>;
};
tags?: {
enabled: boolean;
include?: string[];
exclude?: string[];
require?: string[];
};
htmlReport: boolean;
htmlReportDir?: string;
testMatch?: string[];
testIgnore?: string[];
ignoreDirs: string[];
quarantine?: {
enabled: boolean;
threshold: number;
autoQuarantine: boolean;
};
},
{
version: string;
testDir: string;
outputDir?: string;
baseURL?: string;
retries?: number;
timeout?: number;
workers?: number;
shards?: number;
reporters?: string[];
browsers?: ("chromium" | "firefox" | "webkit")[];
headers?: Record<string, string>;
flakyThreshold?: number;
isolateFlaky?: boolean;
traces?: {
enabled?: boolean;
mode?: "off" | "on" | "retain-on-failure" | "on-first-retry";
screenshots?: boolean;
snapshots?: boolean;
sources?: boolean;
attachments?: boolean;
outputDir?: string;
};
artifacts?: {
enabled?: boolean;
screenshots?: "off"
| "on"
| "only-on-failure";
videos?: "off" | "on" | "retain-on-failure" | "on-first-retry";
downloads?: boolean;
outputDir?: string;
maxFileSize?: number;
};
visualTesting?: {
enabled?: boolean;
threshold?: number;
maxDiffPixelRatio?: number;
maxDiffPixels?: number;
updateSnapshots?: boolean;
compareWith?: string;
outputDir?: string;
};
annotations?: {
enabled?: boolean;
respectSkip?: boolean;
respectOnly?: boolean;
respectFail?: boolean;
respectSlow?: boolean;
respectFixme?: boolean;
customAnnotations?: Record<
string,
{ action: "skip"
| "fail"
| "slow"
| "mark" },
>;
};
tags?: {
enabled?: boolean;
include?: string[];
exclude?: string[];
require?: string[];
};
htmlReport?: boolean;
htmlReportDir?: string;
testMatch?: string[];
testIgnore?: string[];
ignoreDirs?: string[];
quarantine?: {
enabled?: boolean;
threshold?: number;
autoQuarantine?: boolean;
};
},
> = ...