Skip to content

Latest commit

 

History

History
47 lines (34 loc) · 2.31 KB

File metadata and controls

47 lines (34 loc) · 2.31 KB

AGENTS.md

Project: DotPilot.Tests Stack: .NET 10, NUnit, FluentAssertions, coverlet.collector

Purpose

  • This project owns automated unit-level verification for the DotPilot app project.
  • It should validate caller-visible behavior and stable application contracts without introducing test-only abstractions that hide real behavior.

Entry Points

  • DotPilot.Tests.csproj
  • AgentBuilder/*
  • Chat/*
  • ChatSessions/*
  • Providers/*
  • Settings/*
  • Workspace/*

Boundaries

  • Keep tests focused on behavior that can run reliably in-process.
  • Cover every caller-visible feature flow through public contracts or API-like composition seams; simple construction tests are insufficient.
  • Do not move browser, driver, or end-to-end smoke concerns into this project; those belong in DotPilot.UITests.
  • Prefer production-facing flows and public contracts over implementation-detail assertions.
  • Keep a deterministic in-repo test AI client available for CI so provider-independent agent flows remain testable even when Codex, Claude Code, or GitHub Copilot are unavailable.
  • Tests that require real provider CLIs or auth must detect availability and run only when the corresponding external toolchain is present.
  • Organize test files by feature slice, with shared helpers living next to the slice that owns them instead of a flat project root.
  • Keep test layout mirroring the production slice shape: feature-specific helpers live inside that feature folder, and configuration/model/view-model related assertions should sit under matching subfolders when a slice grows.

Local Commands

  • test: dotnet test DotPilot.Tests/DotPilot.Tests.csproj
  • coverage: dotnet test DotPilot.Tests/DotPilot.Tests.csproj --settings DotPilot.Tests/coverlet.runsettings --collect:"XPlat Code Coverage"
  • build: dotnet build DotPilot.Tests/DotPilot.Tests.csproj

Applicable Skills

  • mcaf-dotnet
  • mcaf-testing

Local Risks Or Protected Areas

  • The current unit-test surface is thin, so new production behavior should raise coverage rather than relying on the existing baseline.
  • Keep assertions meaningful; do not add placeholder tests that only prove object construction with no behavioral value.
  • Treat broad flow coverage as mandatory; new non-UI functionality should land with positive, negative, and edge-path assertions.