Skip to content

Commit 0f1d0ee

Browse files
author
shubhamBansal
committed
Controller notion removed from test cases and support for coverage added
1 parent c227350 commit 0f1d0ee

File tree

8 files changed

+65
-113
lines changed

8 files changed

+65
-113
lines changed

dashboard/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@
3737
"scripts": {
3838
"start": "react-scripts start",
3939
"build": "react-scripts build",
40-
"test": "react-scripts test",
40+
"test": "react-scripts test --coverage",
4141
"eject": "react-scripts eject"
4242
},
4343
"jest":{

dashboard/src/modules/components/DatePickerComponent/DatePicker.test.js

+12-3
Original file line numberDiff line numberDiff line change
@@ -14,17 +14,26 @@ jest.mock("utils/api", () => {
1414
return {
1515
get: () => ({
1616
data: MOCK_DATA,
17+
status:200
1718
}),
1819
};
1920
});
2021
test("data is filtered based on date range selected from date picker", async () => {
2122
render(<AppWrapper />);
22-
await screen.findByText("dhcp1");
23+
await screen.findByText("pbench_user_benchmark1");
2324
const datePickerInput = screen.getAllByPlaceholderText(/yyyy-mm-dd/i);
2425
fireEvent.change(datePickerInput[0], { target: { value: "2022-02-16" } });
2526
fireEvent.change(datePickerInput[1], { target: { value: "2022-02-20" } });
2627
const updateBtn = screen.getByRole("button", { name: /update/i });
2728
fireEvent.click(updateBtn);
28-
const cells = screen.getAllByRole("cell");
29-
expect(cells).toHaveLength(12);
29+
const datasetNameOne = screen.queryByText("pbench_user_benchmark1");
30+
const datasetNameTwo = screen.queryByText("pbench_user_benchmark2");
31+
const datasetNameThree = screen.queryByText("pbench_user_benchmark3");
32+
const datasetNameFour = screen.queryByText("pbench_user_benchmark4");
33+
const datasetNameFive = screen.queryByText("pbench_user_benchmark5");
34+
expect(datasetNameOne).toBeInTheDocument();
35+
expect(datasetNameTwo).toBeInTheDocument();
36+
expect(datasetNameThree).toBeInTheDocument();
37+
expect(datasetNameFour).not.toBeInTheDocument();
38+
expect(datasetNameFive).not.toBeInTheDocument();
3039
});

dashboard/src/modules/components/HeadingComponent/Heading.test.js

-16
This file was deleted.

dashboard/src/modules/components/SearchComponent/Search.test.js

-33
This file was deleted.

dashboard/src/modules/components/SearchComponent/index.jsx

-32
This file was deleted.

dashboard/src/modules/components/TableComponent/Table.test.js

+44-14
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,7 @@ import { Provider } from "react-redux";
22
import store from "store/store";
33
import { MOCK_DATA } from "utils/mockData";
44
import App from "../../../App";
5-
const {
6-
render,
7-
screen,
8-
waitFor,
9-
fireEvent,
10-
} = require("@testing-library/react");
5+
const { render, screen, fireEvent } = require("@testing-library/react");
116
const AppWrapper = () => {
127
return (
138
<Provider store={store}>
@@ -19,21 +14,34 @@ jest.mock("utils/api", () => {
1914
return {
2015
get: () => ({
2116
data: MOCK_DATA,
17+
status: 200,
2218
}),
2319
};
2420
});
25-
21+
test("Page heading is displayed on initial load", async () => {
22+
render(<AppWrapper />);
23+
await screen.findByText("pbench_user_benchmark1");
24+
const heading = screen.getByRole("heading", { name: /results/i });
25+
expect(heading).toBeInTheDocument();
26+
});
2627
test("data from API is displayed on initial load", async () => {
2728
render(<AppWrapper />);
28-
const benchmarkName = await screen.findByText("pbench_user_benchmark1");
29-
const cells = await screen.findAllByRole("cell");
30-
await waitFor(() => expect(benchmarkName).toBeInTheDocument());
31-
await waitFor(() => expect(cells).toHaveLength(20));
29+
await screen.findByText("pbench_user_benchmark1");
30+
const datasetNameOne = screen.queryByText("pbench_user_benchmark1");
31+
const datasetNameTwo = screen.queryByText("pbench_user_benchmark2");
32+
const datasetNameThree = screen.queryByText("pbench_user_benchmark3");
33+
const datasetNameFour = screen.queryByText("pbench_user_benchmark4");
34+
const datasetNameFive = screen.queryByText("pbench_user_benchmark5");
35+
expect(datasetNameOne).toBeInTheDocument();
36+
expect(datasetNameTwo).toBeInTheDocument();
37+
expect(datasetNameThree).toBeInTheDocument();
38+
expect(datasetNameFour).toBeInTheDocument();
39+
expect(datasetNameFive).toBeInTheDocument();
3240
});
3341

3442
test("row is favorited after clicking on favorite icon", async () => {
3543
render(<AppWrapper />);
36-
await screen.findByText("dhcp1");
44+
await screen.findByText("pbench_user_benchmark1");
3745
const starBtn = screen.getAllByRole("button", {
3846
name: /not starred/i,
3947
});
@@ -43,6 +51,28 @@ test("row is favorited after clicking on favorite icon", async () => {
4351
name: /see favorites button/i,
4452
});
4553
fireEvent.click(favoriteBtn);
46-
const favoriteCell = screen.getAllByRole("cell");
47-
expect(favoriteCell).toHaveLength(8);
54+
const datasetNameOne = screen.queryByText("pbench_user_benchmark1");
55+
const datasetNameTwo = screen.queryByText("pbench_user_benchmark2");
56+
const datasetNameThree = screen.queryByText("pbench_user_benchmark3");
57+
const datasetNameFour = screen.queryByText("pbench_user_benchmark4");
58+
const datasetNameFive = screen.queryByText("pbench_user_benchmark5");
59+
expect(datasetNameOne).toBeInTheDocument();
60+
expect(datasetNameTwo).toBeInTheDocument();
61+
expect(datasetNameThree).not.toBeInTheDocument();
62+
expect(datasetNameFour).not.toBeInTheDocument();
63+
expect(datasetNameFive).not.toBeInTheDocument();
64+
});
65+
test("data is filtered based on value in search box", async () => {
66+
render(<AppWrapper />);
67+
await screen.findByText("pbench_user_benchmark1");
68+
const searchBox = screen.getByPlaceholderText(/search dataset/i);
69+
fireEvent.change(searchBox, { target: { value: "pbench_user_benchmark2" } });
70+
const searchBtn = screen.getByRole("button", {
71+
name: /searchButton/i,
72+
});
73+
fireEvent.click(searchBtn);
74+
const datasetNameTwo = screen.queryByText("pbench_user_benchmark2");
75+
const datasetNameThree = screen.queryByText("pbench_user_benchmark3");
76+
expect(datasetNameTwo).toBeInTheDocument();
77+
expect(datasetNameThree).not.toBeInTheDocument();
4878
});

dashboard/src/modules/components/TableComponent/index.jsx

+8-9
Original file line numberDiff line numberDiff line change
@@ -26,11 +26,11 @@ import DatePickerWidget from "../DatePickerComponent";
2626
import PathBreadCrumb from "../BreadCrumbComponent";
2727
import { LoginHint, Heading, EmptyTable, SearchBox } from "./common-components";
2828
import { getTodayMidnightUTCDate } from "utils/dateFunctions";
29+
import { bumpToDate } from "utils/dateFunctions";
2930

3031
let startDate = new Date(Date.UTC(1990, 10, 4));
31-
let endDate = getTodayMidnightUTCDate();
32+
let endDate = bumpToDate(getTodayMidnightUTCDate(),1);
3233
let datasetName = "";
33-
let dataArray = [];
3434

3535
const TableWithFavorite = () => {
3636
const columnNames = {
@@ -51,7 +51,7 @@ const TableWithFavorite = () => {
5151
dispatch(getFavoritedDatasets());
5252
}, [dispatch]);
5353

54-
const { publicData, favoriteRepoNames } = useSelector(
54+
const { publicData, favoriteRepoNames,tableData } = useSelector(
5555
(state) => state.datasetlist
5656
);
5757
const setPublicData = (data) => {
@@ -141,20 +141,17 @@ const TableWithFavorite = () => {
141141

142142
<PageSection variant={PageSectionVariants.light}>
143143
<PathBreadCrumb pathList={datasetBreadcrumb} />
144-
<Heading
145-
containerClass="publicDataPageTitle"
146-
headingTitle="Results"
147-
/>
144+
<Heading containerClass="publicDataPageTitle" headingTitle="Results" />
148145
<div className="filterContainer">
149146
<SearchBox
150-
dataArray={dataArray}
147+
dataArray={tableData}
151148
setPublicData={setPublicData}
152149
startDate={startDate}
153150
endDate={endDate}
154151
setDatasetName={setDatasetName}
155152
/>
156153
<DatePickerWidget
157-
dataArray={dataArray}
154+
dataArray={tableData}
158155
setPublicData={setPublicData}
159156
datasetName={datasetName}
160157
setDateRange={setDateRange}
@@ -167,13 +164,15 @@ const TableWithFavorite = () => {
167164
isSelected={isSelected === "datasetListButton"}
168165
onChange={handleButtonClick}
169166
className="datasetListButton"
167+
aria-label="see dataset button"
170168
/>
171169
<ToggleGroupItem
172170
text={`Favorites(${favoriteRepoNames?.length})`}
173171
buttonId="favoriteListButton"
174172
isSelected={isSelected === "favoriteListButton"}
175173
onChange={handleButtonClick}
176174
className="favoriteListButton"
175+
aria-label="see favorites button"
177176
/>
178177
</ToggleGroup>
179178
<TableComposable aria-label="Favoritable table" variant="compact">

dashboard/src/utils/mockData.js

-5
Original file line numberDiff line numberDiff line change
@@ -1,34 +1,29 @@
11
export const MOCK_DATA = [
22
{
3-
controller: "dhcp1",
43
name: "pbench_user_benchmark1",
54
metadata: {
65
"dataset.created": "2022-02-16T13:21:29+00:00",
76
},
87
},
98
{
10-
controller: "dhcp2",
119
name: "pbench_user_benchmark2",
1210
metadata: {
1311
"dataset.created": "2022-02-18T13:21:29+00:00",
1412
},
1513
},
1614
{
17-
controller: "dhcp3",
1815
name: "pbench_user_benchmark3",
1916
metadata: {
2017
"dataset.created": "2022-02-20T13:21:29+00:00",
2118
},
2219
},
2320
{
24-
controller: "dhcp4",
2521
name: "pbench_user_benchmark4",
2622
metadata: {
2723
"dataset.created": "2022-02-25T13:21:29+00:00",
2824
},
2925
},
3026
{
31-
controller: "dhcp5",
3227
name: "pbench_user_benchmark5",
3328
metadata: {
3429
"dataset.created": "2022-03-08T13:21:29+00:00",

0 commit comments

Comments
 (0)