Skip to content

Where people and agents ship software together. The open-source git platform for the whole job: issues, agents, checks and deploys to the edge.

25 linesCodeBlameRaw
1import assert from "node:assert/strict";
2import { test } from "node:test";
3
4import { originOf, workspaceRepos } from "./new-item.ts";
5
6test("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
19test("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});