diff --git a/tests/runner-e2e/installed-release.test.ts b/tests/runner-e2e/installed-release.test.ts index 7f7f353385f..7982f9b6646 100644 --- a/tests/runner-e2e/installed-release.test.ts +++ b/tests/runner-e2e/installed-release.test.ts @@ -27,6 +27,8 @@ describe("ordinary installed release smoke", () => { for (const file of ["manifest.js", "worker.js"]) writeFileSync(path.join(plugin, "dist", file), ""); writeFileSync(path.join(plugin, "package.json"), JSON.stringify(manifest)); expect(installedReleaseDaytonaPlugin(cli)).toBe(plugin); + expect(installedReleaseDaytonaPlugin(cli, plugin)).toBe(plugin); + expect(() => installedReleaseDaytonaPlugin(cli, "relative/plugin")).toThrow("absolute"); writeFileSync(path.join(plugin, "package.json"), JSON.stringify({ ...manifest, exports: { ".": "./src/index.ts" } })); expect(() => installedReleaseDaytonaPlugin(cli)).toThrow("public compiled Daytona"); writeFileSync(path.join(plugin, "package.json"), JSON.stringify(manifest)); diff --git a/tests/runner-e2e/installed-release.ts b/tests/runner-e2e/installed-release.ts index eaeafa8d2e3..b07ed89c5cd 100644 --- a/tests/runner-e2e/installed-release.ts +++ b/tests/runner-e2e/installed-release.ts @@ -15,9 +15,10 @@ export function installedReleaseLaunch(cliPath: string) { } /** Install the public plugin from the same consumer, without a workspace loader. */ -export function installedReleaseDaytonaPlugin(cliPath: string): string { +export function installedReleaseDaytonaPlugin(cliPath: string, installedPluginPath?: string): string { const cli = installedReleaseLaunch(cliPath); - const plugin = realpathSync(path.join(path.dirname(cli.cwd), "@paperclipai/plugin-daytona")); + if (installedPluginPath && !path.isAbsolute(installedPluginPath)) throw new Error("Installed Daytona plugin path must be absolute"); + const plugin = realpathSync(installedPluginPath ?? path.join(path.dirname(cli.cwd), "@paperclipai/plugin-daytona")); const manifest = JSON.parse(readFileSync(path.join(plugin, "package.json"), "utf8")); if (manifest.name !== "@paperclipai/plugin-daytona" || manifest.paperclipPlugin?.manifest !== "./dist/manifest.js" || diff --git a/tests/runner-e2e/live-fixtures.ts b/tests/runner-e2e/live-fixtures.ts index 91dd362734e..4cfe762c653 100644 --- a/tests/runner-e2e/live-fixtures.ts +++ b/tests/runner-e2e/live-fixtures.ts @@ -117,7 +117,7 @@ export async function setupLiveFixtures(input: { async setup() { return api.post("/api/plugins/install", { packageName: process.env.PAPERCLIP_RUNNER_E2E_INSTALLED_CLI - ? installedReleaseDaytonaPlugin(process.env.PAPERCLIP_RUNNER_E2E_INSTALLED_CLI) + ? installedReleaseDaytonaPlugin(process.env.PAPERCLIP_RUNNER_E2E_INSTALLED_CLI, process.env.PAPERCLIP_RUNNER_E2E_INSTALLED_DAYTONA_PLUGIN) : path.resolve( import.meta.dirname, "../../packages/plugins/sandbox-providers/daytona",