/**
* @jest-environment jsdom
*/
import { Application } from "stimulus";
import stripe_cards_controller from "../../../app/webpacker/controllers/stripe_cards_controller";
describe("StripeCardsController", () => {
beforeAll(() => {
const application = Application.start();
application.register("stripe-cards", stripe_cards_controller);
});
beforeEach(() => {
document.body.innerHTML = `
`;
});
describe("#connect", () => {
it("initialize with the right display state", () => {
const select = document.getElementById("select");
select.value = "";
select.dispatchEvent(new Event("change"));
expect(document.getElementById("stripeelements").style.display).toBe("block");
});
});
describe("#selectCard", () => {
it("fill the right payment container", () => {
const select = document.getElementById("select");
select.value = "1";
select.dispatchEvent(new Event("change"));
expect(document.getElementById("stripeelements").style.display).toBe("none");
expect(document.getElementById("input_1").disabled).toBe(true);
select.value = "2";
select.dispatchEvent(new Event("change"));
expect(document.getElementById("stripeelements").style.display).toBe("none");
expect(document.getElementById("input_1").disabled).toBe(true);
select.value = "";
select.dispatchEvent(new Event("change"));
expect(document.getElementById("stripeelements").style.display).toBe("block");
expect(document.getElementById("input_1").disabled).toBe(false);
});
});
});