Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

test: add automated Cypress test for card number input validation #796

Merged
merged 8 commits into from
Feb 18, 2025
Prev Previous commit
Next Next commit
test: update card number validation test cases
aritro2002 committed Dec 5, 2024
commit b4f6af00bdc31e90251e29d7bccebabd86975cee
38 changes: 18 additions & 20 deletions cypress-tests/cypress/e2e/card-number-validation-test.cy.ts
Original file line number Diff line number Diff line change
@@ -30,65 +30,63 @@ describe("Card number validation test", () => {
it("should fail with an undetectable card brand", () => {
const { card_exp_month, card_exp_year, cvc } = stripeCards.successCard;

getIframeBody().find('[data-testid=cardNoInput]').type("111111");
getIframeBody().find('[data-testid=expiryInput]').type(card_exp_month);
getIframeBody().find('[data-testid=expiryInput]').type(card_exp_year);
getIframeBody().find('[data-testid=cvvInput]').type(cvc);
getIframeBody().find(`[data-testid=${testIds.cardNoInputTestId}]`).type("111111");
getIframeBody().find(`[data-testid=${testIds.expiryInputTestId}]`).type(card_exp_month);
getIframeBody().find(`[data-testid=${testIds.expiryInputTestId}]`).type(card_exp_year);
getIframeBody().find(`[data-testid=${testIds.cardCVVInputTestId}]`).type(cvc);

getIframeBody().get("#submit").click();

getIframeBody().find('.Error.pt-1').should('be.visible')
.and('contain.text', "Please enter a valid card number.");
getIframeBody().find('[data-testid=cardNoInput]').click();
getIframeBody().find(`[data-testid=${testIds.cardNoInputTestId}]`).click();
getIframeBody().find('.Error.pt-1').should('not.exist');

});

it("should fail with a detectable but invalid card number", () => {
const { card_exp_month, card_exp_year, cvc } = stripeCards.successCard;

getIframeBody().find('[data-testid=cardNoInput]').type("424242");
getIframeBody().find('[data-testid=expiryInput]').type(card_exp_month);
getIframeBody().find('[data-testid=expiryInput]').type(card_exp_year);
getIframeBody().find('[data-testid=cvvInput]').type(cvc);
getIframeBody().find(`[data-testid=${testIds.cardNoInputTestId}]`).type("424242");
getIframeBody().find(`[data-testid=${testIds.expiryInputTestId}]`).type(card_exp_month);
getIframeBody().find(`[data-testid=${testIds.expiryInputTestId}]`).type(card_exp_year);
getIframeBody().find(`[data-testid=${testIds.cardCVVInputTestId}]`).type(cvc);

getIframeBody().get("#submit").click();

getIframeBody().find('.Error.pt-1').should('be.visible')
.and('contain.text', "Card number is invalid.");
getIframeBody().find('[data-testid=cardNoInput]').click();
getIframeBody().find(`[data-testid=${testIds.cardNoInputTestId}]`).click();
getIframeBody().find('.Error.pt-1').should('not.exist');
});

it("should fail with an unsupported card brand (RuPay)", () => {
const { card_exp_month, card_exp_year, cvc } = stripeCards.successCard;

getIframeBody().find('[data-testid=cardNoInput]').type("6082015309577308");
getIframeBody().find('[data-testid=expiryInput]').type(card_exp_month);
getIframeBody().find('[data-testid=expiryInput]').type(card_exp_year);
getIframeBody().find('[data-testid=cvvInput]').type(cvc);
getIframeBody().find(`[data-testid=${testIds.cardNoInputTestId}]`).type("6082015309577308");
getIframeBody().find(`[data-testid=${testIds.expiryInputTestId}]`).type(card_exp_month);
getIframeBody().find(`[data-testid=${testIds.expiryInputTestId}]`).type(card_exp_year);
getIframeBody().find(`[data-testid=${testIds.cardCVVInputTestId}]`).type(cvc);

getIframeBody().get("#submit").click();

getIframeBody().find('.Error.pt-1').should('be.visible')
.and('contain.text', "RuPay is not supported at the moment.");
getIframeBody().find('[data-testid=cardNoInput]').click();
getIframeBody().find(`[data-testid=${testIds.cardNoInputTestId}]`).click();
getIframeBody().find('.Error.pt-1').should('not.exist');
});

it("should fail with an empty card number", () => {
const { card_exp_month, card_exp_year, cvc } = stripeCards.successCard;

getIframeBody().find('[data-testid=expiryInput]').type(card_exp_month);
getIframeBody().find('[data-testid=expiryInput]').type(card_exp_year);
getIframeBody().find('[data-testid=cvvInput]').type(cvc);
getIframeBody().find(`[data-testid=${testIds.expiryInputTestId}]`).type(card_exp_month);
getIframeBody().find(`[data-testid=${testIds.expiryInputTestId}]`).type(card_exp_year);
getIframeBody().find(`[data-testid=${testIds.cardCVVInputTestId}]`).type(cvc);

getIframeBody().get("#submit").click();

getIframeBody().find('.Error.pt-1').should('be.visible')
.and('contain.text', "Card Number cannot be empty");
getIframeBody().find('[data-testid=cardNoInput]').click();
getIframeBody().find('.Error.pt-1').should('not.exist');
});

});