Skip to content

Commit 2964016

Browse files
committed
Update tests
1 parent ea1020c commit 2964016

File tree

8 files changed

+57
-94
lines changed

8 files changed

+57
-94
lines changed

src/main/frontend/pipeline-console-view/pipeline-console/main/ConsoleLogCard.spec.tsx

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,6 @@ describe("ConsoleLogCard", () => {
5050
handleMoreConsoleClick: () => {
5151
console.log("handleMoreConsoleClick triggered");
5252
},
53-
scrollParentId: "test-parent",
5453
} as ConsoleLogCardProps;
5554

5655
it("renders step header only when not expanded", async () => {

src/main/frontend/pipeline-console-view/pipeline-console/main/ConsoleLogCard.tsx

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -143,5 +143,4 @@ export type ConsoleLogCardProps = {
143143
isExpanded: boolean;
144144
handleStepToggle: (nodeId: string) => void;
145145
handleMoreConsoleClick: (nodeId: string, startByte: number) => void;
146-
scrollParentId: string;
147146
};

src/main/frontend/pipeline-console-view/pipeline-console/main/PipelineConsole.tsx

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,6 @@ export default function PipelineConsole() {
4040
expandedSteps={expandedSteps}
4141
handleStepToggle={handleStepToggle}
4242
handleMoreConsoleClick={handleMoreConsoleClick}
43-
scrollParentId="stage-view-pane"
4443
/>
4544
</div>
4645
</SplitView>

src/main/frontend/pipeline-console-view/pipeline-console/main/StageView.spec.tsx

Lines changed: 49 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -2,74 +2,60 @@
22

33
(global as any).TextEncoder = require("util").TextEncoder;
44

5-
import "@testing-library/jest-dom";
65
import React from "react";
7-
import { StepLogBufferInfo } from "./PipelineConsoleModel";
8-
import { render } from "@testing-library/react";
9-
import StageView, { StageViewProps } from "./StageView";
10-
import { ConsoleLogCardProps } from "./ConsoleLogCard";
11-
import {
12-
defaultStagesList,
13-
findStageSteps,
14-
allSuccessfulStepList,
15-
} from "./TestData";
16-
17-
const TestComponent = (props: StageViewProps) => {
18-
return (
19-
<div id="test-parent">
20-
<StageView {...props} />
21-
</div>
22-
);
6+
import { act, render, screen } from "@testing-library/react";
7+
import StageView from "./StageView";
8+
import { Result, StageInfo, StepInfo } from "./PipelineConsoleModel";
9+
10+
const mockStage: StageInfo = {
11+
id: 1,
12+
name: "Build Stage",
13+
state: Result.success,
14+
skeleton: false,
15+
completePercent: 100,
16+
children: [],
17+
type: "STAGE",
18+
title: "Build",
19+
pauseDurationMillis: 0,
20+
startTimeMillis: Date.now(),
21+
totalDurationMillis: 10000,
22+
agent: "",
23+
url: "",
2324
};
2425

25-
window.HTMLElement.prototype.scrollBy = jest.fn();
26-
27-
jest.mock("./ConsoleLogCard", () => {
28-
return {
29-
ConsoleLogCard: jest.fn((props: ConsoleLogCardProps) => {
30-
return (
31-
<div>
32-
<div>SimpleConsoleLogCard...</div>
33-
<div>Hello, world!</div>
34-
</div>
35-
);
36-
}),
37-
};
38-
});
26+
const mockSteps: StepInfo[] = [
27+
{
28+
id: "step-1",
29+
title: "Step 1",
30+
stageId: "stage-1",
31+
state: Result.running,
32+
name: "",
33+
completePercent: 0,
34+
type: "",
35+
pauseDurationMillis: 0,
36+
startTimeMillis: 0,
37+
totalDurationMillis: 0,
38+
},
39+
];
3940

4041
describe("StageView", () => {
41-
const baseStage = defaultStagesList[0];
42-
const stageSteps = findStageSteps(allSuccessfulStepList, baseStage.id);
43-
const expandedStepId = stageSteps[0].id;
44-
const baseBuffer: StepLogBufferInfo = {
45-
lines: ["Hello, world!"],
46-
startByte: 0,
47-
endByte: 13,
48-
};
49-
50-
const stepBuffers: Map<string, StepLogBufferInfo> = new Map<
51-
string,
52-
StepLogBufferInfo
53-
>();
54-
stepBuffers.set(expandedStepId, baseBuffer);
55-
56-
const DefaultTestProps = {
57-
stage: baseStage,
58-
steps: stageSteps,
59-
stepBuffers: stepBuffers,
60-
selectedStage: `${baseStage.id}`,
61-
expandedSteps: [],
62-
handleStepToggle: () => {
63-
console.log("handleStepToggle triggered");
64-
},
65-
handleMoreConsoleClick: () => {
66-
console.log("handleMoreConsoleClick triggered");
67-
},
68-
scrollParentId: "dummy-id",
69-
} as StageViewProps;
42+
it("renders StageDetails and StageSteps with provided props", async () => {
43+
await act(async () => {
44+
render(
45+
<StageView
46+
stage={mockStage}
47+
steps={mockSteps}
48+
stepBuffers={new Map()}
49+
expandedSteps={["step-1"]}
50+
handleStepToggle={jest.fn()}
51+
handleMoreConsoleClick={jest.fn()}
52+
/>,
53+
);
54+
});
7055

71-
it("renders step view", async () => {
72-
const { findByText } = render(<StageView {...DefaultTestProps} />);
73-
expect(findByText(/Hello, world!/));
56+
expect(screen.getByRole("heading", { level: 2 })).toHaveTextContent(
57+
"Build Stage",
58+
);
59+
expect(screen.getByText("Step 1")).toBeInTheDocument();
7460
});
7561
});

src/main/frontend/pipeline-console-view/pipeline-console/main/StageView.tsx

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@ export default function StageView(props: StageViewProps) {
1515
expandedSteps={props.expandedSteps}
1616
handleStepToggle={props.handleStepToggle}
1717
handleMoreConsoleClick={props.handleMoreConsoleClick}
18-
scrollParentId={props.scrollParentId}
1918
/>
2019
</>
2120
);
@@ -28,6 +27,4 @@ export interface StageViewProps {
2827
expandedSteps: string[];
2928
handleStepToggle: (nodeId: string) => void;
3029
handleMoreConsoleClick: (nodeId: string, startByte: number) => void;
31-
// Id of the element whose scroll bar we wish to use.
32-
scrollParentId: string;
3330
}

src/main/frontend/pipeline-console-view/pipeline-console/main/hooks/use-steps-poller.spec.ts

Lines changed: 8 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -53,9 +53,7 @@ it("selects default step if URL param is missing", async () => {
5353
useStepsPoller({ currentRunPath: "/run/1", previousRunPath: undefined }),
5454
);
5555

56-
await waitFor(() =>
57-
expect(result.current.expandedSteps).toContain("step-2")
58-
);
56+
await waitFor(() => expect(result.current.expandedSteps).toContain("step-2"));
5957

6058
const { openStage, expandedSteps } = result.current;
6159

@@ -69,9 +67,7 @@ it("selects the step from URL on initial load", async () => {
6967
useStepsPoller({ currentRunPath: "/run/1", previousRunPath: undefined }),
7068
);
7169

72-
await waitFor(() =>
73-
expect(result.current.expandedSteps).toContain("step-1")
74-
);
70+
await waitFor(() => expect(result.current.expandedSteps).toContain("step-1"));
7571

7672
const { openStage, expandedSteps } = result.current;
7773

@@ -85,15 +81,15 @@ it("switches to next stage when current one finishes", async () => {
8581
{ id: "s2", title: "Step 2", stageId: "stage-2", state: "queued" },
8682
];
8783

88-
(model.getRunSteps as jest.Mock).mockImplementation(() => Promise.resolve(currentSteps));
84+
(model.getRunSteps as jest.Mock).mockImplementation(() =>
85+
Promise.resolve(currentSteps),
86+
);
8987

9088
const { result } = renderHook(() =>
9189
useStepsPoller({ currentRunPath: "/run/1" }),
9290
);
9391

94-
await waitFor(() =>
95-
expect(result.current.openStage?.id).toBe("stage-1")
96-
);
92+
await waitFor(() => expect(result.current.openStage?.id).toBe("stage-1"));
9793

9894
// Simulate stage-1 finishing and stage-2 becoming active
9995
currentSteps = [
@@ -102,9 +98,7 @@ it("switches to next stage when current one finishes", async () => {
10298
];
10399
(model.getRunSteps as jest.Mock).mockResolvedValue(currentSteps);
104100

105-
await waitFor(() =>
106-
expect(result.current.openStage?.id).toBe("stage-1")
107-
);
101+
await waitFor(() => expect(result.current.openStage?.id).toBe("stage-1"));
108102

109103
expect(result.current.expandedSteps).toContain("s1");
110104
});
@@ -114,9 +108,7 @@ it("expands and collapses step when toggled", async () => {
114108
useStepsPoller({ currentRunPath: "/run/1" }),
115109
);
116110

117-
await waitFor(() =>
118-
expect(result.current.expandedSteps).toContain("step-2")
119-
);
111+
await waitFor(() => expect(result.current.expandedSteps).toContain("step-2"));
120112

121113
act(() => result.current.handleStepToggle("step-2"));
122114
expect(result.current.expandedSteps).not.toContain("step-2");

src/main/frontend/pipeline-console-view/pipeline-console/main/hooks/use-steps-poller.ts

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,6 @@ export function useStepsPoller(props: RunPollerProps) {
8080
}
8181

8282
setOpenStage(selected);
83-
console.log("init - Setting to ", expanded)
8483
setExpandedSteps(expanded);
8584
return true;
8685
},
@@ -136,7 +135,6 @@ export function useStepsPoller(props: RunPollerProps) {
136135
setOpenStage(defaultStep.stageId);
137136

138137
if (defaultStep.stageId) {
139-
console.log("dEFAULTTTT", defaultStep.stageId);
140138
setExpandedSteps((prev) => [...prev, defaultStep.id]);
141139
updateStepConsoleOffset(defaultStep.id, false, 0 - LOG_FETCH_SIZE);
142140
}
@@ -190,7 +188,6 @@ export function useStepsPoller(props: RunPollerProps) {
190188
const newlyExpandedSteps = lastStep ? [lastStep.id] : [];
191189

192190
setOpenStage(nodeId);
193-
console.log("ini2t - Setting to ", newlyExpandedSteps)
194191
setExpandedSteps((prev) => [...prev, ...newlyExpandedSteps]);
195192

196193
if (lastStep) {
@@ -203,11 +200,9 @@ export function useStepsPoller(props: RunPollerProps) {
203200
const handleStepToggle = (nodeId: string) => {
204201
setUserManuallySetNode(true);
205202
if (!expandedSteps.includes(nodeId)) {
206-
console.log("step toggle - Setting to ", nodeId)
207203
setExpandedSteps((prev) => [...prev, nodeId]);
208204
updateStepConsoleOffset(nodeId, false, 0 - LOG_FETCH_SIZE);
209205
} else {
210-
console.log("step toggle 2 - Setting to ", nodeId)
211206
setExpandedSteps((prev) => prev.filter((id) => id !== nodeId));
212207
}
213208
};

src/main/frontend/pipeline-console-view/pipeline-console/main/stage-steps.tsx

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ export default function StageSteps({
1212
handleStepToggle,
1313
expandedSteps,
1414
handleMoreConsoleClick,
15-
scrollParentId,
1615
}: StageStepsProps) {
1716
if (steps.length === 0) {
1817
return null;
@@ -39,7 +38,6 @@ export default function StageSteps({
3938
isExpanded={expandedSteps.includes(stepItemData.id)}
4039
handleMoreConsoleClick={handleMoreConsoleClick}
4140
key={`step-console-card-${stepItemData.id}`}
42-
scrollParentId={scrollParentId}
4341
/>
4442
);
4543
})}
@@ -55,6 +53,4 @@ interface StageStepsProps {
5553
expandedSteps: string[];
5654
handleStepToggle: (nodeId: string) => void;
5755
handleMoreConsoleClick: (nodeId: string, startByte: number) => void;
58-
// Id of the element whose scroll bar we wish to use.
59-
scrollParentId: string;
6056
}

0 commit comments

Comments
 (0)