commit 640b8b77d039da3b4d1d18827a7d404e32b6e110
parent 620358ee08898499b1e73ef5c8d0697a0ee6fa2e
Author: triesap <tyson@radroots.org>
Date: Tue, 28 Jul 2026 08:25:09 +0000
event_store: cover food projection seal drift
- alter signed-event identity through trusted test corruption
- reject a nonnegative but forged sealed projection count
- exercise both failures through the exhaustive public audit
- preserve production projection and cursor guards unchanged
Diffstat:
1 file changed, 14 insertions(+), 0 deletions(-)
diff --git a/crates/event_store/src/store.rs b/crates/event_store/src/store.rs
@@ -7196,6 +7196,13 @@ CREATE TABLE aux.event_transport_observation (event_id TEXT);",
async fn food_availability_exhaustive_audit_rejects_projection_and_image_row_drift() {
for (label, guard, bypass_checks, mutation, expected_reason) in [
(
+ "projection identity",
+ Some("DROP TRIGGER radroots_event_store_food_availability_projection_update_guard"),
+ false,
+ "UPDATE radroots_event_store_food_availability_projection SET created_at = created_at + 1",
+ "projection identity disagrees",
+ ),
+ (
"projection column",
Some("DROP TRIGGER radroots_event_store_food_availability_projection_update_guard"),
false,
@@ -7224,6 +7231,13 @@ CREATE TABLE aux.event_transport_observation (event_id TEXT);",
"stored FoodAvailability image differs",
),
(
+ "sealed projection row count",
+ Some("DROP TRIGGER radroots_event_store_food_availability_cursor_update_guard"),
+ false,
+ "UPDATE radroots_event_store_food_availability_cursor SET projected_row_count = projected_row_count + 1",
+ "projection row count",
+ ),
+ (
"FTS content",
None,
false,