- Add a test case specifically verifying that `Gitea.SetLabels`
is called with `staging/Auto` when a *new* project PR is created
for submodules.
- Verify `PrjGitDescription` and `SetSubmodulesToMatchPRSet` behave
correctly when a single `PRSet` contains 5+ different package
repositories.
Also,
- Add simple unit tests to verify mapping of `models.StateType`
to internal event strings.
- Verify it correctly wraps `ProcesPullRequest` and handles panics
via the deferred recovery block.
- Add tests for scenarios where `GetRecentPullRequests` fails.
- Verify the random sleep interval logic (can be tested by mocking
`time.Sleep` if refactored, or verifying behavior with interval=0).
- PullRequestWebhookEvent: Verified that PR events correctly
trigger processing with all necessary Gitea and Git mocks.
- IssueCommentWebhookEvent: Verified that issue comment events
(which Gitea often uses for PR comments) are handled correctly.
- Recursion Limit: Verified that the recursion protection logic
correctly terminates and cleans up when the limit is reached.
- Invalid Data Format: Verified that non-event data types return
appropriate errors.
- Add scenarios for closed/merged project PRs that trigger
submodule checks and downstream PR updates (manual merge vs close).
- Test the "Consistency check" logic where submodules are reset
if they don't match the PR set.
- Test the "superfluous PR" check (no-op PRs that should be closed).