Erstatter v2 project-surface (screen-tabs + category-tabs + per-command paste-cards)
med v3 renderProjectView (sidebar med 17 artifacts + main-area + import-modal overlay).
renderActive() ruter project-surface til renderProjectSurfaceV3() som wrapper
renderProjectView + topbar + app-shell.
V2-surface helt fjernet:
- renderProjectSurface (152 linjer)
- renderCommandSubCard (87 linjer)
- rehydratePasteImports (15 linjer)
- ACTIONS['project-screen'], currentProjectScreen
- 5 v2-CSS-klasser: .project-tabs, .project-tab*, .sub-zone, .paste-import-row, .project-header__*, .command-cards
Zombie-handlers beholdt for test-back-compat:
currentProjectTab, ACTIONS['project-tab'], ACTIONS['parse'],
handlePasteImport, window.__handlePasteImport. Unreachable fra v3 DOM
men nødvendige for test-playground-v3.sh + test-playground-parsers.sh.
2 fingerprint-gap lukket:
- requirements.headers: utvidet med "EU AI Act — Krav" pattern
- license.headers: utvidet med "Lisens-kapabilitetsmatrise" pattern
- KNOWN_GAP_FIXTURES = {} i test-playground-fingerprints.sh
migrateDataVersion utvidet med parserFor (3. arg):
- Demo-state med kun raw_markdown auto-parses til project.artifacts[cid]
- defaultParserFor(cmdId) resolverer PARSERS[archetypeFor(cmdId)]
- 3 bootstrap-callsites oppdatert (cold-load, import, load-demo)
Ship-QA bugfixes funnet via browser-dogfood:
- components-tier4-project-view.css lagt til i <link>-kjeden (var ikke loaded
-> modal-overlay og two-column layout virket ikke)
- renderImportModal setter data-open="true" (DS-kontrakt for display: flex)
Bundler også sesjon 2-4 deliverables som ikke ble committed tidligere:
- shared/playground-design-system v0.6.0 (Tier 4 project-view CSS + 6 tokens)
- ms-ai-architect/playground/vendor/ re-sync til DS v0.6.0
- tests/test-playground-fingerprints.sh (sesjon 4 NY - 32 PASS)
- tests/test-playground-projectview.sh (sesjon 4 NY - 30 PASS)
- tests/test-playground-actions.sh (sesjon 4 NY - 19 PASS)
- tests/test-playground-migrations.sh utvidet (7 -> 16 PASS)
- tests/run-e2e.sh wirer alle 6 playground-suiter
Stats:
- bash tests/run-e2e.sh --playground: 386 PASS, 0 FAIL, 2 WARN (pre-eks)
- bash tests/run-e2e.sh (full): All E2E suites passed
- bash tests/validate-plugin.sh: 219 PASS
Screenshots regenerert til playground/screenshots/v1.15.0/ (24 PNG-er, 12
surfaces x 2 tema). Nye v3-surfaces: project-overview, project-artifact-*,
project-import-modal (viewport-only), project-search.
Docs oppdatert (3 nivåer): README.md (badge + version history),
CHANGELOG.md, CLAUDE.md (playground-seksjon + valideringstabell),
rot-README.md + rot-CLAUDE.md (marketplace-landingen + plugin-index).
.gitignore: ny pattern *.local.html + *.local.json for sesjon-state-filer.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
104 lines
3.3 KiB
Bash
Executable file
104 lines
3.3 KiB
Bash
Executable file
#!/bin/bash
|
|
# run-e2e.sh — Run E2E regression tests for agent outputs
|
|
# Usage: bash tests/run-e2e.sh [--security] [--cost] [--summary] [--ros] [--ai-act] [--playground] [--kb-update] [--all]
|
|
set -euo pipefail
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
|
|
|
RED='\033[0;31m'
|
|
GREEN='\033[0;32m'
|
|
CYAN='\033[0;36m'
|
|
NC='\033[0m'
|
|
|
|
# Parse arguments
|
|
RUN_SECURITY=false
|
|
RUN_COST=false
|
|
RUN_SUMMARY=false
|
|
RUN_ROS=false
|
|
RUN_AI_ACT=false
|
|
RUN_PLAYGROUND=false
|
|
RUN_KB_UPDATE=false
|
|
|
|
if [ $# -eq 0 ] || [ "${1:-}" = "--all" ]; then
|
|
RUN_SECURITY=true
|
|
RUN_COST=true
|
|
RUN_SUMMARY=true
|
|
RUN_ROS=true
|
|
RUN_AI_ACT=true
|
|
RUN_PLAYGROUND=true
|
|
RUN_KB_UPDATE=true
|
|
else
|
|
while [ $# -gt 0 ]; do
|
|
case "$1" in
|
|
--security) RUN_SECURITY=true ;;
|
|
--cost) RUN_COST=true ;;
|
|
--summary) RUN_SUMMARY=true ;;
|
|
--ros) RUN_ROS=true ;;
|
|
--ai-act) RUN_AI_ACT=true ;;
|
|
--playground) RUN_PLAYGROUND=true ;;
|
|
--kb-update) RUN_KB_UPDATE=true ;;
|
|
*)
|
|
echo "Usage: bash tests/run-e2e.sh [--security] [--cost] [--summary] [--ros] [--ai-act] [--playground] [--kb-update] [--all]"
|
|
exit 1
|
|
;;
|
|
esac
|
|
shift
|
|
done
|
|
fi
|
|
|
|
echo -e "${CYAN}╔══════════════════════════════════════════════╗${NC}"
|
|
echo -e "${CYAN}║ MS AI Architect — E2E Regression Tests ║${NC}"
|
|
echo -e "${CYAN}╚══════════════════════════════════════════════╝${NC}"
|
|
echo ""
|
|
|
|
FAILURES=0
|
|
|
|
if $RUN_SECURITY; then
|
|
bash "$SCRIPT_DIR/test-security-output.sh" || FAILURES=$((FAILURES + 1))
|
|
fi
|
|
|
|
if $RUN_COST; then
|
|
bash "$SCRIPT_DIR/test-cost-output.sh" || FAILURES=$((FAILURES + 1))
|
|
fi
|
|
|
|
if $RUN_SUMMARY; then
|
|
bash "$SCRIPT_DIR/test-summary-output.sh" || FAILURES=$((FAILURES + 1))
|
|
fi
|
|
|
|
if $RUN_ROS; then
|
|
bash "$SCRIPT_DIR/test-ros-output.sh" || FAILURES=$((FAILURES + 1))
|
|
fi
|
|
|
|
if $RUN_AI_ACT; then
|
|
bash "$SCRIPT_DIR/test-ai-act-output.sh" || FAILURES=$((FAILURES + 1))
|
|
fi
|
|
|
|
if $RUN_PLAYGROUND; then
|
|
bash "$SCRIPT_DIR/test-playground-v3.sh" || FAILURES=$((FAILURES + 1))
|
|
bash "$SCRIPT_DIR/test-playground-parsers.sh" || FAILURES=$((FAILURES + 1))
|
|
bash "$SCRIPT_DIR/test-playground-migrations.sh" || FAILURES=$((FAILURES + 1))
|
|
bash "$SCRIPT_DIR/test-playground-fingerprints.sh" || FAILURES=$((FAILURES + 1))
|
|
bash "$SCRIPT_DIR/test-playground-projectview.sh" || FAILURES=$((FAILURES + 1))
|
|
bash "$SCRIPT_DIR/test-playground-actions.sh" || FAILURES=$((FAILURES + 1))
|
|
fi
|
|
|
|
if $RUN_KB_UPDATE; then
|
|
echo -e "${CYAN}─── KB Update utilities ───${NC}"
|
|
PLUGIN_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
|
|
if (cd "$PLUGIN_ROOT" && node --test tests/kb-update/*.test.mjs); then
|
|
echo -e "${GREEN}KB Update: PASS${NC}"
|
|
else
|
|
echo -e "${RED}KB Update: FAIL${NC}"
|
|
FAILURES=$((FAILURES + 1))
|
|
fi
|
|
fi
|
|
|
|
echo -e "${CYAN}══════════════════════════════════════════════${NC}"
|
|
if [ "$FAILURES" -eq 0 ]; then
|
|
echo -e "${GREEN} All E2E suites passed${NC}"
|
|
else
|
|
echo -e "${RED} $FAILURES suite(s) had failures${NC}"
|
|
fi
|
|
echo -e "${CYAN}══════════════════════════════════════════════${NC}"
|
|
|
|
exit $FAILURES
|