fabro/apps/fabro-web/app/routes/setup.test.ts
Bryan Helmkamp 9a21553533
fix(web): generalize GitHub App post-install copy (#418)
## Summary

The `/setup` screen rendered after GitHub redirects post-install (params
`installation_id` + `setup_action=install`) showed copy that assumed the
user was retrying a failed run:

> **Retry the run** — Start the run or preflight again so Fabro can
clone the repository and push checkpoint branches with the new
installation.

But this screen is also where **first-time installers** land during
onboarding, when there is no prior run to retry. The "retry" framing is
confusing in that path.

## Fix

Rewrite step 2 to be neutral between onboarding and retry-after-failure:

> **Use the new installation** — Sign in and start a run or preflight.
Fabro can now clone repositories and push checkpoint branches using the
new installation.

The CTA below the steps ("Continue to sign in") and step 1 ("Return to
Fabro / The GitHub App is installed for the selected account or
repositories") already work for both paths — only step 2 was over-fit.
No structural changes; the route still keys off the same query params.

Update `setup.test.ts` to assert the new title.

## Test plan
- [x] `bun test app/routes/setup.test.ts` — 1 pass
- [x] `bun run typecheck` — clean
- [x] Manual: behavior unchanged for first-time-setup path (no install
params); only the post-install variant text changes

🤖 Generated with [Claude Code](https://claude.com/claude-code)
2026-05-26 19:27:09 -04:00

20 lines
633 B
TypeScript

import { describe, expect, test } from "bun:test";
import { setupContentForSearch } from "./setup";
describe("setupContentForSearch", () => {
test("explains GitHub App installation returns separately from first-time setup", () => {
const content = setupContentForSearch(
"?installation_id=128003036&setup_action=install",
);
expect(content.title).toBe("GitHub App installed");
expect(content.description).toContain(
"GitHub finished installing the app",
);
expect(content.steps.map((step) => step.title)).toEqual([
"Return to Fabro",
"Use the new installation",
]);
});
});