Files
moreminimore-vibe/e2e-tests/version_integrity.spec.ts
Kunthawat Greethong 11986a0196 Add project files
2025-12-05 09:26:53 +07:00

54 lines
1.8 KiB
TypeScript

import { PageObject, testSkipIfWindows } from "./helpers/test_helper";
import * as eph from "electron-playwright-helpers";
import path from "node:path";
const runVersionIntegrityTest = async (po: PageObject, nativeGit: boolean) => {
await po.setUp({ autoApprove: true, nativeGit });
// Importing a simple app with a few files.
await po.page.getByRole("button", { name: "Import App" }).click();
await eph.stubDialog(po.electronApp, "showOpenDialog", {
filePaths: [
path.join(__dirname, "fixtures", "import-app", "version-integrity"),
],
});
await po.page.getByRole("button", { name: "Select Folder" }).click();
await po.page.getByRole("textbox", { name: "Enter new app name" }).click();
await po.page
.getByRole("textbox", { name: "Enter new app name" })
.fill("version-integrity-app");
await po.page.getByRole("button", { name: "Import" }).click();
// Initial snapshot
await po.snapshotAppFiles({ name: "v1" });
// Add a file and delete a file
await po.sendPrompt("tc=version-integrity-add-edit-delete");
await po.snapshotAppFiles({ name: "v2" });
// Move a file
await po.sendPrompt("tc=version-integrity-move-file");
await po.snapshotAppFiles({ name: "v3" });
// Open version pane
await po.page.getByRole("button", { name: "Version 3" }).click();
await po.page.getByText("Init Dyad app Restore").click();
await po.snapshotAppFiles({ name: "v1" });
await po.page
.getByRole("button", { name: "Restore to this version" })
.click();
// Should be same as the previous snapshot, but just to be sure.
await po.snapshotAppFiles({ name: "v1" });
};
testSkipIfWindows("version integrity (git isomorphic)", async ({ po }) => {
await runVersionIntegrityTest(po, false);
});
testSkipIfWindows("version integrity (git native)", async ({ po }) => {
await runVersionIntegrityTest(po, true);
});