Skip to content
Source
Sign inSign up
Open History to see the last commit

relayTracing.test.ts

44 lines1.5 KB

1import * as NodeServices from "@effect/platform-node/NodeServices";
2import { assert, it } from "@effect/vitest";
3import type { ManagedPolicyDocument } from "@t3tools/contracts";
4import * as RelayTracing from "@t3tools/shared/relayTracing";
5import * as Effect from "effect/Effect";
6import * as Layer from "effect/Layer";
7import * as Option from "effect/Option";
8import { FetchHttpClient } from "effect/http";
9​
10import * as ServerConfig from "../config.ts";
11import * as ManagedPolicy from "../policy/ManagedPolicy.ts";
12import { relayLayer } from "./relayTracing.ts";
13​
14const tracesTo = (policy?: ManagedPolicyDocument) =>
15 Effect.service(RelayTracing.RelayClientTracer).pipe(
16 Effect.provide(
17 relayLayer(
18 { serviceName: "t3code-server", runtime: "node", client: "environment-server" },
19 { tracesUrl: "https://traces.example.com", tracesDataset: "relay", tracesToken: "token" },
20 ).pipe(
21 Layer.provide(ManagedPolicy.layerTest(policy)),
22 Layer.provide(
23 ServerConfig.layerTest(process.cwd(), { prefix: "t3-relay-tracing-" }).pipe(
24 Layer.provide(NodeServices.layer),
25 ),
26 ),
27 Layer.provide(FetchHttpClient.layer),
28 ),
29 ),
30 Effect.map(Option.isSome),
31 );
32​
33it.effect("a policy with telemetry off stops relay tracing to T3 Connect", () =>
34 Effect.gen(function* () {
35 assert.isTrue(yield* tracesTo());
36 assert.isFalse(
37 yield* tracesTo({
38 schemaVersion: 1,
39 organization: "Example Corp",
40 limits: { telemetry: false },
41 }),
42 );
43 }),
44);