#!/bin/bash # test-summary-output.sh — Validate summary-agent output structure set -euo pipefail SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" source "$SCRIPT_DIR/lib/e2e-helpers.sh" FIXTURE="$SCRIPT_DIR/fixtures/summary/fixture.md" if [ ! -f "$FIXTURE" ]; then echo "ERROR: Fixture not found: $FIXTURE" echo "Run: bash tests/capture-fixture.sh to generate fixtures" exit 1 fi init_suite "Summary Agent" # Structure checks assert_has_section "$FIXTURE" "Sammendrag" "Has summary header" assert_has_section "$FIXTURE" "Beslutningsnotat" "Has decision note section" assert_has_section "$FIXTURE" "Nøkkeltall" "Has key figures section" # Content quality assert_min_lines "$FIXTURE" 50 "Minimum 50 lines" assert_min_tables "$FIXTURE" 1 "At least 1 table (key figures)" assert_has_nok_amounts "$FIXTURE" 3 "At least 3 NOK amounts" # Encoding assert_encoding_ok "$FIXTURE" "UTF-8 encoding valid" assert_no_ascii_approximation "$FIXTURE" "No ASCII approximation of Norwegian chars" # Cross-references assert_matches_pattern "$FIXTURE" "S[0-9]" "References other sections (S-numbers)" assert_matches_pattern "$FIXTURE" "(Sikkerhet|sikkerhet)" "Cross-references security" assert_matches_pattern "$FIXTURE" "(Kostnad|kostnad|TCO)" "Cross-references cost" assert_matches_pattern "$FIXTURE" "(Go|NO-GO|anbefaling|Anbefaling)" "Contains recommendation" assert_matches_pattern "$FIXTURE" "(Fase|fase)\s*[0-9]" "References implementation phases" print_summary