import { describe, expect, it } from "vitest";
import { ConfigSchema, resolveWorkspaceId, type AppConfig } from "../src/index.js";

const cfg: AppConfig = ConfigSchema.parse({
  auto_submit: true,
  notify: ["terminal"],
  workspace: { default: "team-a" },
  backend: {
    host: "127.0.0.1",
    port: 7741,
    dbPath: "~/.local/share/openhandoff/handoff.db",
    opencode_poll_interval: 2,
    github_poll_interval: 30,
    backup_interval_secs: 3600,
    backup_retention_days: 7,
  },
  providers: {
    daytona: { image: "ubuntu:24.04" },
  },
});

describe("resolveWorkspaceId", () => {
  it("prefers explicit flag", () => {
    expect(resolveWorkspaceId("feature", cfg)).toBe("feature");
  });

  it("falls back to config default", () => {
    expect(resolveWorkspaceId(undefined, cfg)).toBe("team-a");
  });

  it("falls back to literal default when config value is empty", () => {
    const empty = {
      ...cfg,
      workspace: { default: "" },
    } as AppConfig;

    expect(resolveWorkspaceId(undefined, empty)).toBe("default");
  });
});
