saleor-dashboard/src/hooks/useChannels.test.ts

90 lines
1.9 KiB
TypeScript
Raw Normal View History

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);
});
});