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