import React from "react";
import { describe, expect, it } from "vitest";
import { render } from "ink-testing-library";
import { Stepper } from "./Stepper";
import { TerminalContextProvider, type TTerminalContextValue } from "../app/TerminalContext";
import { resolveTerminalTheme } from "../services/terminal-theme";
const testContextValue: TTerminalContextValue = {
theme: resolveTerminalTheme({ noColor: true }),
capabilities: { isTTY: true, isCI: false, noColor: true, supportsUnicode: true, columns: 80, rows: 24 },
registry: [],
projectName: "test-project",
};
describe("Stepper", () => {
it("renders each step with the done/active/pending symbol relative to currentIndex", () => {
const { lastFrame } = render(
,
);
const frame = lastFrame() ?? "";
expect(frame).toContain("1 ✓ Repository");
expect(frame).toContain("2 ✓ Branches");
expect(frame).toContain("3 ● Scope");
expect(frame).toContain("4 ○ Commits");
});
it("falls back to ASCII symbols when the terminal doesn't support unicode", () => {
const { lastFrame } = render(
,
);
const frame = lastFrame() ?? "";
expect(frame).toContain("1 + Repository");
expect(frame).toContain("2 * Scope");
});
});