refactor: dedupe repeated test helpers

This commit is contained in:
Peter Steinberger
2026-04-08 08:43:59 +01:00
parent 7834140bf9
commit 95e397a266
142 changed files with 6125 additions and 10524 deletions

View File

@@ -31,10 +31,14 @@ async function writePluginPackage(
}
describe("bundled plugin postinstall", () => {
function createBareNpmRunner(args: string[]) {
function createNpmInstallArgs(...packages: string[]) {
return ["install", "--omit=dev", "--no-save", "--package-lock=false", ...packages];
}
function createBareNpmRunner(packages: string[]) {
return {
command: "npm",
args,
args: createNpmInstallArgs(...packages),
env: {
HOME: "/tmp/home",
PATH: "/tmp/node/bin",
@@ -43,6 +47,24 @@ describe("bundled plugin postinstall", () => {
};
}
function expectNpmInstallSpawn(
spawnSync: ReturnType<typeof vi.fn>,
packageRoot: string,
packages: string[],
) {
expect(spawnSync).toHaveBeenCalledWith("npm", createNpmInstallArgs(...packages), {
cwd: packageRoot,
encoding: "utf8",
env: {
HOME: "/tmp/home",
PATH: "/tmp/node/bin",
},
shell: false,
stdio: "pipe",
windowsVerbatimArguments: undefined,
});
}
it("clears global npm config before nested installs", () => {
expect(
createNestedNpmInstallEnv({
@@ -70,13 +92,7 @@ describe("bundled plugin postinstall", () => {
env: { HOME: "/tmp/home" },
extensionsDir,
packageRoot,
npmRunner: createBareNpmRunner([
"install",
"--omit=dev",
"--no-save",
"--package-lock=false",
"acpx@0.4.1",
]),
npmRunner: createBareNpmRunner(["acpx@0.4.1"]),
spawnSync,
log: { log: vi.fn(), warn: vi.fn() },
});
@@ -103,32 +119,12 @@ describe("bundled plugin postinstall", () => {
},
extensionsDir,
packageRoot,
npmRunner: createBareNpmRunner([
"install",
"--omit=dev",
"--no-save",
"--package-lock=false",
"acpx@0.4.1",
]),
npmRunner: createBareNpmRunner(["acpx@0.4.1"]),
spawnSync,
log: { log: vi.fn(), warn: vi.fn() },
});
expect(spawnSync).toHaveBeenCalledWith(
"npm",
["install", "--omit=dev", "--no-save", "--package-lock=false", "acpx@0.4.1"],
{
cwd: packageRoot,
encoding: "utf8",
env: {
HOME: "/tmp/home",
PATH: "/tmp/node/bin",
},
shell: false,
stdio: "pipe",
windowsVerbatimArguments: undefined,
},
);
expectNpmInstallSpawn(spawnSync, packageRoot, ["acpx@0.4.1"]);
});
it("skips reinstall when the bundled sentinel package already exists", async () => {
@@ -237,40 +233,12 @@ describe("bundled plugin postinstall", () => {
},
extensionsDir,
packageRoot,
npmRunner: createBareNpmRunner([
"install",
"--omit=dev",
"--no-save",
"--package-lock=false",
"@slack/web-api@7.11.0",
"grammy@1.38.4",
]),
npmRunner: createBareNpmRunner(["@slack/web-api@7.11.0", "grammy@1.38.4"]),
spawnSync,
log: { log: vi.fn(), warn: vi.fn() },
});
expect(spawnSync).toHaveBeenCalledWith(
"npm",
[
"install",
"--omit=dev",
"--no-save",
"--package-lock=false",
"@slack/web-api@7.11.0",
"grammy@1.38.4",
],
{
cwd: packageRoot,
encoding: "utf8",
env: {
HOME: "/tmp/home",
PATH: "/tmp/node/bin",
},
shell: false,
stdio: "pipe",
windowsVerbatimArguments: undefined,
},
);
expectNpmInstallSpawn(spawnSync, packageRoot, ["@slack/web-api@7.11.0", "grammy@1.38.4"]);
});
it("installs only missing bundled plugin runtime deps", async () => {
@@ -301,32 +269,12 @@ describe("bundled plugin postinstall", () => {
},
extensionsDir,
packageRoot,
npmRunner: createBareNpmRunner([
"install",
"--omit=dev",
"--no-save",
"--package-lock=false",
"grammy@1.38.4",
]),
npmRunner: createBareNpmRunner(["grammy@1.38.4"]),
spawnSync,
log: { log: vi.fn(), warn: vi.fn() },
});
expect(spawnSync).toHaveBeenCalledWith(
"npm",
["install", "--omit=dev", "--no-save", "--package-lock=false", "grammy@1.38.4"],
{
cwd: packageRoot,
encoding: "utf8",
env: {
HOME: "/tmp/home",
PATH: "/tmp/node/bin",
},
shell: false,
stdio: "pipe",
windowsVerbatimArguments: undefined,
},
);
expectNpmInstallSpawn(spawnSync, packageRoot, ["grammy@1.38.4"]);
});
it("installs bundled plugin deps when npm location is global", async () => {
@@ -347,31 +295,11 @@ describe("bundled plugin postinstall", () => {
},
extensionsDir,
packageRoot,
npmRunner: createBareNpmRunner([
"install",
"--omit=dev",
"--no-save",
"--package-lock=false",
"grammy@1.38.4",
]),
npmRunner: createBareNpmRunner(["grammy@1.38.4"]),
spawnSync,
log: { log: vi.fn(), warn: vi.fn() },
});
expect(spawnSync).toHaveBeenCalledWith(
"npm",
["install", "--omit=dev", "--no-save", "--package-lock=false", "grammy@1.38.4"],
{
cwd: packageRoot,
encoding: "utf8",
env: {
HOME: "/tmp/home",
PATH: "/tmp/node/bin",
},
shell: false,
stdio: "pipe",
windowsVerbatimArguments: undefined,
},
);
expectNpmInstallSpawn(spawnSync, packageRoot, ["grammy@1.38.4"]);
});
});