mirror of
https://github.com/logos-messaging/logos-delivery-js.git
synced 2026-03-13 05:03:40 +00:00
48 lines
940 B
TypeScript
48 lines
940 B
TypeScript
import { Browser, chromium, Page } from "@playwright/test";
|
|
|
|
// Global variable to store the browser and page
|
|
let browser: Browser | undefined;
|
|
let page: Page | undefined;
|
|
|
|
/**
|
|
* Initialize browser and load headless page
|
|
*/
|
|
export async function initBrowser(): Promise<void> {
|
|
browser = await chromium.launch({
|
|
headless: true
|
|
});
|
|
|
|
if (!browser) {
|
|
throw new Error("Failed to initialize browser");
|
|
}
|
|
|
|
page = await browser.newPage();
|
|
|
|
await page.goto("http://localhost:8080");
|
|
}
|
|
|
|
/**
|
|
* Get the current page instance
|
|
*/
|
|
export function getPage(): Page | undefined {
|
|
return page;
|
|
}
|
|
|
|
/**
|
|
* Set the page instance (for use by server.ts)
|
|
*/
|
|
export function setPage(pageInstance: Page | undefined): void {
|
|
page = pageInstance;
|
|
}
|
|
|
|
/**
|
|
* Closes the browser instance
|
|
*/
|
|
export async function closeBrowser(): Promise<void> {
|
|
if (browser) {
|
|
await browser.close();
|
|
browser = undefined;
|
|
page = undefined;
|
|
}
|
|
}
|