53 lines
1.6 KiB
TypeScript
53 lines
1.6 KiB
TypeScript
import { renderToStaticMarkup } from "react-dom/server";
|
|
import { describe, expect, it, vi } from "vitest";
|
|
|
|
import { PaymentLaunchDialogs } from "../payment-launch-dialogs";
|
|
|
|
const hiddenLaunch = {
|
|
handleEzpayCancel: vi.fn(),
|
|
handleEzpayConfirm: vi.fn(),
|
|
handleStripeClose: vi.fn(),
|
|
handleStripeConfirmed: vi.fn(),
|
|
isConfirmingEzpay: false,
|
|
shouldShowEzpayConfirmDialog: false,
|
|
shouldShowStripeDialog: false,
|
|
stripeClientSecret: null,
|
|
};
|
|
|
|
describe("PaymentLaunchDialogs", () => {
|
|
it("renders nothing when neither payment dialog is active", () => {
|
|
expect(
|
|
renderToStaticMarkup(
|
|
<PaymentLaunchDialogs
|
|
currentOrderId={null}
|
|
externalCheckoutAnalyticsKey="payment.external_checkout"
|
|
ezpayDescription="Continue to payment."
|
|
launch={hiddenLaunch}
|
|
/>,
|
|
),
|
|
).toBe("");
|
|
});
|
|
|
|
it("renders the shared Ezpay confirmation content", () => {
|
|
const html = renderToStaticMarkup(
|
|
<PaymentLaunchDialogs
|
|
currentOrderId="order-123"
|
|
externalCheckoutAnalyticsKey="tip.external_checkout"
|
|
ezpayDescription="Your coffee order is ready."
|
|
launch={{
|
|
...hiddenLaunch,
|
|
isConfirmingEzpay: true,
|
|
shouldShowEzpayConfirmDialog: true,
|
|
}}
|
|
/>,
|
|
);
|
|
|
|
expect(html).toContain('role="alertdialog"');
|
|
expect(html).toContain("Continue to GCash?");
|
|
expect(html).toContain("Your coffee order is ready.");
|
|
expect(html).toContain("Order No. order-123");
|
|
expect(html).toContain('data-analytics-key="tip.external_checkout"');
|
|
expect(html).toContain("Opening...");
|
|
});
|
|
});
|