DSH-Arch-Setup/test/compatibility-patches.test.sh
Шурупов Илья Викторович cf9443753e Add one-command Arch DSH setup
Package the portable DSH profiles, local plugins, desktop integration, Firefox wrapper, and ownership-aware installer lifecycle. Bundle checksum-pinned OpenVSCode, editor extensions, translation assets, and cloudflared so unreliable upstream artifact downloads cannot break a clean installation.
2026-09-12 19:13:36 +03:00

28 lines
1.6 KiB
Bash
Executable file

#!/usr/bin/env bash
set -euo pipefail
repository_directory=$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")/.." && pwd)
test_home=$(mktemp -d)
trap 'rm -rf "$test_home"' EXIT
profile_directory="$test_home/profile"
extensions_directory="$test_home/extensions"
diff_directory="$profile_directory/node_modules/@dsh-external/dsh-diff-viewer"
branch_directory="$extensions_directory/codexdebayan.branch-compare-1.4.5-universal"
mkdir -p "$diff_directory/src/client" "$diff_directory/lib" "$branch_directory/dist/git"
printf "%s\n" "import { MutationRow } from './mutation-row.tsx'" > "$diff_directory/src/client/index.tsx"
printf '\t\texports.apply = apply;\n\t\texports.inject = inject;\n' > "$diff_directory/lib/client.js"
printf "%s\n" "const result = await this.execGit(['diff', '--name-status', baseBranch, targetBranch]);" > "$branch_directory/dist/git/GitService.js"
for _ in 1 2; do
HOME="$test_home" DSH_PROFILE_DIRECTORY="$profile_directory" DSH_EDITOR_EXTENSIONS_DIRECTORY="$extensions_directory" \
node "$repository_directory/scripts/apply-compatibility-patches.mjs"
done
grep -q "export { DiffViewer }" "$diff_directory/src/client/index.tsx"
grep -q 'exports.DiffViewer = DiffViewer' "$diff_directory/lib/client.js"
grep -q "targetBranch, '--'" "$branch_directory/dist/git/GitService.js"
[[ $(grep -c "export { DiffViewer }" "$diff_directory/src/client/index.tsx") == 1 ]]
[[ $(grep -c 'exports.DiffViewer = DiffViewer' "$diff_directory/lib/client.js") == 1 ]]
[[ $(grep -c "targetBranch, '--'" "$branch_directory/dist/git/GitService.js") == 1 ]]
printf 'compatibility patch test passed\n'