authorgravatar for julius0216@outlook.comJulius Marminge <julius0216@outlook.com> 2026-09-05 00:26:54-07:00
committergravatar for noreply@github.comGitHub <noreply@github.com> 2026-09-05 00:26:54-07:00
log1584076d7651278863f7ee90f5bf70c2aba981b3
tree81062a70838d10ea053d3325392667ad3ec59150
parent8d48a3134f4d789f54128ccbb65919812ffc7921
signature Signed by PGP key B5690EEEBB952194

refactor(shared): keep persisted settings helpers private (#10004)


2 files changed, 15 insertions(+), 24 deletions(-)

packages/shared/src/serverSettings.test.ts+13-22
......@@ -11,43 +11,34 @@ import { resolveServerBackgroundActivitySettings } from "./backgroundActivitySet
1111import { createModelSelection } from "./model.ts";
1212import {
1313 applyServerSettingsPatch,
14 extractPersistedServerObservabilitySettings,
1514 isModelSelectionProviderEnabled,
16 normalizePersistedServerSettingString,
1715 parsePersistedServerObservabilitySettings,
1816 resolveSourceControlWriterModelSelection,
1917} from "./serverSettings.ts";
2018
2119describe("serverSettings helpers", () => {
22 it("normalizes optional persisted strings", () => {
23 expect(normalizePersistedServerSettingString(undefined)).toBeUndefined();
24 expect(normalizePersistedServerSettingString(" ")).toBeUndefined();
25 expect(normalizePersistedServerSettingString(" http://localhost:4318/v1/traces ")).toBe(
26 "http://localhost:4318/v1/traces",
27 );
28 });
29
30 it("extracts persisted observability settings", () => {
20 it("ignores missing and blank persisted observability URLs", () => {
21 expect(parsePersistedServerObservabilitySettings("{}")).toEqual({
22 otlpTracesUrl: undefined,
23 otlpMetricsUrl: undefined,
24 });
3125 expect(
32 extractPersistedServerObservabilitySettings({
33 observability: {
34 otlpTracesUrl: " http://localhost:4318/v1/traces ",
35 otlpMetricsUrl: " http://localhost:4318/v1/metrics ",
36 },
37 }),
26 parsePersistedServerObservabilitySettings(
27 JSON.stringify({ observability: { otlpTracesUrl: " ", otlpMetricsUrl: "" } }),
28 ),
3829 ).toEqual({
39 otlpTracesUrl: "http://localhost:4318/v1/traces",
40 otlpMetricsUrl: "http://localhost:4318/v1/metrics",
30 otlpTracesUrl: undefined,
31 otlpMetricsUrl: undefined,
4132 });
4233 });
4334
44 it("parses lenient persisted settings JSON", () => {
35 it("parses lenient persisted settings JSON and trims observability URLs", () => {
4536 expect(
4637 parsePersistedServerObservabilitySettings(
4738 JSON.stringify({
4839 observability: {
49 otlpTracesUrl: "http://localhost:4318/v1/traces",
50 otlpMetricsUrl: "http://localhost:4318/v1/metrics",
40 otlpTracesUrl: " http://localhost:4318/v1/traces ",
41 otlpMetricsUrl: " http://localhost:4318/v1/metrics ",
5142 },
5243 }),
5344 ),
packages/shared/src/serverSettings.ts+2-2
......@@ -69,14 +69,14 @@ export interface PersistedServerObservabilitySettings {
6969 readonly otlpMetricsUrl: string | undefined;
7070}
7171
72export function normalizePersistedServerSettingString(
72function normalizePersistedServerSettingString(
7373 value: string | null | undefined,
7474): string | undefined {
7575 const trimmed = value?.trim();
7676 return trimmed && trimmed.length > 0 ? trimmed : undefined;
7777}
7878
79export function extractPersistedServerObservabilitySettings(input: {
79function extractPersistedServerObservabilitySettings(input: {
8080 readonly observability?: {
8181 readonly otlpTracesUrl?: string;
8282 readonly otlpMetricsUrl?: string;