The GitHub Actions job "Required Checks" on 
texera.git/gh-readonly-queue/main/pr-7615-310ab88e4c78da14182284199bde34a1d22d489b
 has succeeded.
Run started by GitHub user aglinxinyuan (triggered by aglinxinyuan).

Head commit for run:
3da8f6a7fe7ea63f8ce94b6397e7f8848b30d62e / Xinyuan Lin <[email protected]>
test(amber): cover the web application's bootstrap and filters (#7615)

### What changes were proposed in this PR?

`TexeraWebApplication` had no spec and sat at **0% of 76 lines**. It
assembles the public web service — the asset bundle serving the built
frontend, the collaboration websocket endpoint, the CORS and
cache-control filters, the request log, and the 404-to-index rule behind
Angular's deep links — and none of it was verified.

Adds 14 tests, taking it to **88.2% of lines** (67/76). `initialize()`
and `run()` are driven against a real Dropwizard `Environment`, and
every assertion inspects the wiring they leave behind.

### Verification

28 mutations applied and reverted, production diff empty each time.

**Reviewing the tests then found two that claimed more than they
pinned**, which is the part worth reading:

| Weakness | Why it passed | Fix |
|---|---|---|
| the asset test asserted only the servlet mapping | `FileAssetsBundle`
takes three arguments and only the uriPath was observed — point it at a
directory that does not exist and the servlet is still registered at
`/*`, it just serves nothing, while the test's name claims it serves the
frontend from the filesystem | assert `getIndexFile`, and read
`resourcePath` reflectively |
| both request-log tests pinned the guard, not the level | move the
emission to WARN and both still pass: at INFO the guard holds and the
appender collects an identical line, at WARN the guard stops it and the
suppression test still sees nothing | the helper now returns the logging
events, and the test asserts `Level.INFO` |

Three mutations confirm the fixes: a missing asset directory, a
different index file, and the access line emitted at WARN — all red,
where the first two and the level were green before.

### Deliberately not included

- **`main()`** binds a port; **one unused logger** is the other
uncovered line.
- **The ordering of `chain.doFilter` against the logging block.** In
production, moving it would make every access line report a status that
has not been written yet — but the fixture's response is a
`java.lang.reflect.Proxy` answering `getStatus` with a constant, so no
assertion built on it can see the difference. Recorded rather than
papered over with a test that cannot fail.

No production file is touched.

### Any related issues, documentation, discussions?

Closes #7614

### How was this PR tested?

```
STORAGE_ICEBERG_CATALOG_TYPE=postgres sbt "WorkflowExecutionService/testOnly 
org.apache.texera.web.TexeraWebApplicationSpec"
```

```
[info] Total number of tests run: 14
[info] Tests: succeeded 14, failed 0, canceled 0, ignored 0, pending 0
```

`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/31668885917

With regards,
GitHub Actions via GitBox

Reply via email to