/**
* @jest-environment jsdom
*/
import { Application } from "stimulus";
import paymentmethod_controller from "../../../app/webpacker/controllers/paymentmethod_controller";
describe("PaymentmethodController", () => {
beforeAll(() => {
const application = Application.start();
application.register("paymentmethod", paymentmethod_controller);
});
describe("#selectPaymentMethod", () => {
beforeEach(() => {
document.body.innerHTML = `
`;
});
it("fill the right payment container", () => {
const paymentMethod1 = document.getElementById("paymentmethod_1");
const paymentMethod2 = document.getElementById("paymentmethod_2");
const paymentMethod3 = document.getElementById("paymentmethod_3");
const paymentMethod1Container = document.getElementById("paymentmethod1");
const paymentMethod2Container = document.getElementById("paymentmethod2");
const paymentMethod3Container = document.getElementById("paymentmethod3");
expect(paymentMethod1Container.style.display).toBe("none");
expect(paymentMethod2Container.style.display).toBe("block");
expect(paymentMethod3Container.style.display).toBe("none");
paymentMethod1.click();
expect(paymentMethod1Container.style.display).toBe("block");
expect(paymentMethod2Container.style.display).toBe("none");
expect(paymentMethod3Container.style.display).toBe("none");
paymentMethod3.click();
expect(paymentMethod1Container.style.display).toBe("none");
expect(paymentMethod2Container.style.display).toBe("none");
expect(paymentMethod3Container.style.display).toBe("block");
});
it("handle well the add/remove 'disabled='disabled'' attribute on each input/select", () => {
const paymentMethod1 = document.getElementById("paymentmethod_1");
const paymentMethod2 = document.getElementById("paymentmethod_2");
const paymentMethod3 = document.getElementById("paymentmethod_3");
const input1 = document.getElementById("input1");
const input2 = document.getElementById("input2");
const input3 = document.getElementById("input3");
const select1 = document.getElementById("select1");
const select2 = document.getElementById("select2");
const select3 = document.getElementById("select3");
paymentMethod1.click();
expect(input1.disabled).toBe(false);
expect(select1.disabled).toBe(false);
expect(input2.disabled).toBe(true);
expect(select2.disabled).toBe(true);
expect(input3.disabled).toBe(true);
expect(select3.disabled).toBe(true);
paymentMethod2.click();
expect(input2.disabled).toBe(false);
expect(select2.disabled).toBe(false);
expect(input1.disabled).toBe(true);
expect(select1.disabled).toBe(true);
expect(input3.disabled).toBe(true);
expect(select3.disabled).toBe(true);
paymentMethod3.click();
expect(input3.disabled).toBe(false);
expect(select3.disabled).toBe(false);
expect(input1.disabled).toBe(true);
expect(select1.disabled).toBe(true);
expect(input2.disabled).toBe(true);
expect(select2.disabled).toBe(true);
});
});
});