import { curryImportPath } from "../utils/import-path.js"; import { formatWithPrettier } from "../utils/prettier.js"; export async function testTemplate( action_name: string, new_file_fullpath: string ) { const rel = curryImportPath(new_file_fullpath); const content = `import { withProdApp } from "${rel( "src/back/test_utils/with-prod-app.js" )}"; import { ${action_name}URL } from "${rel("src/back/routes/urls.js")}"; import { getBrowser } from "${rel("src/back/test_utils/browser-creator.js")}"; import type { Browser, BrowserContext, Page } from "@playwright/test"; describe("${action_name}", () => { let page: Page; let browser: Browser; let context: BrowserContext; beforeEach(async () => { browser = await getBrowser(); context = await browser.newContext(); page = await context.newPage(); }); afterEach(async () => { await context.close(); }); it( "doesn't crash", async function () { return withProdApp(async ({ rest_api }) => { await rest_api.get(${action_name}URL); }); } ) it( "works as expected", async function () { return withProdApp(async ({ base_url }) => { await page.goto(base_url + ${action_name}URL); }); } ) }); `; return formatWithPrettier(content); }