mirror of
https://github.com/oven-sh/bun
synced 2026-02-02 15:08:46 +00:00
66 lines
1.7 KiB
Bash
66 lines
1.7 KiB
Bash
#!/usr/bin/env bash
|
|
|
|
set -euo pipefail
|
|
|
|
killall -9 "$(basename "$BUN_BIN")" || echo ""
|
|
|
|
DIR=$(mktemp -d -t bun-lockfile)
|
|
|
|
cd "$DIR"
|
|
|
|
$BUN_BIN add react
|
|
|
|
echo "node_modules" >.gitignore
|
|
|
|
git init && git add . && git commit -am "Initial commit"
|
|
|
|
$BUN_BIN install
|
|
|
|
ORIG_LOCKFILE="$($BUN_BIN pm hash-string)"
|
|
|
|
[[ -z $(git status --untracked-files=no --porcelain) ]] || {
|
|
echo "ERR: Expected empty git status, got '$(git status --untracked-files=no --porcelain)'"
|
|
exit 1
|
|
}
|
|
|
|
$BUN_BIN add react
|
|
|
|
NEW_LOCKFILE="$($BUN_BIN pm hash-string)"
|
|
|
|
diff <(echo "$ORIG_LOCKFILE") <(echo "$NEW_LOCKFILE") || {
|
|
echo "ERR: Expected lockfile to be unchanged, got '$NEW_LOCKFILE'"
|
|
exit 1
|
|
}
|
|
|
|
ORIG_HASH=$($BUN_BIN bun.lockb --hash)
|
|
|
|
$BUN_BIN remove react
|
|
$BUN_BIN add react
|
|
|
|
NEW_HASH=$($BUN_BIN bun.lockb --hash)
|
|
|
|
diff <(echo "$ORIG_HASH") <(echo "$NEW_HASH") || {
|
|
echo "ERR: Expected hash to be unchanged, got '$NEW_HASH'"
|
|
exit 1
|
|
}
|
|
|
|
echo '{ "dependencies": { "react": "17.0.2", "react-dom": "17.0.2" } }' >package.json
|
|
|
|
$BUN_BIN install
|
|
|
|
echo "var {version} = JSON.parse(require(\"fs\").readFileSync('./node_modules/react-dom/package.json', 'utf8')); if (version !== '17.0.2') {throw new Error('Unexpected react-dom version');}; " >index.js
|
|
$BUN_BIN run ./index.js
|
|
|
|
echo "var {version} = JSON.parse(require(\"fs\").readFileSync('./node_modules/react/package.json', 'utf8')); if (version !== '17.0.2') {throw new Error('Unexpected react version');}; " >index.js
|
|
$BUN_BIN run ./index.js
|
|
|
|
# This is just making sure that the JS was executed
|
|
realpath -e node_modules/react-dom >/dev/null || {
|
|
echo "ERR: Expected react-dom to be installed"
|
|
exit 1
|
|
}
|
|
realpath -e node_modules/react >/dev/null || {
|
|
echo "ERR: Expected react to be installed"
|
|
exit 1
|
|
}
|