ConusAI vendor v0.1.0-dev.20261027+9b1131fb
ci / gate (push) Waiting to run

This commit is contained in:
ConusAI vendor v0.1.0-dev.20261027+9b1131fb
2026-10-27 18:05:17 +00:00
commit 3102273ec7
538 changed files with 80203 additions and 0 deletions
+69
View File
@@ -0,0 +1,69 @@
// SPDX-License-Identifier: LicenseRef-ConusAI-Template-1.0
// The browser half of observability (plan item AT4.2): `instrumentation-client.ts` starts
// @conusai-sdk/observe only when the server wrote the settings into the document, with the options this
// app chose, and an error boundary reports through the same instance. The SDK is the real one with
// the recording transport of @conusai-sdk/observe-testing, so what is asserted is what would be sent.
import { createTestObserve } from "@conusai-sdk/observe-testing"
import { describe, expect, it, vi } from "vitest"
import {
browserObserveOptions,
observeMeta,
readBrowserSettings,
reportClientError,
startBrowserObserve,
} from "../apps/web/src/observe/browser.js"
/** A document with the meta element the server writes, as far as the module reads one. */
const documentWith = (attributes: Record<string, string> | undefined) => ({
querySelector: (selector: string) =>
attributes && selector === 'meta[name="app-observe"]'
? { getAttribute: (name: string) => attributes[name] ?? null }
: null,
})
describe("the settings the server writes into the document", () => {
it("round-trips through the meta element", () => {
const settings = { release: "2026.10.1", environment: "preview" }
expect(readBrowserSettings(documentWith(observeMeta(settings)) as never)).toEqual(settings)
})
it("reads nothing from a document without the element, or with it off", () => {
expect(readBrowserSettings(documentWith(undefined) as never)).toBeUndefined()
expect(readBrowserSettings(documentWith({ content: "off" }) as never)).toBeUndefined()
})
it("names neither ConusAI nor a build-time variable: the element is the app's own", () => {
expect(JSON.stringify(observeMeta({ release: "r", environment: "e" })).toLowerCase()).not.toContain("conusai")
})
})
describe("starting the browser SDK", () => {
it("starts nothing when the deployment has no observability", () => {
const start = vi.fn()
expect(startBrowserObserve(documentWith(undefined) as never, start)).toBeUndefined()
expect(start).not.toHaveBeenCalled()
})
it("starts the SDK with the release and environment the server wrote, anonymously, errors and traces only", () => {
const start = vi.fn((options) => createTestObserve({ ...options, modules: { errors: false } }))
startBrowserObserve(documentWith(observeMeta({ release: "r-9", environment: "production" })) as never, start)
expect(start).toHaveBeenCalledWith(
expect.objectContaining({ release: "r-9", environment: "production", consent: "anonymous" }),
)
const options = start.mock.calls[0]?.[0]
expect(options?.modules).toEqual({ traces: true })
expect(options?.modules).not.toHaveProperty("analytics")
expect(options?.modules).not.toHaveProperty("replay")
expect(browserObserveOptions({ release: "r-9", environment: "production" })).toEqual(options)
})
it("sends an error a boundary caught, through the instance the page started", () => {
const instance = createTestObserve({ modules: { errors: false } })
startBrowserObserve(documentWith(observeMeta({ release: "r", environment: "e" })) as never, () => instance)
reportClientError(new Error("the page threw"))
expect(instance.mock.kinds()).toContain("error")
const [item] = instance.mock.items()
expect(JSON.stringify(item)).toContain("the page threw")
})
})