feat(KB-180): rename pause button titles from 'AI engine' to 'scheduling'

- Update Header pause button titles to 'Pause scheduling' / 'Resume scheduling'
- Update Header unit tests to assert new title strings
- Update App integration tests for engine pause flows to use new titles
This commit is contained in:
Dustin Byrne
2026-03-28 17:17:14 -04:00
parent d2e2e50a15
commit 6ff64597d8
3 changed files with 16 additions and 16 deletions

View File

@@ -27,7 +27,7 @@ export function Header({
<button
className={`btn-icon${enginePaused ? " btn-icon--paused" : ""}`}
onClick={onToggleEnginePause}
title={enginePaused ? "Resume AI engine" : "Pause AI engine"}
title={enginePaused ? "Resume scheduling" : "Pause scheduling"}
disabled={!!globalPaused}
>
{enginePaused ? <Play size={16} /> : <Pause size={16} />}

View File

@@ -218,9 +218,9 @@ describe("App engine pause (soft pause)", () => {
render(<App />);
// When engine is paused, the pause button should show "Resume AI engine"
// When engine is paused, the pause button should show "Resume scheduling"
await waitFor(() => {
expect(screen.getByTitle("Resume AI engine")).toBeTruthy();
expect(screen.getByTitle("Resume scheduling")).toBeTruthy();
});
});
@@ -233,7 +233,7 @@ describe("App engine pause (soft pause)", () => {
render(<App />);
await waitFor(() => {
expect(screen.getByTitle("Pause AI engine")).toBeTruthy();
expect(screen.getByTitle("Pause scheduling")).toBeTruthy();
});
});
@@ -246,15 +246,15 @@ describe("App engine pause (soft pause)", () => {
render(<App />);
await waitFor(() => {
expect(screen.getByTitle("Pause AI engine")).toBeTruthy();
expect(screen.getByTitle("Pause scheduling")).toBeTruthy();
});
// Click the pause button
fireEvent.click(screen.getByTitle("Pause AI engine"));
fireEvent.click(screen.getByTitle("Pause scheduling"));
// Should optimistically switch to "Resume" state
await waitFor(() => {
expect(screen.getByTitle("Resume AI engine")).toBeTruthy();
expect(screen.getByTitle("Resume scheduling")).toBeTruthy();
});
// Should call updateSettings with enginePaused: true

View File

@@ -28,47 +28,47 @@ describe("Header", () => {
// ── Pause button (soft pause) ────────────────────────────────────
it("renders pause button with 'Pause AI engine' title when not paused", () => {
it("renders pause button with 'Pause scheduling' title when not paused", () => {
render(<Header enginePaused={false} />);
const btn = screen.getByTitle("Pause AI engine");
const btn = screen.getByTitle("Pause scheduling");
expect(btn).toBeDefined();
});
it("renders play button with 'Resume AI engine' title when engine is paused", () => {
it("renders play button with 'Resume scheduling' title when engine is paused", () => {
render(<Header enginePaused={true} />);
const btn = screen.getByTitle("Resume AI engine");
const btn = screen.getByTitle("Resume scheduling");
expect(btn).toBeDefined();
});
it("calls onToggleEnginePause when pause button is clicked", () => {
const onToggle = vi.fn();
render(<Header enginePaused={false} onToggleEnginePause={onToggle} />);
const btn = screen.getByTitle("Pause AI engine");
const btn = screen.getByTitle("Pause scheduling");
fireEvent.click(btn);
expect(onToggle).toHaveBeenCalledOnce();
});
it("applies btn-icon--paused class when engine is paused", () => {
render(<Header enginePaused={true} />);
const btn = screen.getByTitle("Resume AI engine");
const btn = screen.getByTitle("Resume scheduling");
expect(btn.className).toContain("btn-icon--paused");
});
it("does not apply btn-icon--paused class when engine is not paused", () => {
render(<Header enginePaused={false} />);
const btn = screen.getByTitle("Pause AI engine");
const btn = screen.getByTitle("Pause scheduling");
expect(btn.className).not.toContain("btn-icon--paused");
});
it("pause button is disabled when globalPaused is true", () => {
render(<Header globalPaused={true} enginePaused={false} />);
const btn = screen.getByTitle("Pause AI engine");
const btn = screen.getByTitle("Pause scheduling");
expect((btn as HTMLButtonElement).disabled).toBe(true);
});
it("pause button is enabled when globalPaused is false", () => {
render(<Header globalPaused={false} enginePaused={false} />);
const btn = screen.getByTitle("Pause AI engine");
const btn = screen.getByTitle("Pause scheduling");
expect((btn as HTMLButtonElement).disabled).toBe(false);
});