summaryrefslogtreecommitdiffhomepage
path: root/packages/provider-umans/src/resolver.test.ts
blob: 47d436ec72b765a30d7bf4ae0ca80e3674f79c64 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
import { describe, expect, it } from "vitest";
import { resolveUmansConfig } from "./resolver.js";

describe("resolveUmansConfig", () => {
	it("activate uses UMANS_BASE_URL override when set (default otherwise)", () => {
		const override = resolveUmansConfig(
			{ UMANS_API_KEY: "sk-test", UMANS_BASE_URL: "https://custom.example.com/v1" },
			undefined,
		);
		expect(override?.baseURL).toBe("https://custom.example.com/v1");

		const fallback = resolveUmansConfig({ UMANS_API_KEY: "sk-test" }, undefined);
		expect(fallback?.baseURL).toBe("https://api.code.umans.ai/v1");
	});

	it('activate uses config provider.umans.model → UMANS_MODEL → "umans-coder" resolution', () => {
		// config wins over env + default
		const fromConfig = resolveUmansConfig(
			{ UMANS_API_KEY: "sk-test", UMANS_MODEL: "env-model" },
			"config-model",
		);
		expect(fromConfig?.model).toBe("config-model");

		// env wins when config is absent
		const fromEnv = resolveUmansConfig(
			{ UMANS_API_KEY: "sk-test", UMANS_MODEL: "env-model" },
			undefined,
		);
		expect(fromEnv?.model).toBe("env-model");

		// default when neither is set
		const fromDefault = resolveUmansConfig({ UMANS_API_KEY: "sk-test" }, undefined);
		expect(fromDefault?.model).toBe("umans-coder");
	});

	it("returns null when UMANS_API_KEY is unset", () => {
		expect(resolveUmansConfig({}, undefined)).toBeNull();
	});

	it("returns null when UMANS_API_KEY is empty string", () => {
		expect(resolveUmansConfig({ UMANS_API_KEY: "" }, undefined)).toBeNull();
	});
});