#!/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 export HOME="$test_home" export XDG_STATE_HOME="$test_home/.local/state" mkdir -p "$HOME/.local/share/applications" "$HOME/.dsh" printf 'original desktop\n' > "$HOME/.local/share/applications/dsh-app.desktop" printf 'credential sentinel\n' > "$HOME/.dsh/.credentials.yaml" "$repository_directory/uninstall.sh" --test-mode grep -q '^credential sentinel$' "$HOME/.dsh/.credentials.yaml" "$repository_directory/install.sh" --test-mode test -x "$HOME/.local/bin/dsh-app" test -f "$HOME/.config/systemd/user/dsh-web.service" test -f "$HOME/.dsh/profiles/web/package.json" test -f "$HOME/.dsh/profiles/headless/package.json" test -f "$HOME/.local/share/icons/hicolor/512x512/apps/dsh.png" grep -q "$HOME/.local/bin/dsh-app" "$HOME/.local/share/applications/dsh-app.desktop" while IFS= read -r plugin; do test "$(readlink -f "$HOME/.dsh/plugins/$plugin")" = "$(readlink -f "$repository_directory/plugins/$plugin")" done < "$repository_directory/manifests/local-plugins.txt" while IFS= read -r plugin; do test "$(readlink -f "$HOME/.dsh/vendor/$plugin")" = "$(readlink -f "$repository_directory/vendor/$plugin")" done < "$repository_directory/manifests/vendored-plugins.txt" printf 'user modified\n' > "$HOME/.local/share/dsh-app-firefox/chrome/userChrome.css" "$repository_directory/install.sh" --test-mode grep -q '#TabsToolbar' "$HOME/.local/share/dsh-app-firefox/chrome/userChrome.css" "$repository_directory/uninstall.sh" --test-mode grep -q '^original desktop$' "$HOME/.local/share/applications/dsh-app.desktop" grep -q '^user modified$' "$HOME/.local/share/dsh-app-firefox/chrome/userChrome.css" grep -q '^credential sentinel$' "$HOME/.dsh/.credentials.yaml" while IFS= read -r plugin; do test ! -e "$HOME/.dsh/plugins/$plugin" done < "$repository_directory/manifests/local-plugins.txt" while IFS= read -r plugin; do test ! -e "$HOME/.dsh/vendor/$plugin" done < "$repository_directory/manifests/vendored-plugins.txt" printf 'isolated install/uninstall test passed\n'