You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@texera.apache.org by GitBox <gi...@apache.org> on 2026/08/14 06:15:02 UTC
[GH] (texera/gh-readonly-queue/main/pr-7631-4013ca74acfefd84d8fc0492fff242f7d9d4442c): Workflow run "Required Checks" is working again!
The GitHub Actions job "Required Checks" on texera.git/gh-readonly-queue/main/pr-7631-4013ca74acfefd84d8fc0492fff242f7d9d4442c has succeeded.
Run started by GitHub user aglinxinyuan (triggered by aglinxinyuan).
Head commit for run:
e4500eb0395e431b9f81279afd7b8cc1c423bf95 / Xinyuan Lin <xi...@uci.edu>
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/31775023822
With regards,
GitHub Actions via GitBox