| 1 | import assert from "node:assert/strict"; |
| 2 | import { test } from "node:test"; |
| 3 | |
| 4 | import { originOf, workspaceRepos } from "./new-item.ts"; |
| 5 | |
| 6 | test("a new work item may land in its own workspace's repositories, each once", () => { |
| 7 | const projects = [ |
| 8 | { repository: "acme/web" }, |
| 9 | { repository: null }, |
| 10 | { repository: "Acme/Web" }, |
| 11 | { repository: "acme/api" }, |
| 12 | // Shared with someone from another workspace: not this one's to land in. |
| 13 | { repository: "other/tool" }, |
| 14 | ]; |
| 15 | assert.deepEqual(workspaceRepos("acme", projects), ["acme/web", "acme/api"]); |
| 16 | assert.deepEqual(workspaceRepos("beta", projects), []); |
| 17 | }); |
| 18 | |
| 19 | test("a new work item is filed from a repository of its workspace, by name or path", () => { |
| 20 | assert.equal(originOf("acme", "web"), "acme/web"); |
| 21 | assert.equal(originOf("acme", "Acme/web"), "acme/web"); |
| 22 | assert.equal(originOf("acme", "other/web"), null); |
| 23 | assert.equal(originOf("acme", ""), null); |
| 24 | assert.equal(originOf("acme", undefined), null); |
| 25 | }); |