The GitHub Actions job "Required Checks" on texera.git/main has failed. Run started by GitHub user github-merge-queue[bot] (triggered by github-merge-queue[bot]).
Head commit for run: e4500eb0395e431b9f81279afd7b8cc1c423bf95 / Xinyuan Lin <[email protected]> test(amber): cover the mail resource's address guard and admin fan-out (#7631) ### What changes were proposed in this PR? `GmailResource` sat at **31.2% of 77 lines** in isolation. Despite the name this is a **javax.mail/SMTP** resource, not a Google-OAuth one — no `GoogleCredential`, no token exchange, no `clientId`, and the only credential is an SMTP app password consumed inside an `Authenticator` callback that never fires without a socket. Nothing worth testing here was credential-gated. Adds 4 tests to the existing spec, taking it to **61.0%** (Codecov-style; 85.7% JaCoCo line). No socket is opened — the existing `requireNoRealGmailSender()` guard is kept and called from every new test that reaches `sendEmail`. Covered: the recipient-format guard clause by clause, and the admin fan-out driven through `MockTexeraDB`. ### Verification 9 mutations applied and reverted, production diff empty each time. The interesting ones: | Mutation | Result | |---|---| | role filter `ADMIN` → `REGULAR` | red — the REGULAR decoy row exists to make this visible | | `while (hasNext)` → notify only the first admin | red — which is why the fixture holds two admins | | `while` → `do/while` (assume at least one admin) | red on the empty-table test | | the TLD floor `{2,}` → `{1,}` | red | | the null short-circuit dropped | red (NPE) | | the regex replaced with `"^$"` (reject everything) | red — and the six-case malformed list stayed **green**, which is exactly why its companion test exists | | the notification payload swapped for the raw request | **survives** — see below | One mutation exposed a coupling in my own fixture rather than a defect: loosening the domain regex made the seeded `…@localhost` admin addresses deliverable, which false-reddened the fan-out test. The fixture now uses addresses with no `@` at all, so the fan-out is no longer coupled to the regex's domain rules, and every mutation was re-run afterwards. ### Deliberately not included - **The notification payload.** Replacing the whole `userRegistrationNotification(...)` construction with the incoming request leaves the suite green: `sendEmail` is on the companion object so nothing can intercept what it received, and the only offline observable is which address it rejected. The builder's contract — including its `toAdmin` branch — is **already pinned by `EmailTemplateSpec`**, which is where it belongs, so this is recorded rather than duplicated. - **`getSenderEmail`.** The analyst's plan listed this as a win; I disagree and dropped it. Both `UserSystemConfig.gmail` and `smtpPassword` default to `""` in an unconfigured JVM, so the only available assertion cannot distinguish this endpoint from one that leaks the SMTP password. A test there would be vacuous. - **Two `catch` arms in `notifyUnauthorizedUser`** are unreachable — `sendEmail` wraps everything in a `Try` and returns a `Left`, never throwing. A comment says so and tells the next reader to delete them rather than reach them. - **The applicant acknowledgement, `createMimeMessage`'s tail, and the `withDomain` `Some` arm** — the first has no observable effect offline, the second arms `Transport.send` on the next statement, and the third needs `Test/envVars` in `build.sbt`, which would perturb every other spec. No production file is touched. ### Any related issues, documentation, discussions? Closes #7630 ### How was this PR tested? ``` STORAGE_ICEBERG_CATALOG_TYPE=postgres sbt "WorkflowExecutionService/testOnly org.apache.texera.web.resource.GmailResourceSpec" ``` ``` [info] Total number of tests run: 8 [info] Tests: succeeded 8, failed 0, canceled 0, ignored 0, pending 0 ``` 4 new on top of the existing 4. `Test/scalafmtCheck` and `Test/scalafix --check` both pass. ### Was this PR authored or co-authored using generative AI tooling? Generated-by: Claude Code (Opus 5) Report URL: https://github.com/apache/texera/actions/runs/31775665285 With regards, GitHub Actions via GitBox
