168 lines · 5.8 KB · TypeScript
RawDownload
import * as NodeServices from "@effect/platform-node/NodeServices";import {  ProviderDriverKind,  ProviderInstanceEnvironmentVariableName,  ProviderInstanceId,  type UsageDay,} from "@t3tools/contracts";import { expect, it } from "@effect/vitest";import * as Effect from "effect/Effect";import * as Layer from "effect/Layer";import * as HttpClient from "effect/unstable/http/HttpClient"; import * as ServerConfig from "../config.ts";import * as ServerSettings from "../serverSettings.ts";import * as UsageService from "./UsageService.ts"; const summaryInput = {  sinceDay: "2026-08-01" as UsageDay,  untilDay: "2026-08-20" as UsageDay,  timeZone: "UTC",} as const; it.layer(NodeServices.layer)("UsageService", (it) => {  it.effect("omits disabled providers from usage summaries", () =>    Effect.gen(function* () {      const usage = yield* UsageService.UsageService;      const summary = yield* usage.readSummary(summaryInput);       const providers = summary.sources.map((source) => source.fingerprint.provider);      expect(providers).toEqual(["codex"]);    }).pipe(      Effect.provide(        UsageService.layer.pipe(          Layer.provideMerge(            Layer.mergeAll(              ServerSettings.ServerSettingsService.layerTest({                providerInstances: {                  [ProviderInstanceId.make("claudeAgent")]: {                    driver: ProviderDriverKind.make("claudeAgent"),                    enabled: false,                    config: {},                  },                },              }),              ServerConfig.layerTest(process.cwd(), { prefix: "t3-usage-test-" }),              Layer.succeed(                HttpClient.HttpClient,                HttpClient.make(() => Effect.die("unexpected usage pricing request")),              ),            ),          ),        ),      ),    ),  );   it.effect("scans the homes of enabled provider instances", () =>    Effect.gen(function* () {      const usage = yield* UsageService.UsageService;      const summary = yield* usage.readSummary(summaryInput);       expect(        summary.sources.map((source) => ({          provider: source.fingerprint.provider,          resolvedHomePath: source.fingerprint.resolvedHomePath,        })),      ).toEqual([        {          provider: "codex",          resolvedHomePath: "/virtual/codex-work/sessions",        },      ]);    }).pipe(      Effect.provide(        UsageService.layer.pipe(          Layer.provideMerge(            Layer.mergeAll(              ServerSettings.ServerSettingsService.layerTest({                providerInstances: {                  [ProviderInstanceId.make("claudeAgent")]: {                    driver: ProviderDriverKind.make("claudeAgent"),                    enabled: false,                    config: {},                  },                  [ProviderInstanceId.make("codex")]: {                    driver: ProviderDriverKind.make("codex"),                    enabled: false,                    config: {},                  },                  [ProviderInstanceId.make("codex-work")]: {                    driver: ProviderDriverKind.make("codex"),                    enabled: true,                    config: {},                    environment: [                      {                        name: ProviderInstanceEnvironmentVariableName.make("CODEX_HOME"),                        value: "/virtual/codex-work",                        sensitive: false,                      },                    ],                  },                  [ProviderInstanceId.make("codex-work-copy")]: {                    driver: ProviderDriverKind.make("codex"),                    enabled: true,                    config: {},                    environment: [                      {                        name: ProviderInstanceEnvironmentVariableName.make("CODEX_HOME"),                        value: "/virtual/codex-work",                        sensitive: false,                      },                    ],                  },                },              }),              ServerConfig.layerTest(process.cwd(), { prefix: "t3-usage-test-" }),              Layer.succeed(                HttpClient.HttpClient,                HttpClient.make(() => Effect.die("unexpected usage pricing request")),              ),            ),          ),        ),      ),    ),  );   it.effect("uses driver defaults when an enabled instance omits config", () =>    Effect.gen(function* () {      const usage = yield* UsageService.UsageService;      const summary = yield* usage.readSummary(summaryInput);       expect(summary.sources.map((source) => source.fingerprint.provider)).toEqual(["codex"]);    }).pipe(      Effect.provide(        UsageService.layer.pipe(          Layer.provideMerge(            Layer.mergeAll(              ServerSettings.ServerSettingsService.layerTest({                providerInstances: {                  [ProviderInstanceId.make("claudeAgent")]: {                    driver: ProviderDriverKind.make("claudeAgent"),                    enabled: false,                    config: {},                  },                  [ProviderInstanceId.make("codex")]: {                    driver: ProviderDriverKind.make("codex"),                    enabled: false,                    config: {},                  },                  [ProviderInstanceId.make("codex-work")]: {                    driver: ProviderDriverKind.make("codex"),                    enabled: true,                  },                },              }),              ServerConfig.layerTest(process.cwd(), { prefix: "t3-usage-test-" }),              Layer.succeed(                HttpClient.HttpClient,                HttpClient.make(() => Effect.die("unexpected usage pricing request")),              ),            ),          ),        ),      ),    ),  );});