90 lines
1.9 KiB
TypeScript
90 lines
1.9 KiB
TypeScript
![]() |
import { ChannelData } from "@saleor/channels/utils";
|
||
|
import { act, renderHook } from "@testing-library/react-hooks";
|
||
|
|
||
|
import useChannels from "./useChannels";
|
||
|
|
||
|
const channels: ChannelData[] = [
|
||
|
{
|
||
|
id: "channel1",
|
||
|
name: "Channel 1",
|
||
|
variantsIds: ["variant1", "variant2"]
|
||
|
},
|
||
|
{
|
||
|
id: "channel2",
|
||
|
name: "Channel 2",
|
||
|
variantsIds: []
|
||
|
}
|
||
|
];
|
||
|
|
||
|
describe("useChannels", () => {
|
||
|
it("properly toggles channels", () => {
|
||
|
// Given
|
||
|
const { result } = renderHook(() =>
|
||
|
useChannels(channels, "", {
|
||
|
closeModal: jest.fn,
|
||
|
openModal: jest.fn
|
||
|
})
|
||
|
);
|
||
|
|
||
|
// When
|
||
|
act(() => {
|
||
|
result.current.channelsToggle(channels[0]);
|
||
|
});
|
||
|
|
||
|
act(() => {
|
||
|
result.current.handleChannelsConfirm();
|
||
|
});
|
||
|
|
||
|
// Then
|
||
|
expect(result.current.currentChannels).toStrictEqual([channels[1]]);
|
||
|
expect(result.current.currentChannels[0].id).toBe(channels[1].id);
|
||
|
});
|
||
|
it("properly removes channels", () => {
|
||
|
// Given
|
||
|
const { result } = renderHook(() =>
|
||
|
useChannels(channels, "", {
|
||
|
closeModal: jest.fn,
|
||
|
openModal: jest.fn
|
||
|
})
|
||
|
);
|
||
|
|
||
|
// When
|
||
|
act(() => {
|
||
|
result.current.channelsToggle(channels[0]);
|
||
|
});
|
||
|
|
||
|
act(() => {
|
||
|
result.current.channelsToggle(channels[1]);
|
||
|
});
|
||
|
|
||
|
act(() => {
|
||
|
result.current.handleChannelsConfirm();
|
||
|
});
|
||
|
|
||
|
// Then
|
||
|
expect(result.current.currentChannels).toStrictEqual([]);
|
||
|
});
|
||
|
|
||
|
it("doesn't not save changes if closed without confirm", () => {
|
||
|
// Given
|
||
|
const { result } = renderHook(() =>
|
||
|
useChannels(channels, "", {
|
||
|
closeModal: jest.fn,
|
||
|
openModal: jest.fn
|
||
|
})
|
||
|
);
|
||
|
|
||
|
// When
|
||
|
act(() => {
|
||
|
result.current.channelsToggle(channels[0]);
|
||
|
});
|
||
|
|
||
|
act(() => {
|
||
|
result.current.handleChannelsModalClose();
|
||
|
});
|
||
|
|
||
|
// Then
|
||
|
expect(result.current.currentChannels).toStrictEqual(channels);
|
||
|
});
|
||
|
});
|