/** * @jest-environment jsdom */ import { Application } from "stimulus"; import stripe_cards_controller from "../../../app/webpacker/controllers/stripe_cards_controller"; describe("StripeCardsController", () => { beforeEach(() => { document.body.innerHTML = `
`; const application = Application.start(); application.register("stripe-cards", stripe_cards_controller); }); 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); }); }); });