diff --git a/apps/desktop/__tests__/utils.ts b/apps/desktop/__tests__/utils.ts index 658ab768f..90d0d33ac 100644 --- a/apps/desktop/__tests__/utils.ts +++ b/apps/desktop/__tests__/utils.ts @@ -18,13 +18,12 @@ along with this program. If not, see . */ import { execSync } from "child_process"; -import { cp, mkdir, readFile, rm, rmdir, writeFile } from "fs/promises"; +import { cp, mkdir, readFile, rm, writeFile } from "fs/promises"; import { fileURLToPath } from "node:url"; import path, { join, resolve } from "path"; import { _electron as electron } from "playwright"; import slugify from "slugify"; import { test as vitestTest, TestContext } from "vitest"; -import { patchBetterSQLite3 } from "../scripts/patch-better-sqlite3.mjs"; import { existsSync } from "fs"; const __filename = fileURLToPath(import.meta.url); @@ -71,8 +70,8 @@ export async function testCleanup(context: TestContext) { }); } await ctx.app.close(); - await rmdir(ctx.userDataDir, { recursive: true }); - await rmdir(ctx.outputDir, { recursive: true }); + await rm(ctx.userDataDir, { force: true, recursive: true }); + await rm(ctx.outputDir, { force: true, recursive: true }); } async function buildAndLaunchApp(options?: TestOptions): Promise { @@ -139,6 +138,7 @@ async function launchApp(executablePath: string, packageName: string) { }; } +let MAX_RETRIES = 3; async function buildApp({ version, outputDir @@ -159,17 +159,23 @@ async function buildApp({ "--publish=never" ]; if (version) args.push(`--c.extraMetadata.version=${version}`); - - execSync(`npx ${args.join(" ")}`, { - stdio: IS_DEBUG ? "inherit" : "ignore", - env: { - ...process.env, - NOTESNOOK_STAGING: "true", - NN_PRODUCT_NAME: productName, - NN_APP_ID: `com.notesnook.test.${productName}`, - NN_OUTPUT_DIR: sourceDir - } - }); + try { + execSync(`npx ${args.join(" ")}`, { + stdio: IS_DEBUG ? "inherit" : "ignore", + env: { + ...process.env, + NOTESNOOK_STAGING: "true", + NN_PRODUCT_NAME: productName, + NN_APP_ID: `com.notesnook.test.${productName}`, + NN_OUTPUT_DIR: sourceDir + } + }); + } catch (e) { + if (--MAX_RETRIES) { + console.log("retrying..."); + return await buildApp({ outputDir, version }); + } else throw e; + } } return process.platform === "win32" ? await copyBuildWindows(sourceDir, outputDir, productName, version) @@ -193,7 +199,12 @@ async function copyBuildLinux( "resources", version ); - return resolve(__dirname, "..", appDir, productName); + return resolve( + __dirname, + "..", + appDir, + productName.toLowerCase().replace(/\s+/g, "-") + ); } async function copyBuildWindows(