| ... | @@ -1188,6 +1188,36 @@ it.layer(GitManagerTestLayer)("GitManager", (it) => { | ... | @@ -1188,6 +1188,36 @@ it.layer(GitManagerTestLayer)("GitManager", (it) => { |
| 1188 | }), | 1188 | }), |
| 1189 | ); | 1189 | ); |
| 1190 | | 1190 | |
| | 1191 | it.effect("status hides merged PRs on the default branch", () => |
| | 1192 | Effect.gen(function* () { |
| | 1193 | const repoDir = yield* makeTempDir("t3code-git-manager-"); |
| | 1194 | yield* initRepo(repoDir); |
| | 1195 | |
| | 1196 | const { manager } = yield* makeManager({ |
| | 1197 | ghScenario: { |
| | 1198 | prListSequence: [ |
| | 1199 | JSON.stringify([ |
| | 1200 | { |
| | 1201 | number: 23, |
| | 1202 | title: "Merged PR", |
| | 1203 | url: "https://github.com/pingdotgg/codething-mvp/pull/23", |
| | 1204 | baseRefName: "feature/status-default-branch-target", |
| | 1205 | headRefName: "main", |
| | 1206 | state: "MERGED", |
| | 1207 | mergedAt: "2026-01-30T10:00:00Z", |
| | 1208 | updatedAt: "2026-01-30T10:00:00Z", |
| | 1209 | }, |
| | 1210 | ]), |
| | 1211 | ], |
| | 1212 | }, |
| | 1213 | }); |
| | 1214 | |
| | 1215 | const status = yield* manager.status({ cwd: repoDir }); |
| | 1216 | expect(status.branch).toBe("main"); |
| | 1217 | expect(status.pr).toBeNull(); |
| | 1218 | }), |
| | 1219 | ); |
| | 1220 | |
| 1191 | it.effect("status prefers open PR when merged PR has newer updatedAt", () => | 1221 | it.effect("status prefers open PR when merged PR has newer updatedAt", () => |
| 1192 | Effect.gen(function* () { | 1222 | Effect.gen(function* () { |
| 1193 | const repoDir = yield* makeTempDir("t3code-git-manager-"); | 1223 | const repoDir = yield* makeTempDir("t3code-git-manager-"); |