import ModalsReducer from "../ModalsReducer";

describe("modals reducer", () => {
  it("should return the initial state", () => {
    expect(ModalsReducer(undefined, {})).toStrictEqual({ modals: [] });
    expect(ModalsReducer()).toStrictEqual({ modals: [] });
  });

  it("should handle SHOW_MODAL", () => {
    expect(
      ModalsReducer(undefined, {
        type: "SHOW_MODAL",
        payload: "modal1",
      }),
    ).toStrictEqual({ modals: [{ key: "modal1", visible: true }] });
  });

  it("should handle CLOSE_MODAL", () => {
    expect(
      ModalsReducer(
        {
          modals: [
            { key: "modal1", visible: false },
            { key: "modal2", visible: true },
          ],
        },
        {
          type: "CLOSE_MODAL",
          payload: "modal2",
        },
      ),
    ).toStrictEqual({ modals: [{ key: "modal1", visible: true }] });
  });
});
