tunit
Run TUnit tests with Playwright. Use when user asks to run tests, execute tests, or check if tests pass.
What this skill does
# Running TUnit Tests This project uses TUnit with Playwright for testing. Tests are located in `tests/SummitUI.Tests.Playwright/`. ## Run All Tests ```bash dotnet run --project tests/SummitUI.Tests.Playwright ``` ## Run Tests with Limited Parallelism (Recommended) To prevent system overload when running Playwright tests, limit parallel test execution: ```bash # Run with maximum 1 parallel test (sequential) dotnet run --project tests/SummitUI.Tests.Playwright -- --maximum-parallel-tests 1 # Run with maximum 2 parallel tests dotnet run --project tests/SummitUI.Tests.Playwright -- --maximum-parallel-tests 2 ``` ## Run Tests with Filters TUnit uses `--treenode-filter` with path pattern: `/assembly/namespace/class/test` Filter by class name: ```bash dotnet run --project SummitUI.Tests.Playwright -- --treenode-filter '/*/*/ClassName/*' ``` Filter by exact test name: ```bash dotnet run --project SummitUI.Tests.Playwright -- --treenode-filter '/*/*/*/TestName' ``` Examples: ```bash # Run all Select accessibility tests dotnet run --project tests/SummitUI.Tests.Playwright -- --treenode-filter '/*/*/SelectAccessibilityTests/*' # Run specific test by name dotnet run --project tests/SummitUI.Tests.Playwright -- --treenode-filter '/*/*/*/Trigger_ShouldHave_RoleCombobox' # Run tests matching pattern (wildcard in test name) dotnet run --project tests/SummitUI.Tests.Playwright -- --treenode-filter '/*/*/*/Keyboard*' # Run all tests in namespace dotnet run --project tests/SummitUI.Tests.Playwright -- --treenode-filter '/*/SummitUI.Tests.Playwright/*/*' ``` ## Run Tests in Debug Mode When a debugger is attached, Playwright will run in debug mode (`PWDEBUG=1`) automatically via the `Hooks.cs` setup. ## View Test Output Add `--report` flags for different output formats: ```bash # Console output with details dotnet run --project tests/SummitUI.Tests.Playwright -- --output-format console-detailed # Generate TRX report dotnet run --project tests/SummitUI.Tests.Playwright -- --report-trx ``` ## Flakiness Mitigation The test project includes several features to reduce flakiness: 1. **Automatic Retries**: Tests are automatically retried up to 2 times on failure (`[Retry(2)]` in GlobalSetup.cs) 2. **Fully Sequential Execution**: All tests run sequentially via `[assembly: NotInParallel]` in GlobalSetup.cs 3. **Server Readiness Check**: `Hooks.cs` waits for the Blazor server to be fully ready before tests start 4. **Extended Timeouts**: Configured via `tunit.json` for longer test and hook timeouts ## Project Structure - `GlobalSetup.cs` - Assembly-level test configuration (retries, parallelism) - `Hooks.cs` - Test session setup/teardown (starts Blazor server) - `BlazorWebApplicationFactory.cs` - WebApplicationFactory for hosting the test server - `tunit.json` - TUnit configuration file - `*AccessibilityTests.cs` - Accessibility test classes inheriting from `PageTest` ## Test Conventions - Tests inherit from `TUnit.Playwright.PageTest` to get `Page` access - Use `[Before(Test)]` for per-test setup - Use `[Before(TestSession)]` / `[After(TestSession)]` for session-wide setup - Access the running server via `Hooks.ServerUrl`
Related in General
modeling-omnistudio-epc-catalog
IncludedSalesforce Industries CME EPC product-modeling skill for Product2-based catalog creation. Use when creating EPC products, configuring product attributes, building offer bundles with Product Child Items, or reviewing EPC DataPack JSON metadata for product catalog changes. TRIGGER when: user creates or updates Product2 EPC records, AttributeAssignment payloads, AttributeMetadata/AttributeDefaultValues, Offer bundles, or ProductChildItem relationships. DO NOT TRIGGER when: designing OmniScripts/FlexCards/Integration Procedures (use building-omnistudio-omniscript, building-omnistudio-flexcard, or building-omnistudio-integration-procedure), implementing Apex business logic (use generating-apex), or troubleshooting deployment pipelines (use deploying-metadata).
relationship-science-coach
IncludedUse this skill for direct, practical adult relationship coaching: couples conflict, repair, trust, marriage, dating, flirting, attachment patterns, emotional connection, sex, desire differences, eroticism, kink negotiation, affection, love languages, breakups, and long-term passion. Draw on Gottman, EFT and Hold Me Tight, attachment science, modern sex research, Perel, Nagoski, Kerner, Schnarch, Love and Stosny, and flexible love-language tools. Be concrete and low-hedge. Redirect only for imminent danger, abuse, coercive control, minors, non-consent, self-harm, stalking, or medical/legal/psychiatric decisions.
building-sf-integrations
IncludedSalesforce integration architecture and runtime plumbing with 120-point scoring. Use this skill to set up Named Credentials, External Credentials, External Services, REST/SOAP callout patterns, Platform Events, and Change Data Capture. TRIGGER when: user sets up Named Credentials, External Services, REST/SOAP callouts, Platform Events, CDC, or touches .namedCredential-meta.xml files. DO NOT TRIGGER when: Connected App/OAuth config (use configuring-connected-apps), Apex-only logic (use generating-apex), or data import/export (use handling-sf-data).
venue-templates
IncludedAccess comprehensive LaTeX templates, formatting requirements, and submission guidelines for major scientific publication venues (Nature, Science, PLOS, IEEE, ACM), academic conferences (NeurIPS, ICML, CVPR, CHI), research posters, and grant proposals (NSF, NIH, DOE, DARPA). This skill should be used when preparing manuscripts for journal submission, conference papers, research posters, or grant proposals and need venue-specific formatting requirements and templates.
let-fate-decide
IncludedDraws the 12 Houses of the Zodiac Tarot spread to inject entropy into planning when prompts are vague, ambiguous, or casually delegated. Interprets the spread to guide next steps. Use when the user says 'let fate decide', 'YOLO', 'whatever', 'idk', or other nonchalant phrases, makes Yu-Gi-Oh references, or when you are about to arbitrarily pick between multiple reasonable approaches. Prefer over ask-questions-if-underspecified when the user's tone is casual or playful rather than precision-seeking.
net-ops
IncludedCross-platform network troubleshooting (Windows, macOS, Linux) via local or remote shell. Use for: DNS broken, can't resolve hostnames, nslookup/dig works but apps fail, NRPT, WFP, scutil, /etc/resolver, systemd-resolved, /etc/resolv.conf, NetworkManager, VPN DNS leak residue (ProtonVPN/Mullvad/WireGuard/AnyConnect), AV/firewall blocking DNS or DoH, Tailscale DNS interaction, intermittent connectivity, remote diagnostics over SSH.