42 lines
798 B
Bash
Executable File
42 lines
798 B
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
bun_path="$1"
|
|
workdir="$(mktemp -d)"
|
|
trap 'rm -rf "${workdir}"' EXIT
|
|
|
|
cat > "${workdir}/package.json" <<'JSON'
|
|
{
|
|
"name": "stale-lockfile-test",
|
|
"version": "1.0.0"
|
|
}
|
|
JSON
|
|
|
|
"${bun_path}" install --cwd "${workdir}" >/dev/null
|
|
|
|
cat > "${workdir}/package.json" <<'JSON'
|
|
{
|
|
"name": "stale-lockfile-test",
|
|
"version": "1.0.0",
|
|
"dependencies": {
|
|
"left-pad": "1.3.0"
|
|
}
|
|
}
|
|
JSON
|
|
|
|
set +e
|
|
output="$(${bun_path} install --cwd "${workdir}" --frozen-lockfile 2>&1)"
|
|
code=$?
|
|
set -e
|
|
|
|
if [[ ${code} -eq 0 ]]; then
|
|
echo "Expected frozen lockfile install to fail when package.json changes" >&2
|
|
exit 1
|
|
fi
|
|
|
|
if [[ "${output}" != *"lockfile"* && "${output}" != *"frozen"* ]]; then
|
|
echo "Expected lockfile-related error, got:" >&2
|
|
echo "${output}" >&2
|
|
exit 1
|
|
fi
|