Fix pending migration notifications
This commit is contained in:
@@ -24,14 +24,27 @@ chmod +x "$stub_bin/omarchy-migrate"
|
||||
|
||||
cat >"$stub_bin/systemd-run" <<'SH'
|
||||
#!/bin/bash
|
||||
exit 1
|
||||
if [[ ${OMARCHY_TEST_SYSTEMD_RUN:-run} == "fail" ]]; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
command=${!#}
|
||||
bash -c "$command"
|
||||
SH
|
||||
chmod +x "$stub_bin/systemd-run"
|
||||
|
||||
cat >"$stub_bin/omarchy-notification-send" <<'SH'
|
||||
#!/bin/bash
|
||||
printf '%s\n' "$@" >"$OMARCHY_TEST_NOTIFY_ARGS"
|
||||
SH
|
||||
chmod +x "$stub_bin/omarchy-notification-send"
|
||||
|
||||
run_notify() {
|
||||
HOME="$test_home" \
|
||||
PATH="$stub_bin:$ROOT/bin:$PATH" \
|
||||
OMARCHY_TEST_PENDING_MIGRATIONS="$1" \
|
||||
OMARCHY_TEST_NOTIFY_ARGS="$test_tmp/notify-args" \
|
||||
OMARCHY_TEST_SYSTEMD_RUN="${2:-run}" \
|
||||
"$ROOT/bin/omarchy-migrate-notify"
|
||||
}
|
||||
|
||||
@@ -40,7 +53,13 @@ run_notify 0 >"$test_tmp/not-pending.out" 2>"$test_tmp/not-pending.err"
|
||||
[[ ! -s $test_tmp/not-pending.err ]] || fail "migration notifier stays quiet on stderr without pending migrations"
|
||||
pass "migration notifier ignores users with no pending migrations"
|
||||
|
||||
run_notify 1 >"$test_tmp/pending.out" 2>"$test_tmp/pending.err"
|
||||
run_notify 1 fail >"$test_tmp/pending.out" 2>"$test_tmp/pending.err"
|
||||
grep -q 'Omarchy has pending migrations' "$test_tmp/pending.err" || fail "migration notifier explains pending migrations without notification system"
|
||||
grep -q '200-migration.sh' "$test_tmp/pending.err" || fail "migration notifier lists pending migration names"
|
||||
pass "migration notifier reports pending migrations"
|
||||
|
||||
run_notify 1 >"$test_tmp/notified.out" 2>"$test_tmp/notified.err"
|
||||
grep -Fx 'Pending Omarchy Migrations' "$test_tmp/notify-args" >/dev/null || fail "migration notifier uses pending migrations title"
|
||||
grep -Fx 'Click to run 1 pending migration.' "$test_tmp/notify-args" >/dev/null || fail "migration notifier describes the pending migration"
|
||||
grep -Fx '' "$test_tmp/notify-args" >/dev/null || fail "migration notifier includes the large-slot glyph"
|
||||
pass "migration notifier uses the actionable notification format"
|
||||
|
||||
Reference in New Issue
Block a user