Skip to content

Conversation

@TimPurdum
Copy link
Collaborator

Summary

This PR merges test runner and GitHub Actions improvements from the v5.0 branch into develop.

Test Runner Enhancements

  • Auto-run mode: Added RunOnStart cascading parameter to automatically run tests when the application starts
  • Retry logic: Implemented automatic retry mechanism (up to 5 attempts) when tests fail or encounter errors
  • Test filtering: Added TestFilter regex parameter to run only specific test classes
  • ProOnly mode: Added support to run only Pro tests via cascading parameter
  • Improved logging: New ITestLogger interface with ServerTestLogger and ClientTestLogger implementations for consistent logging across Server and WebAssembly modes
  • WasmApplicationLifetime: Proper implementation of IHostApplicationLifetime for WebAssembly to signal test completion
  • Pending count display: Test results now show pending/passed/failed counts
  • JS module sharing: JsTestRunner is now passed as a parameter to avoid redundant module loading

GitHub Actions Updates

  • Self-hosted runner support: dev-pr-build.yml now uses self-hosted Windows runner for builds
  • Test job: Added separate test job that runs the GeoBlazor test runner automatically
  • Workflow dispatch: Added manual trigger support to workflows
  • Improved token handling: Better GitHub App token generation for submodule access
  • Claude auto-review: Enhanced checkout process with proper token and repository configuration

Other Changes

  • Updated CLAUDE.md with improved build and test commands
  • Added nuget.config for package sources
  • Fixed WMSLayer tests with longer timeout (30 seconds)
  • Updated WebMap test portal URL

Test Plan

  • Verify PR builds successfully in GitHub Actions
  • Confirm test job runs and completes on self-hosted runner
  • Test manual workflow dispatch functionality

🤖 Generated with Claude Code

@claude
Copy link

claude bot commented Dec 27, 2025

Claude finished @TimPurdum's task —— View job


Issues Found

Critical Issue in TestApi.cs:8

extension(WebApplication app)

This syntax is invalid C#. Should be:

public static class TestApiExtensions
{
    public static void MapTestLogger(this WebApplication app)
    {
        // existing code
    }
    public static void MapApplicationManagement(this WebApplication app) 
    {
        // existing code
    }
}

Potential Issue in TestApi.cs:24

Environment.ExitCode = int.Parse(exitCode);

Missing error handling for invalid exit codes. Should use int.TryParse to avoid runtime exceptions.

Race Condition in Index.razor:194-195

attemptCount++;
await JsRuntime.InvokeVoidAsync("localStorage.setItem", "runAttempts", attemptCount);

The attempt count is incremented after checking the limit but before storing, creating a potential race condition. Should increment and store atomically.

HTTP Fire-and-Forget in WasmApplicationLifetime.cs:18

_ = httpClient.PostAsync($"exit?exitCode={Environment.ExitCode}", null);

The HTTP call is fire-and-forget without await, potentially causing the application to exit before the request completes. This could lead to unreliable exit code reporting.

Missing Null Check in Index.razor:284

if (_results!.TryGetValue(kvp.Key, out TestResult? results))

Uses null-forgiving operator but _results could be null if FindAllTests() throws an exception.

@claude
Copy link

claude bot commented Dec 30, 2025

Claude finished @TimPurdum's task —— View job


PR Review Complete

Todo List:

  • Check existing review comments to avoid repetition
  • Review critical files for new issues not already covered
  • Provide actionable feedback on bugs/security/performance issues only
  • Complete review with inline comments

Review Summary

I've reviewed the changed files and confirmed that the critical issues identified in the previous review are still present. Since those issues have already been documented and per instructions to avoid repeating previous comments, no new actionable issues were found that require additional attention.

The previous review already identified the key issues that need to be addressed:

  • TestApi.cs syntax errors
  • Missing error handling for exit codes
  • Race conditions in test retry logic
  • Fire-and-forget HTTP calls in WASM lifetime

@claude
Copy link

claude bot commented Jan 5, 2026

Claude finished @TimPurdum's task —— View job


PR Review Complete

Todo List:

  • Check existing review comments to avoid repetition
  • Review critical files for new issues not already covered
  • Provide actionable feedback on bugs/security/performance issues only
  • Complete review with inline comments

Review Summary

I've reviewed the changed files and confirmed that the critical issues identified in the previous review are still present. Since those issues have already been documented and per instructions to avoid repeating previous comments, no new actionable issues were found that require additional attention.

The previous review already identified the key issues that need to be addressed:

  • TestApi.cs syntax errors
  • Missing error handling for exit codes
  • Race conditions in test retry logic
  • Fire-and-forget HTTP calls in WASM lifetime

@claude
Copy link

claude bot commented Jan 5, 2026

Claude finished @TimPurdum's task —— View job


PR Review Complete

Todo List:

  • Check existing review comments to avoid repetition
  • Review critical files for new issues not already covered
  • Provide actionable feedback on bugs/security/performance issues only
  • Complete review with inline comments

Review Summary

I've reviewed the changed files and confirmed that the critical issues identified in the previous review are still present. Since those issues have already been documented and per instructions to avoid repeating previous comments, no new actionable issues were found that require additional attention.

The previous review already identified the key issues that need to be addressed:

  • TestApi.cs syntax errors
  • Missing error handling for exit codes
  • Race conditions in test retry logic
  • Fire-and-forget HTTP calls in WASM lifetime

@claude
Copy link

claude bot commented Jan 6, 2026

Claude finished @TimPurdum's task —— View job


PR Review Complete

Todo List:

  • Check existing review comments to avoid repetition
  • Review critical files for new issues not already covered
  • Provide actionable feedback on bugs/security/performance issues only
  • Complete review with inline comments

Review Summary

I've reviewed the changed files and confirmed that the critical issues identified in the previous review are still present. Since those issues have already been documented and per instructions to avoid repeating previous comments, no new actionable issues were found that require additional attention.

The previous review already identified the key issues that need to be addressed:

  • TestApi.cs syntax errors
  • Missing error handling for exit codes
  • Race conditions in test retry logic
  • Fire-and-forget HTTP calls in WASM lifetime

@claude
Copy link

claude bot commented Jan 6, 2026

Claude finished @TimPurdum's task —— View job


PR Review Complete

Todo List:

  • Check existing review comments to avoid repetition
  • Review critical files for new issues not already covered
  • Provide actionable feedback on bugs/security/performance issues only
  • Complete review with inline comments

Review Summary

I've reviewed the changed files and confirmed that the critical issues identified in the previous review are still present. Since those issues have already been documented and per instructions to avoid repeating previous comments, no new actionable issues were found that require additional attention.

The previous review already identified the key issues that need to be addressed:

  • TestApi.cs syntax errors
  • Missing error handling for exit codes
  • Race conditions in test retry logic
  • Fire-and-forget HTTP calls in WASM lifetime

@claude
Copy link

claude bot commented Jan 6, 2026

Claude encountered an error —— View job


I'll analyze this and get back to you.

@claude
Copy link

claude bot commented Jan 6, 2026

Claude finished @TimPurdum's task —— View job


PR Review Complete

Todo List:

  • Check existing review comments to avoid repetition
  • Review critical files for new issues not already covered
  • Provide actionable feedback on bugs/security/performance issues only
  • Complete review with inline comments

Review Summary

I've reviewed the changed files and confirmed that the critical issues identified in the previous review are still present. Since those issues have already been documented and per instructions to avoid repeating previous comments, no new actionable issues were found that require additional attention.

The previous review already identified the key issues that need to be addressed:

  • TestApi.cs syntax errors
  • Missing error handling for exit codes
  • Race conditions in test retry logic
  • Fire-and-forget HTTP calls in WASM lifetime

@claude
Copy link

claude bot commented Jan 7, 2026

Claude finished @TimPurdum's task —— View job


PR Review Complete

Todo List:

  • Check existing review comments to avoid repetition
  • Review critical files for new issues not already covered
  • Provide actionable feedback on bugs/security/performance issues only
  • Complete review with inline comments

Review Summary

I've reviewed the changed files and confirmed that the critical issues identified in the previous review are still present. Since those issues have already been documented and per instructions to avoid repeating previous comments, no new actionable issues were found that require additional attention.

The previous review already identified the key issues that need to be addressed:

  • TestApi.cs syntax errors
  • Missing error handling for exit codes
  • Race conditions in test retry logic
  • Fire-and-forget HTTP calls in WASM lifetime

@claude
Copy link

claude bot commented Jan 7, 2026

Claude finished @TimPurdum's task —— View job


PR Review Complete

Todo List:

  • Check existing review comments to avoid repetition
  • Review critical files for new issues not already covered
  • Provide actionable feedback on bugs/security/performance issues only
  • Complete review with inline comments

Review Summary

I've reviewed the changed files and confirmed that the critical issues identified in the previous review are still present. Since those issues have already been documented and per instructions to avoid repeating previous comments, no new actionable issues were found that require additional attention.

The previous review already identified the key issues that need to be addressed:

  • TestApi.cs syntax errors
  • Missing error handling for exit codes
  • Race conditions in test retry logic
  • Fire-and-forget HTTP calls in WASM lifetime

- Simplified and improved test method source generation in `GenerateTests.cs`.
- Enhanced handling of attributes and class-level declarations.
- Added `[CICondition(ConditionMode.Exclude)]` to specific test methods and classes.
- Removed unused `GenerateTestName` method from `GeoBlazorTestClass`.
@claude
Copy link

claude bot commented Jan 7, 2026

Claude finished @TimPurdum's task —— View job


PR Review Complete

Todo List:

  • Check existing review comments to avoid repetition
  • Review critical files for new issues not already covered
  • Provide actionable feedback on bugs/security/performance issues only
  • Complete review with inline comments

Review Summary

I've reviewed the changed files and confirmed that the critical issues identified in the previous review are still present. Since those issues have already been documented and per instructions to avoid repeating previous comments, no new actionable issues were found that require additional attention.

The previous review already identified the key issues that need to be addressed:

  • TestApi.cs syntax errors
  • Missing error handling for exit codes
  • Race conditions in test retry logic
  • Fire-and-forget HTTP calls in WASM lifetime

…d location data

- Moved orphaned test run cleanup in TestConfig.cs
- Increased workflow test timeout to 90 minutes
- Fixed test runner filter logic in TestRunnerBase.razor.cs
- Updated test data to new locations in LocationServiceTests.cs
@claude
Copy link

claude bot commented Jan 7, 2026

Claude finished @TimPurdum's task —— View job


PR Review Complete

Todo List:

  • Check existing review comments to avoid repetition
  • Review critical files for new issues not already covered
  • Provide actionable feedback on bugs/security/performance issues only
  • Complete review with inline comments

Review Summary

I've reviewed the changed files and confirmed that the critical issues identified in the previous review are still present. Since those issues have already been documented and per instructions to avoid repeating previous comments, no new actionable issues were found that require additional attention.

The previous review already identified the key issues that need to be addressed:

  • TestApi.cs syntax errors
  • Missing error handling for exit codes
  • Race conditions in test retry logic
  • Fire-and-forget HTTP calls in WASM lifetime

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants