test: share plugin install archive fixtures

This commit is contained in:
Peter Steinberger
2026-04-20 21:40:05 +01:00
parent 134a56f3e4
commit 1f816b1561
3 changed files with 25 additions and 42 deletions

View File

@@ -1,6 +1,5 @@
import fs from "node:fs";
import path from "node:path";
import * as tar from "tar";
import { afterAll, beforeEach, describe, expect, it, vi } from "vitest";
import { expectSingleNpmPackIgnoreScriptsCall } from "../test-utils/exec-assertions.js";
import {
@@ -8,6 +7,7 @@ import {
mockNpmPackMetadataResult,
} from "../test-utils/npm-spec-install-test-helpers.js";
import { installPluginFromNpmSpec, PLUGIN_INSTALL_ERROR_CODE } from "./install.js";
import { packToArchive } from "./test-helpers/archive-fixtures.js";
import { createSuiteTempRootTracker } from "./test-helpers/fs-fixtures.js";
const runCommandWithTimeoutMock = vi.fn();
@@ -24,26 +24,6 @@ function readVoiceCallArchiveBuffer(version: string): Buffer {
return fs.readFileSync(path.join(pluginFixturesDir, `voice-call-${version}.tgz`));
}
async function packToArchive(params: {
pkgDir: string;
outDir: string;
outName: string;
flatRoot?: boolean;
}) {
const dest = path.join(params.outDir, params.outName);
fs.rmSync(dest, { force: true });
const entries = params.flatRoot ? fs.readdirSync(params.pkgDir) : [path.basename(params.pkgDir)];
await tar.c(
{
gzip: true,
file: dest,
cwd: params.flatRoot ? params.pkgDir : path.dirname(params.pkgDir),
},
entries,
);
return dest;
}
function buildDynamicArchiveTemplateKey(params: {
packageJson: Record<string, unknown>;
withDistIndex: boolean;

View File

@@ -1,6 +1,5 @@
import fs from "node:fs";
import path from "node:path";
import * as tar from "tar";
import { afterAll, beforeEach, describe, expect, it, vi } from "vitest";
import { runCommandWithTimeout } from "../process/exec.js";
import { expectSingleNpmInstallIgnoreScriptsCall } from "../test-utils/exec-assertions.js";
@@ -11,6 +10,7 @@ import {
installPluginFromPath,
PLUGIN_INSTALL_ERROR_CODE,
} from "./install.js";
import { packToArchive } from "./test-helpers/archive-fixtures.js";
import { createSuiteTempRootTracker } from "./test-helpers/fs-fixtures.js";
vi.mock("../process/exec.js", () => ({
@@ -19,26 +19,6 @@ vi.mock("../process/exec.js", () => ({
const suiteTempRootTracker = createSuiteTempRootTracker("openclaw-plugin-install-path");
async function packToArchive(params: {
pkgDir: string;
outDir: string;
outName: string;
flatRoot?: boolean;
}) {
const dest = path.join(params.outDir, params.outName);
fs.rmSync(dest, { force: true });
const entries = params.flatRoot ? fs.readdirSync(params.pkgDir) : [path.basename(params.pkgDir)];
await tar.c(
{
gzip: true,
file: dest,
cwd: params.flatRoot ? params.pkgDir : path.dirname(params.pkgDir),
},
entries,
);
return dest;
}
function setupBundleInstallFixture(params: {
bundleFormat: "codex" | "claude" | "cursor";
name: string;

View File

@@ -0,0 +1,23 @@
import fs from "node:fs";
import path from "node:path";
import * as tar from "tar";
export async function packToArchive(params: {
pkgDir: string;
outDir: string;
outName: string;
flatRoot?: boolean;
}) {
const dest = path.join(params.outDir, params.outName);
fs.rmSync(dest, { force: true });
const entries = params.flatRoot ? fs.readdirSync(params.pkgDir) : [path.basename(params.pkgDir)];
await tar.c(
{
gzip: true,
file: dest,
cwd: params.flatRoot ? params.pkgDir : path.dirname(params.pkgDir),
},
entries,
);
return dest;
}