| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- import { describe, expect, test } from "bun:test"
- import { getAdapter, registerAdapter } from "../../src/control-plane/adapters"
- import { ProjectV2 } from "@kirincode-ai/core/project"
- import type { WorkspaceInfo } from "../../src/control-plane/types"
- function info(projectID: WorkspaceInfo["projectID"], type: string): WorkspaceInfo {
- return {
- id: "workspace-test" as WorkspaceInfo["id"],
- type,
- name: "workspace-test",
- branch: null,
- directory: null,
- extra: null,
- projectID,
- }
- }
- function adapter(dir: string) {
- return {
- name: dir,
- description: dir,
- configure(input: WorkspaceInfo) {
- return input
- },
- async create() {},
- async remove() {},
- target() {
- return {
- type: "local" as const,
- directory: dir,
- }
- },
- }
- }
- describe("control-plane/adapters", () => {
- test("isolates custom adapters by project", async () => {
- const type = `demo-${Math.random().toString(36).slice(2)}`
- const one = ProjectV2.ID.make(`project-${Math.random().toString(36).slice(2)}`)
- const two = ProjectV2.ID.make(`project-${Math.random().toString(36).slice(2)}`)
- registerAdapter(one, type, adapter("/one"))
- registerAdapter(two, type, adapter("/two"))
- expect(await (await getAdapter(one, type)).target(info(one, type))).toEqual({
- type: "local",
- directory: "/one",
- })
- expect(await (await getAdapter(two, type)).target(info(two, type))).toEqual({
- type: "local",
- directory: "/two",
- })
- })
- test("latest install wins within a project", async () => {
- const type = `demo-${Math.random().toString(36).slice(2)}`
- const id = ProjectV2.ID.make(`project-${Math.random().toString(36).slice(2)}`)
- registerAdapter(id, type, adapter("/one"))
- expect(await (await getAdapter(id, type)).target(info(id, type))).toEqual({
- type: "local",
- directory: "/one",
- })
- registerAdapter(id, type, adapter("/two"))
- expect(await (await getAdapter(id, type)).target(info(id, type))).toEqual({
- type: "local",
- directory: "/two",
- })
- })
- })
|