@teamscala/service-boot 0.23.502 → 0.23.505
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/agreement-gate/signing-shell.test.ts +9 -15
- package/src/agreement-gate.test.ts +8 -15
- package/src/asset-proxy.test.ts +9 -9
- package/src/attach-portal-members.test.ts +9 -13
- package/src/attach-transfers-upload.test.ts +9 -10
- package/src/auth-gate.test.ts +8 -7
- package/src/build-client-assets/manifest.test.ts +8 -14
- package/src/build-client-assets/source-candidates.test.ts +9 -11
- package/src/build-client-assets/sourcemaps-upload.test.ts +8 -15
- package/src/build-client-assets/styles-build.test.ts +9 -15
- package/src/build-client-assets.test.ts +8 -12
- package/src/capability-slug.test.ts +9 -0
- package/src/compose-page-title.test.ts +8 -9
- package/src/content-gate/catalog.test.ts +8 -8
- package/src/content-gate/token.test.ts +8 -13
- package/src/content-page-floor.test.ts +9 -11
- package/src/csrf-body-limit.test.ts +9 -15
- package/src/handlers/messaging-send-reconcile-logic.test.ts +9 -11
- package/src/handlers/messaging-send-recording-logic.test.ts +9 -9
- package/src/handlers/messaging-send-recording-watch.test.ts +9 -11
- package/src/handlers/messaging-send-sweep-selection.test.ts +9 -7
- package/src/handlers/platform-fault-escalation/probe.test.ts +9 -10
- package/src/handlers/platform-fault-escalation-refresh.test.ts +9 -22
- package/src/handlers/platform-fault-escalation.test.ts +9 -10
- package/src/handlers/scala-tools-currency-watch.test.ts +9 -0
- package/src/handlers/singleton-tools-currency-watch.test.ts +9 -0
- package/src/handlers/whatsapp-liveness-handler.test.ts +9 -12
- package/src/handlers/whatsapp-liveness.test.ts +9 -9
- package/src/interpolate-meta.ts +123 -0
- package/src/is-react-element-type.test.ts +8 -9
- package/src/loader-errors.ts +41 -0
- package/src/module-not-found.test.ts +8 -12
- package/src/mount-orpc-router.test.ts +8 -9
- package/src/page-server-orpc/server-client.test.ts +8 -17
- package/src/read-html-template.test.ts +8 -12
- package/src/register-page-server-client.ts +13 -1
- package/src/register-registry-page-route/apply-page-branding.test.ts +8 -19
- package/src/register-registry-page-route/captured-loader-config.test.ts +9 -13
- package/src/register-registry-page-route/graph-cache.test.ts +9 -12
- package/src/register-registry-page-route/live-loader-config.test.ts +8 -24
- package/src/register-registry-page-route/meta-title.ts +1 -1
- package/src/register-registry-page-route/page-data-shared.test.ts +9 -12
- package/src/register-registry-page-route/public-shell-page-data.test.ts +8 -19
- package/src/register-registry-page-route/resolve-entity-title.test.ts +8 -7
- package/src/register-registry-page-route/resolve-page-data.test.ts +9 -13
- package/src/register-registry-page-route/resolve-request-graph.test.ts +9 -13
- package/src/resolve-from-loader-config.test.ts +10 -14
- package/src/resolve-from-loader-config.ts +28 -115
- package/src/resolve-service-port.test.ts +8 -12
- package/src/resolvers/app-header.test.ts +9 -5
- package/src/resolvers/fetch-org-brand.ts +18 -2
- package/src/resolvers/portal-route-paths.test.ts +8 -13
- package/src/resource-chat-inject.page-assistant.test.ts +8 -28
- package/src/resource-chat-inject.test.ts +8 -25
- package/src/resource-not-found.test.ts +9 -8
- package/src/security-headers.test.ts +9 -12
- package/src/select-service-routes.test.ts +9 -0
- package/src/server-error-page.test.ts +8 -10
- package/src/theme-fonts-link.test.ts +8 -10
- package/src/two-phase-full-app.test.ts +8 -16
- package/src/two-phase-health-gate-client-only.test.ts +8 -28
- package/src/two-phase-health-gate.test.ts +8 -28
|
@@ -1,31 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
* Separate file from `two-phase-health-gate.test.ts` on purpose: `fullAppReady`
|
|
10
|
-
* is module state that only transitions false -> true and has no reset hook, so
|
|
11
|
-
* the two ready-paths cannot both be exercised in one module instance. A reset
|
|
12
|
-
* hook would exist only for tests.
|
|
13
|
-
*
|
|
14
|
-
* THE REGRESSION THIS LOCKS (measured 2026-08-07 on scala-agents-ui). Readiness
|
|
15
|
-
* used to be flipped INSIDE `setPageHandler`, which was honest while every
|
|
16
|
-
* service was SSR. `render_mode=client` made a service that completes phase 2
|
|
17
|
-
* and never calls it, so `/health` answered `{"status":"starting"}` FOREVER
|
|
18
|
-
* while the process was healthy and serving — boot completed in 5023ms, "Full
|
|
19
|
-
* app built: 50 block(s)" logged, `GET /` correctly 302'd to sign-in, and three
|
|
20
|
-
* untouched UI services reported ok beside it.
|
|
21
|
-
*
|
|
22
|
-
* That is precisely what `readiness-gated-boot` forbids ("binary: fully-ready or
|
|
23
|
-
* cleanly-unavailable"): a permanently-un-ready health signal makes the
|
|
24
|
-
* activator's wake gate and every health-gated router treat a working service as
|
|
25
|
-
* down. Exercised through a real Hono request against the REAL exported handler
|
|
26
|
-
* (`proxy-is-not-behaviour`) — a source grep would prove the call exists, never
|
|
27
|
-
* that the endpoint answers 200.
|
|
28
|
-
*/
|
|
1
|
+
// ! @system codegen
|
|
2
|
+
// ! @status generated
|
|
3
|
+
// ! @edit change the suite in the owned-suites band, then re-run codegen. Hand-edits are overwritten.
|
|
4
|
+
// !
|
|
5
|
+
// ! This suite's assertions are OWNED by the codegen band: the band module
|
|
6
|
+
// ! carries them verbatim, this file is the emission, and hand edits here are
|
|
7
|
+
// ! overwritten on the next run. The rationale each assertion carries moved
|
|
8
|
+
// ! with it into the band.
|
|
29
9
|
|
|
30
10
|
import { beforeAll, describe, expect, test } from "bun:test";
|
|
31
11
|
import { Hono } from "hono";
|
|
@@ -1,31 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
* Exercised through a real Hono request against the REAL exported handler, not
|
|
10
|
-
* asserted against source text — `proxy-is-not-behaviour`: a source grep proves
|
|
11
|
-
* a line exists, never that the endpoint answers 503. This test fails if anyone
|
|
12
|
-
* restores the flat `{status:"ok"}`, which is the regression it locks.
|
|
13
|
-
*
|
|
14
|
-
* THE MEASURED OUTAGE (2026-07-31, quiz-dev + sign-dev returning 503 to
|
|
15
|
-
* customers). `scala-activator` gates a cold wake on `isHealthy(port)` — a
|
|
16
|
-
* plain `GET /health` — then pipes the held client connection the moment it
|
|
17
|
-
* returns ok. `/health` answered ok as soon as the MINIMAL app served, but the
|
|
18
|
-
* phase-1 page handler returns 503 until the phase-2 swap, so the activator
|
|
19
|
-
* piped the customer's first request into that window:
|
|
20
|
-
*
|
|
21
|
-
* 05:58:25.446 activator: awake scala-quiz (4227ms)
|
|
22
|
-
* 05:58:25.452 scala-quiz: GET / 503 3ms <- the customer's request
|
|
23
|
-
* 05:58:26.456 scala-quiz: Swapped from minimal app to full app
|
|
24
|
-
*
|
|
25
|
-
* Nine such 503s on scala-quiz, two on scala-sign, zero on scala-public — the
|
|
26
|
-
* gap is a race whose width is the phase-1→phase-2 build time (1420ms cold,
|
|
27
|
-
* 137ms warm), which is why one app looked healthy and the others did not.
|
|
28
|
-
*/
|
|
1
|
+
// ! @system codegen
|
|
2
|
+
// ! @status generated
|
|
3
|
+
// ! @edit change the suite in the owned-suites band, then re-run codegen. Hand-edits are overwritten.
|
|
4
|
+
// !
|
|
5
|
+
// ! This suite's assertions are OWNED by the codegen band: the band module
|
|
6
|
+
// ! carries them verbatim, this file is the emission, and hand edits here are
|
|
7
|
+
// ! overwritten on the next run. The rationale each assertion carries moved
|
|
8
|
+
// ! with it into the band.
|
|
29
9
|
|
|
30
10
|
import { beforeAll, describe, expect, test } from "bun:test";
|
|
31
11
|
import { Hono } from "hono";
|