import { describe, expect, it } from "vitest";
import { capability } from "@awp/contracts";
import { can, narrowCapabilities } from "@awp/domain";

describe("capability narrowing", () => {
  it("can narrow but never broaden a capability ceiling", () => {
    const read = capability("project.read");
    const merge = capability("merge.execute");
    const deploy = capability("deployment.promote");
    expect(narrowCapabilities([read, merge], [read, deploy])).toEqual([read]);
    expect(can(narrowCapabilities([read, merge], [read, deploy]), deploy)).toBe(false);
  });
});
