From ce82fc87c4718deb84c14d9dd274911eb815275d Mon Sep 17 00:00:00 2001 From: Abi Raja Date: Mon, 20 May 2024 15:44:22 -0400 Subject: [PATCH] read fixtures path from env var --- frontend/.gitignore | 4 +-- frontend/src/tests/fixtures/simple_button.png | Bin 0 -> 22092 bytes .../tests/fixtures/simple_ui_with_image.png | Bin 0 -> 35542 bytes frontend/src/tests/qa.test.ts | 29 +++++++++--------- 4 files changed, 16 insertions(+), 17 deletions(-) create mode 100644 frontend/src/tests/fixtures/simple_button.png create mode 100644 frontend/src/tests/fixtures/simple_ui_with_image.png diff --git a/frontend/.gitignore b/frontend/.gitignore index 250cd48..a0d3702 100644 --- a/frontend/.gitignore +++ b/frontend/.gitignore @@ -26,5 +26,5 @@ dist-ssr # Env files .env* -# QA files -qa/**/* +# Test files +src/tests/results/ diff --git a/frontend/src/tests/fixtures/simple_button.png b/frontend/src/tests/fixtures/simple_button.png new file mode 100644 index 0000000000000000000000000000000000000000..e4f776bdb2c94ee0278bda3d0cf8cd8a06bbc6e4 GIT binary patch literal 22092 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 literal 0 HcmV?d00001 diff --git a/frontend/src/tests/fixtures/simple_ui_with_image.png b/frontend/src/tests/fixtures/simple_ui_with_image.png new file mode 100644 index 0000000000000000000000000000000000000000..7533f850ad7358af9f6a1db78b67bc85a95d69a3 GIT binary patch literal 35542 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 literal 0 HcmV?d00001 diff --git a/frontend/src/tests/qa.test.ts b/frontend/src/tests/qa.test.ts index 8fa9972..c05423d 100644 --- a/frontend/src/tests/qa.test.ts +++ b/frontend/src/tests/qa.test.ts @@ -2,11 +2,11 @@ import puppeteer, { Browser, Page, ElementHandle } from "puppeteer"; import { Stack } from "../lib/stacks"; import { CodeGenerationModel } from "../lib/models"; -const REPO_PATH = "/Users/abi/Documents/GitHub/screenshot-to-code/frontend"; -const DOWNLOAD_PATH = `${REPO_PATH}/qa`; -const SCREENSHOTS_PATH = `${REPO_PATH}/qa/results`; -const IMAGE_PATH = DOWNLOAD_PATH + "/simple_button.png"; -const SCREENSHOT_WITH_IMAGES = `${DOWNLOAD_PATH}/simple_ui_with_image.png`; +const TESTS_ROOT_PATH = process.env.TEST_ROOT_PATH; +const RESULTS_DIR = `${TESTS_ROOT_PATH}/results`; +const FIXTURES_PATH = `${TESTS_ROOT_PATH}/fixtures`; +const SIMPLE_SCREENSHOT = FIXTURES_PATH + "/simple_button.png"; +const SCREENSHOT_WITH_IMAGES = `${FIXTURES_PATH}/simple_ui_with_image.png`; describe("e2e tests", () => { let browser: Browser; @@ -30,13 +30,12 @@ describe("e2e tests", () => { await page.setViewport({ width: 1080, height: 1024 }); // TODO: Does this need to be moved? - const client = await page.createCDPSession(); - + // const client = await page.createCDPSession(); // Set download behavior path - await client.send("Page.setDownloadBehavior", { - behavior: "allow", - downloadPath: DOWNLOAD_PATH, - }); + // await client.send("Page.setDownloadBehavior", { + // behavior: "allow", + // downloadPath: DOWNLOAD_PATH, + // }); }); afterAll(async () => { @@ -83,14 +82,14 @@ describe("e2e tests", () => { // Update tests - for every model (doesn’t need to be repeated for each stack - fix to HTML Tailwind only) models.forEach((model) => { ["html_tailwind"].forEach((stack) => { - it( + it.only( `Update for : ${model}`, async () => { const app = new App(page, stack, model, `update_${model}_${stack}`); await app.init(); // Generate from screenshot - await app.uploadImage(IMAGE_PATH); + await app.uploadImage(SIMPLE_SCREENSHOT); // Regenerate works for v1 await app.regenerate(); // Make an update @@ -116,7 +115,7 @@ describe("e2e tests", () => { await app.init(); // Generate from screenshot - await app.uploadImage(IMAGE_PATH); + await app.uploadImage(SIMPLE_SCREENSHOT); // Regenerate works for v1 await app.regenerate(); // Make an update @@ -147,7 +146,7 @@ class App { this.page = page; this.stack = stack; this.model = model; - this.screenshotPathPrefix = `${SCREENSHOTS_PATH}/${testId}`; + this.screenshotPathPrefix = `${RESULTS_DIR}/${testId}`; } async init() {