fix(alerts): final sweep — drop ACKNOWLEDGED from AlertStateChip + CMD-K; harden V17 IT

UI: AlertStateChip.LABELS and .COLORS no longer include ACKNOWLEDGED
(dropped in V17). AlertStateChip.test.tsx test-cases trimmed to the
three remaining states. LayoutShell CMD-K now searches FIRING alerts
with acked=false (was state=[FIRING,ACKNOWLEDGED]).

Test: V17MigrationIT.open_rule_index_predicate_is_reworked replaced
with a structural-only assertion (index exists, indisunique). The
pg_get_indexdef pretty-printer varies across Postgres versions, so
predicate semantics are verified behaviorally in
PostgresAlertInstanceRepositoryIT (findOpenForRule_* +
save_rejectsSecondOpenInstanceForSameRuleAndExchange).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
hsiegeln
2026-04-21 19:29:58 +02:00
parent 0cd0a27452
commit 88804aca2c
4 changed files with 18 additions and 11 deletions

View File

@@ -35,14 +35,24 @@ class V17MigrationIT extends AbstractPostgresIT {
}
@Test
void open_rule_index_predicate_is_reworked() {
String def = jdbcTemplate.queryForObject("""
SELECT pg_get_indexdef(indexrelid)
FROM pg_index
void open_rule_index_exists_and_is_unique() {
// Structural check only — the pg_get_indexdef pretty-printer varies across
// Postgres versions. Predicate semantics (ack doesn't close; soft-delete
// frees the slot; RESOLVED excluded) are covered behaviorally by
// PostgresAlertInstanceRepositoryIT#findOpenForRule_* and
// #save_rejectsSecondOpenInstanceForSameRuleAndExchange.
Integer count = jdbcTemplate.queryForObject("""
SELECT COUNT(*)::int FROM pg_indexes
WHERE indexname = 'alert_instances_open_rule_uq'
AND tablename = 'alert_instances'
""", Integer.class);
assertThat(count).isEqualTo(1);
Boolean isUnique = jdbcTemplate.queryForObject("""
SELECT indisunique FROM pg_index
JOIN pg_class ON pg_class.oid = pg_index.indexrelid
WHERE pg_class.relname = 'alert_instances_open_rule_uq'
""", String.class);
assertThat(def).contains("state = ANY (ARRAY['PENDING'::alert_state_enum, 'FIRING'::alert_state_enum])");
assertThat(def).contains("deleted_at IS NULL");
""", Boolean.class);
assertThat(isUnique).isTrue();
}
}