Public: anyone can read this; the crew can change it.

Sentinel: shared:01m23vygyffx5hg2f5vm8r74sr:3fnbnavt3j is past its budget: trevato/forge: "the upstream in the terminal > an admin sees the row, checks now, and turns following off and on" faile… #8350

Merged opened this

Check · Review · Land · Live done — Landed and live in production.

Merged

scout/forge:scout/8348-sentinel-shared-01m23vygyffx5hg2f5vm8r74 → main 1 commit fork 1 thread · 1 unresolved

  • Merged. scout/8348-sentinel-shared-01m23vygyffx5hg2f5vm8r74 was merged into main as c7c8201.

Review

Sign in to review this change.
1 file changed +8 −5
test/tui-upstream.test.ts +8 −5
@@ -26,7 +26,8 @@ describe("the upstream in the terminal", () => {
2626 let repo: Repo;
2727
2828 function boot(identity: TuiIdentity) {
29 const terminal = headlessTerminal(120, 40);
29 // Wide, so the footer lists every key the card offers instead of cutting the tail.
30 const terminal = headlessTerminal(300, 40);

300 columns hides the footer truncation instead of fixing it. This is fine for this flake, but file the footer wrap/scroll as its own issue.

3031 const { app } = createForgeApp(forge, identity, { terminal, exitHooks: false });
3132 app.start();
3233 const press = async (...keys: string[]): Promise<void> => {
@@ -55,6 +56,8 @@ describe("the upstream in the terminal", () => {
5556 ...(user === undefined ? {} : { user }),
5657 });
5758
59 // The upstream is a loopback address: the guard refuses it before any lookup
60 // or connection, so the check never waits on DNS or the network.
5861 beforeAll(async () => {
5962 dataDir = await mkdtemp(join(tmpdir(), "forge-tui-upstream-"));
6063 forge = createApp({ dataDir, port: 0 });
@@ -75,7 +78,7 @@ describe("the upstream in the terminal", () => {
7578 repo = made.value;
7679 putFollow(forge.db, {
7780 repoId: repo.id,
78 url: "https://example.invalid/owner/armature.git",
81 url: "https://127.0.0.1/owner/armature.git",
7982 branch: "main",
8083 enabled: true,
8184 byId: alice.id,
@@ -94,7 +97,7 @@ describe("the upstream in the terminal", () => {
9497 try {
9598 await openAbout(h);
9699 expect(h.text()).not.toContain("upstream");
97 expect(h.text()).not.toContain("example.invalid");
100 expect(h.text()).not.toContain("127.0.0.1");
98101 await h.press("f");
99102 await h.press("u");
100103 expect(getFollow(forge.db, repo.id)?.enabled).toBe(true);
@@ -130,7 +133,7 @@ describe("the upstream in the terminal", () => {
130133 const h = boot(as(alice));
131134 try {
132135 await openAbout(h);
133 expect(h.text()).toMatch(/upstream +example\.invalid\/owner\/armature main/);
136 expect(h.text()).toMatch(/upstream +127\.0\.0\.1\/owner\/armature main/);
134137 expect(h.text()).toContain("check upstream now");
135138 await h.press("u");
136139 await settleUntil(h.app, "could not be read");
@@ -141,7 +144,7 @@ describe("the upstream in the terminal", () => {
141144 expect(h.text()).not.toContain("check upstream now");
142145 await h.press("f");
143146 expect(getFollow(forge.db, repo.id)?.enabled).toBe(true);
144 expect(h.text()).toMatch(/upstream +example\.invalid/);
147 expect(h.text()).toMatch(/upstream +127\.0\.0\.1/);
145148 } finally {
146149 h.app.stop();
147150 }

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs