Files
openclaw/test/scripts/install-npm-fixtures.ts
2026-06-18 20:38:29 +08:00

71 lines
2.2 KiB
TypeScript

// NPM CLI fixture writers used by installer shell-script tests.
import { chmodSync, writeFileSync } from "node:fs";
export function writeNpmFreshnessConflictFixture(path: string, argsLog: string) {
writeFileSync(
path,
[
"#!/usr/bin/env bash",
"set -euo pipefail",
`printf '%s\\n' "$*" >> ${JSON.stringify(argsLog)}`,
'if [[ "$1" == "config" && "$2" == "get" && "$3" == "min-release-age" ]]; then',
" printf 'null\\n'",
" exit 0",
"fi",
'if [[ "$1" == "config" && "$2" == "get" && "$3" == "before" ]]; then',
" printf 'Wed May 13 2026 21:25:20 GMT-0300 (Brasilia Standard Time)\\n'",
" exit 0",
"fi",
'for arg in "$@"; do',
' if [[ "$arg" == --before=* ]]; then',
" printf '%s\\n' 'Exit prior to config file resolving' >&2",
" printf '%s\\n' 'cause' >&2",
" printf '%s\\n' '--min-release-age cannot be provided when using --before' >&2",
" exit 64",
" fi",
"done",
'for arg in "$@"; do',
' if [[ "$arg" == "--min-release-age=0" ]]; then',
" exit 0",
" fi",
"done",
"exit 65",
"",
].join("\n"),
);
chmodSync(path, 0o755);
}
export function writeNpmBeforePolicyFixture(path: string, argsLog: string) {
writeFileSync(
path,
[
"#!/usr/bin/env bash",
"set -euo pipefail",
`printf '%s\\n' "$*" >> ${JSON.stringify(argsLog)}`,
'if [[ "$1" == "config" && "$2" == "get" && "$3" == "min-release-age" ]]; then',
" printf 'null\\n'",
" exit 0",
"fi",
'if [[ "$1" == "config" && "$2" == "get" && "$3" == "before" ]]; then',
" printf 'Wed May 13 2026 21:25:20 GMT-0300 (Brasilia Standard Time)\\n'",
" exit 0",
"fi",
'for arg in "$@"; do',
' if [[ "$arg" == "--min-release-age=0" ]]; then',
" printf '%s\\n' 'min-release-age should not be selected for project-only npmrc' >&2",
" exit 64",
" fi",
"done",
'for arg in "$@"; do',
' if [[ "$arg" == --before=* ]]; then',
" exit 0",
" fi",
"done",
"exit 65",
"",
].join("\n"),
);
chmodSync(path, 0o755);
}