



























@@ -4,6 +4,10 @@ import { chmodSync, mkdtempSync, mkdirSync, readFileSync, rmSync, writeFileSync
44import { tmpdir } from "node:os";
55import { join } from "node:path";
66import { describe, expect, it } from "vitest";
7+import {
8+writeNpmBeforePolicyFixture,
9+writeNpmFreshnessConflictFixture,
10+} from "./install-npm-fixtures.js";
711812const SCRIPT_PATH = "scripts/install.sh";
913@@ -26,74 +30,6 @@ function runInstallShell(script: string, env: NodeJS.ProcessEnv = {}) {
2630}
2731}
283229-function writeNpmFreshnessConflictFixture(path: string, argsLog: string) {
30-writeFileSync(
31-path,
32-[
33-"#!/usr/bin/env bash",
34-"set -euo pipefail",
35-`printf '%s\\n' "$*" >> ${JSON.stringify(argsLog)}`,
36-'if [[ "$1" == "config" && "$2" == "get" && "$3" == "min-release-age" ]]; then',
37-" printf 'null\\n'",
38-" exit 0",
39-"fi",
40-'if [[ "$1" == "config" && "$2" == "get" && "$3" == "before" ]]; then',
41-" printf 'Wed May 13 2026 21:25:20 GMT-0300 (Brasilia Standard Time)\\n'",
42-" exit 0",
43-"fi",
44-'for arg in "$@"; do',
45-' if [[ "$arg" == --before=* ]]; then',
46-" printf '%s\\n' 'Exit prior to config file resolving' >&2",
47-" printf '%s\\n' 'cause' >&2",
48-" printf '%s\\n' '--min-release-age cannot be provided when using --before' >&2",
49-" exit 64",
50-" fi",
51-"done",
52-'for arg in "$@"; do',
53-' if [[ "$arg" == "--min-release-age=0" ]]; then',
54-" exit 0",
55-" fi",
56-"done",
57-"exit 65",
58-"",
59-].join("\n"),
60-);
61-chmodSync(path, 0o755);
62-}
63-64-function writeNpmBeforePolicyFixture(path: string, argsLog: string) {
65-writeFileSync(
66-path,
67-[
68-"#!/usr/bin/env bash",
69-"set -euo pipefail",
70-`printf '%s\\n' "$*" >> ${JSON.stringify(argsLog)}`,
71-'if [[ "$1" == "config" && "$2" == "get" && "$3" == "min-release-age" ]]; then',
72-" printf 'null\\n'",
73-" exit 0",
74-"fi",
75-'if [[ "$1" == "config" && "$2" == "get" && "$3" == "before" ]]; then',
76-" printf 'Wed May 13 2026 21:25:20 GMT-0300 (Brasilia Standard Time)\\n'",
77-" exit 0",
78-"fi",
79-'for arg in "$@"; do',
80-' if [[ "$arg" == "--min-release-age=0" ]]; then',
81-" printf '%s\\n' 'min-release-age should not be selected for project-only npmrc' >&2",
82-" exit 64",
83-" fi",
84-"done",
85-'for arg in "$@"; do',
86-' if [[ "$arg" == --before=* ]]; then',
87-" exit 0",
88-" fi",
89-"done",
90-"exit 65",
91-"",
92-].join("\n"),
93-);
94-chmodSync(path, 0o755);
95-}
96-9733describe("install.sh", () => {
9834const script = readFileSync(SCRIPT_PATH, "utf8");
9935此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。