The GitHub Actions job "npm_and_yarn in /frontend for dompurify - Update #1521635732" on texera.git/main has failed. Run started by GitHub user dependabot[bot] (triggered by dependabot[bot]).
Head commit for run: 408b33a98a73177ec5175806cef539603dcdb8ed / Meng Wang <[email protected]> test(config-service): cover ConfigService.run in its RunSpec (#7560) ### What changes were proposed in this PR? `ConfigServiceRunSpec` only asserted role annotations on the resource classes, so `ConfigService` itself was never instantiated and the file sat at 0%. Adds four tests that call `run()` against a mocked Dropwizard `Environment`, following `AccessControlServiceRunSpec`. The existing role-annotation assertion is kept. | counter | before | after | | --- | --- | --- | | line | 0/30 | 13/30 | | instruction | 0/171 | 99/171 | | branch | 0/6 | 4/6 | | method | 0/8 | 4/8 | `run()` itself is now fully covered by line; every remaining missed line is in `initialize()` (39-51) or `object ConfigService.main` (95-108), which the issue puts out of scope because #5983 moves that boilerplate into a shared `ServiceBootstrap`. What the tests pin: - the `/api/*` url pattern, the session handler on both the Jersey and servlet environments, and the `HealthCheckResource` / `ConfigResource` registrations; - the auth stack `AuthFeatures.register` installs — `AuthDynamicFeature`, `UnauthorizedExceptionMapper` and `RolesAllowedDynamicFeature` — without which `@Auth` parameters do not resolve and `@RolesAllowed` on the settings endpoints is ignored; - `RequestLoggingFilter.register(environment.getApplicationContext)`, verified as the `addFilter(FilterHolder, "/*", …)` it performs; - the default-settings preload, checked against the database rather than a mock: every entry of `DefaultsConfig.allDefaults` must be present in `site_settings` with its value; - that a preload failure is rethrown rather than swallowed — a service that came up with no settings would look healthy while serving none of them. `run()` ends by writing `default.conf` into `site_settings`, so it needs a live `SqlServer`; mocking the `Environment` alone cannot reach the request-logging filter that follows. The suite therefore mixes in `MockTexeraDB`, which gives it its own embedded database and points `SqlServer` at it — `config-service` already declares `.dependsOn(DAO % "test->test")` for exactly this, and `ConfigResourceSpec` in the same module already does it. The failure case swaps in a `ConnectionProvider` that cannot acquire a connection; `MockTexeraDB`'s fixture reinstalls the healthy context before the next test, so it stays local (the fixture does not truncate tables, so dropping one would not have). The two branches still missed are not application logic: one on the class declaration (`with LazyLogging`, 3/4 arms covered) and the implicit non-`Exception` arm of `case ex: Exception`. No production code was changed. ### Any related issues, documentation, discussions? Closes #7558. ### How was this PR tested? `sbt "ConfigService/testOnly *ConfigServiceRunSpec"` — 5 tests pass, run repeatedly with the same result; `sbt ConfigService/jacoco` over the module is green (38 tests) and gives the table above. The failure path was verified by breaking the url-pattern assertion (red, non-zero exit) and restoring it. `ConfigService/Test/scalafmtCheck` and `ConfigService/Test/scalafix --check` are clean. ### Was this PR authored or co-authored using generative AI tooling? Generated-by: Claude Code (Opus 4.8 [1M context]) Report URL: https://github.com/apache/texera/actions/runs/31563794966 With regards, GitHub Actions via GitBox
