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:
@@ -27,7 +27,7 @@ export function Header({
|
|||||||
<button
|
<button
|
||||||
className={`btn-icon${enginePaused ? " btn-icon--paused" : ""}`}
|
className={`btn-icon${enginePaused ? " btn-icon--paused" : ""}`}
|
||||||
onClick={onToggleEnginePause}
|
onClick={onToggleEnginePause}
|
||||||
title={enginePaused ? "Resume AI engine" : "Pause AI engine"}
|
title={enginePaused ? "Resume scheduling" : "Pause scheduling"}
|
||||||
disabled={!!globalPaused}
|
disabled={!!globalPaused}
|
||||||
>
|
>
|
||||||
{enginePaused ? <Play size={16} /> : <Pause size={16} />}
|
{enginePaused ? <Play size={16} /> : <Pause size={16} />}
|
||||||
|
|||||||
@@ -218,9 +218,9 @@ describe("App engine pause (soft pause)", () => {
|
|||||||
|
|
||||||
render(<App />);
|
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(() => {
|
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 />);
|
render(<App />);
|
||||||
|
|
||||||
await waitFor(() => {
|
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 />);
|
render(<App />);
|
||||||
|
|
||||||
await waitFor(() => {
|
await waitFor(() => {
|
||||||
expect(screen.getByTitle("Pause AI engine")).toBeTruthy();
|
expect(screen.getByTitle("Pause scheduling")).toBeTruthy();
|
||||||
});
|
});
|
||||||
|
|
||||||
// Click the pause button
|
// Click the pause button
|
||||||
fireEvent.click(screen.getByTitle("Pause AI engine"));
|
fireEvent.click(screen.getByTitle("Pause scheduling"));
|
||||||
|
|
||||||
// Should optimistically switch to "Resume" state
|
// Should optimistically switch to "Resume" state
|
||||||
await waitFor(() => {
|
await waitFor(() => {
|
||||||
expect(screen.getByTitle("Resume AI engine")).toBeTruthy();
|
expect(screen.getByTitle("Resume scheduling")).toBeTruthy();
|
||||||
});
|
});
|
||||||
|
|
||||||
// Should call updateSettings with enginePaused: true
|
// Should call updateSettings with enginePaused: true
|
||||||
|
|||||||
@@ -28,47 +28,47 @@ describe("Header", () => {
|
|||||||
|
|
||||||
// ── Pause button (soft pause) ────────────────────────────────────
|
// ── 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} />);
|
render(<Header enginePaused={false} />);
|
||||||
const btn = screen.getByTitle("Pause AI engine");
|
const btn = screen.getByTitle("Pause scheduling");
|
||||||
expect(btn).toBeDefined();
|
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} />);
|
render(<Header enginePaused={true} />);
|
||||||
const btn = screen.getByTitle("Resume AI engine");
|
const btn = screen.getByTitle("Resume scheduling");
|
||||||
expect(btn).toBeDefined();
|
expect(btn).toBeDefined();
|
||||||
});
|
});
|
||||||
|
|
||||||
it("calls onToggleEnginePause when pause button is clicked", () => {
|
it("calls onToggleEnginePause when pause button is clicked", () => {
|
||||||
const onToggle = vi.fn();
|
const onToggle = vi.fn();
|
||||||
render(<Header enginePaused={false} onToggleEnginePause={onToggle} />);
|
render(<Header enginePaused={false} onToggleEnginePause={onToggle} />);
|
||||||
const btn = screen.getByTitle("Pause AI engine");
|
const btn = screen.getByTitle("Pause scheduling");
|
||||||
fireEvent.click(btn);
|
fireEvent.click(btn);
|
||||||
expect(onToggle).toHaveBeenCalledOnce();
|
expect(onToggle).toHaveBeenCalledOnce();
|
||||||
});
|
});
|
||||||
|
|
||||||
it("applies btn-icon--paused class when engine is paused", () => {
|
it("applies btn-icon--paused class when engine is paused", () => {
|
||||||
render(<Header enginePaused={true} />);
|
render(<Header enginePaused={true} />);
|
||||||
const btn = screen.getByTitle("Resume AI engine");
|
const btn = screen.getByTitle("Resume scheduling");
|
||||||
expect(btn.className).toContain("btn-icon--paused");
|
expect(btn.className).toContain("btn-icon--paused");
|
||||||
});
|
});
|
||||||
|
|
||||||
it("does not apply btn-icon--paused class when engine is not paused", () => {
|
it("does not apply btn-icon--paused class when engine is not paused", () => {
|
||||||
render(<Header enginePaused={false} />);
|
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");
|
expect(btn.className).not.toContain("btn-icon--paused");
|
||||||
});
|
});
|
||||||
|
|
||||||
it("pause button is disabled when globalPaused is true", () => {
|
it("pause button is disabled when globalPaused is true", () => {
|
||||||
render(<Header globalPaused={true} enginePaused={false} />);
|
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);
|
expect((btn as HTMLButtonElement).disabled).toBe(true);
|
||||||
});
|
});
|
||||||
|
|
||||||
it("pause button is enabled when globalPaused is false", () => {
|
it("pause button is enabled when globalPaused is false", () => {
|
||||||
render(<Header globalPaused={false} enginePaused={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);
|
expect((btn as HTMLButtonElement).disabled).toBe(false);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user