Initial Commit
This commit is contained in:
@@ -0,0 +1,66 @@
|
||||
import { describe, expect, it } from "@suaveplan/testing/runner";
|
||||
import { TEST_VITE_CODES, TestViteError } from "../error-codes/error-codes.js";
|
||||
import { createVitestBrowserConfig } from "./vitest-browser-config.js";
|
||||
|
||||
describe("createVitestBrowserConfig", () => {
|
||||
it("works with no arguments", { timeout: 5000 }, () => {
|
||||
const config = createVitestBrowserConfig();
|
||||
expect(config.test?.fileParallelism).toBe(false);
|
||||
});
|
||||
|
||||
it("accepts a custom provider override", { timeout: 5000 }, () => {
|
||||
const provider = { name: "custom" };
|
||||
const config = createVitestBrowserConfig({ provider });
|
||||
const browser = config.test?.browser as { provider?: unknown };
|
||||
expect(browser.provider).toBe(provider);
|
||||
});
|
||||
|
||||
it("defaults to chromium headless with fileParallelism off", {
|
||||
timeout: 5000,
|
||||
}, () => {
|
||||
const config = createVitestBrowserConfig({});
|
||||
const browser = config.test?.browser as {
|
||||
provider?: { name?: string };
|
||||
headless?: boolean;
|
||||
instances?: Array<{ browser: string }>;
|
||||
};
|
||||
expect(browser.provider?.name).toBe("playwright");
|
||||
expect(browser.headless).toBe(true);
|
||||
expect(browser.instances?.[0]?.browser).toBe("chromium");
|
||||
expect(config.test?.fileParallelism).toBe(false);
|
||||
});
|
||||
|
||||
it("accepts multi-browser matrix", { timeout: 5000 }, () => {
|
||||
const config = createVitestBrowserConfig({
|
||||
browsers: ["chromium", "firefox", "webkit"],
|
||||
headless: false,
|
||||
setupFiles: ["./setup.ts"],
|
||||
include: ["custom/**/*.test.ts"],
|
||||
});
|
||||
const browser = config.test?.browser as {
|
||||
instances?: Array<{ browser: string }>;
|
||||
headless?: boolean;
|
||||
};
|
||||
expect(browser.instances?.map((entry) => entry.browser)).toEqual([
|
||||
"chromium",
|
||||
"firefox",
|
||||
"webkit",
|
||||
]);
|
||||
expect(browser.headless).toBe(false);
|
||||
expect(config.test?.setupFiles).toEqual(["./setup.ts"]);
|
||||
expect(config.test?.include).toEqual(["custom/**/*.test.ts"]);
|
||||
});
|
||||
|
||||
it("throws INVALID_OPTIONS on empty browsers", { timeout: 5000 }, () => {
|
||||
let captured: unknown;
|
||||
try {
|
||||
createVitestBrowserConfig({ browsers: [] });
|
||||
} catch (err) {
|
||||
captured = err;
|
||||
}
|
||||
expect(captured).toBeInstanceOf(TestViteError);
|
||||
expect((captured as TestViteError).code).toBe(
|
||||
TEST_VITE_CODES.INVALID_OPTIONS
|
||||
);
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user