43 lines
1.3 KiB
JavaScript
43 lines
1.3 KiB
JavaScript
import { renderHook, act, waitFor } from "@testing-library/react";
|
|
import useLineData from "../../../hooks/useLineData";
|
|
import React from "react";
|
|
|
|
const mockUrl = "http://mockurl.com";
|
|
const mockData1 = {
|
|
Statis: [{ IdLD: 1, Modul: "mod1", PrioColor: "red", ModulName: "Module 1", ModulTyp: "Type 1", Message: "Message 1", PrioName: "High", DpName: "DP 1", Value: "Value 1" }],
|
|
};
|
|
const mockData2 = [{ idLD: 1, idModul: "mod1" }];
|
|
|
|
global.fetch = jest.fn((url) => {
|
|
if (url === mockUrl) {
|
|
return Promise.resolve({
|
|
json: () => Promise.resolve(mockData1),
|
|
});
|
|
} else {
|
|
return Promise.resolve({
|
|
json: () => Promise.resolve(mockData2),
|
|
});
|
|
}
|
|
});
|
|
|
|
describe("useLineData", () => {
|
|
test("should fetch line data and set line colors and tooltip contents", async () => {
|
|
const setLineStatusData = jest.fn();
|
|
|
|
const { result } = renderHook(() => useLineData(mockUrl, setLineStatusData));
|
|
|
|
await waitFor(
|
|
() => {
|
|
expect(setLineStatusData).toHaveBeenCalledWith(expect.any(Array));
|
|
expect(result.current).toEqual(
|
|
expect.objectContaining({
|
|
lineColors: expect.any(Object),
|
|
tooltipContents: expect.any(Object),
|
|
})
|
|
);
|
|
},
|
|
{ timeout: 5000 } // Increase the timeout to 5000ms
|
|
);
|
|
});
|
|
});
|