aboutsummaryrefslogtreecommitdiff
path: root/test/apps/bun-install.sh
diff options
context:
space:
mode:
Diffstat (limited to 'test/apps/bun-install.sh')
-rw-r--r--test/apps/bun-install.sh85
1 files changed, 85 insertions, 0 deletions
diff --git a/test/apps/bun-install.sh b/test/apps/bun-install.sh
new file mode 100644
index 000000000..dd4083e33
--- /dev/null
+++ b/test/apps/bun-install.sh
@@ -0,0 +1,85 @@
+#!/bin/bash
+
+set -euo pipefail
+
+dir=$(mktemp -d --suffix=bun-install-test-1)
+
+cd $dir
+${NPM_CLIENT:-$(which bun)} add react react-dom @types/react @babel/parser esbuild
+
+echo "console.log(typeof require(\"react\").createElement);" >index.js
+chmod +x index.js
+
+JS_RUNTIME=${JS_RUNTIME:-"$(which bun)"}
+
+if [ "$JS_RUNTIME" == "node" ]; then
+ result="$(node ./index.js)"
+fi
+
+if [ "$JS_RUNTIME" != "node" ]; then
+ result="$($JS_RUNTIME run ./index.js)"
+fi
+
+echo "console.log(typeof require(\"react-dom\").render);" >index.js
+chmod +x index.js
+
+JS_RUNTIME=${JS_RUNTIME:-"$(which bun)"}
+
+# If this fails to run, it means we didn't link @babel/parser correctly
+realpath -e ./node_modules/.bin/parser
+
+# If this fails to run, it means we didn't link esbuild correctly
+./node_modules/.bin/esbuild --version >/dev/null
+
+if [ "$JS_RUNTIME" == "node" ]; then
+ result="$(node ./index.js)"
+fi
+
+if [ "$JS_RUNTIME" != "node" ]; then
+ result="$($JS_RUNTIME run ./index.js)"
+fi
+
+if [ "$result" != "function" ]; then
+ echo "ERR: Expected 'function', got '$result'"
+ exit 1
+fi
+
+${NPM_CLIENT:-$(which bun)} remove react-dom
+
+if [ -d "node_modules/react-dom" ]; then
+ echo "ERR: react-dom module still exists in $dir"
+ exit 1
+fi
+
+yarn_dot_lock=$(${NPM_CLIENT:-$(which bun)} bun.lockb)
+
+if echo "$yarn_dot_lock" | grep -q "react-dom"; then
+ echo "ERR: react-dom module still exists in lockfile"
+ exit 1
+fi
+
+${NPM_CLIENT:-$(which bun)} remove @types/react
+
+yarn_dot_lock=$(${NPM_CLIENT:-$(which bun)} bun.lockb)
+
+if echo "$yarn_dot_lock" | grep -q "@types/react"; then
+ echo "ERR: @types/react module still exists in lockfile"
+ exit 1
+fi
+
+if echo "$yarn_dot_lock" | grep -q "@types/react"; then
+ echo "ERR: @types/react module still exists in $dir"
+ exit 1
+fi
+
+${NPM_CLIENT:-$(which bun)} remove react
+
+if [ -d "node_modules/react" ]; then
+ echo "ERR: react module still exists in $dir"
+ exit 1
+fi
+
+if [ -d "bun.lockb" ]; then
+ echo "ERR: empty bun.lockb should be deleted"
+ exit 1
+fi