From 8ba907d816e29f1b16574ec0899599a89661ae40 Mon Sep 17 00:00:00 2001
From: Iryna Lagno <ilagno@ebay.com>
Date: Fri, 26 Jun 2015 16:39:17 +0300
Subject: [PATCH] MAGETWO-38647: credit card validation issue

---
 .../web/js/model/credit-card-validation/validator.js      | 8 +++++---
 .../view/frontend/web/template/payment/cc-form.html       | 4 ++--
 2 files changed, 7 insertions(+), 5 deletions(-)

diff --git a/app/code/Magento/Payment/view/frontend/web/js/model/credit-card-validation/validator.js b/app/code/Magento/Payment/view/frontend/web/js/model/credit-card-validation/validator.js
index 3b21f32dc80..660f3e3c047 100644
--- a/app/code/Magento/Payment/view/frontend/web/js/model/credit-card-validation/validator.js
+++ b/app/code/Magento/Payment/view/frontend/web/js/model/credit-card-validation/validator.js
@@ -11,12 +11,13 @@
             'Magento_Payment/js/model/credit-card-validation/cvv-validator',
             'Magento_Payment/js/model/credit-card-validation/credit-card-number-validator',
             'Magento_Payment/js/model/credit-card-validation/expiration-date-validator/expiration-year-validator',
-            'Magento_Payment/js/model/credit-card-validation/expiration-date-validator/expiration-month-validator'
+            'Magento_Payment/js/model/credit-card-validation/expiration-date-validator/expiration-month-validator',
+            'Magento_Payment/js/model/credit-card-validation/credit-card-data'
         ], factory);
     } else {
         factory(jQuery);
     }
-}(function ($, cvvValidator, creditCardNumberValidator, expirationDateValidator, monthValidator) {
+}(function ($, cvvValidator, creditCardNumberValidator, expirationDateValidator, monthValidator, creditCardData) {
     "use strict";
 
     $.each({
@@ -49,7 +50,8 @@
              * @return {boolean}
              */
                 function (cvv) {
-                return cvvValidator(cvv).isValid;
+                var maxLength = creditCardData.creditCard ? creditCardData.creditCard.code.size : 3;
+                return cvvValidator(cvv, maxLength).isValid;
             },
             'Please enter a valid credit card verification number.'
         ],
diff --git a/app/code/Magento/Payment/view/frontend/web/template/payment/cc-form.html b/app/code/Magento/Payment/view/frontend/web/template/payment/cc-form.html
index 09048a925c0..67336808c1e 100644
--- a/app/code/Magento/Payment/view/frontend/web/template/payment/cc-form.html
+++ b/app/code/Magento/Payment/view/frontend/web/template/payment/cc-form.html
@@ -62,7 +62,7 @@
                     <div class="control">
                         <select  name="payment[cc_exp_month]"
                                  class="select select-month"
-                                 data-bind="attr: {id: getCode() + '_expiration', 'data-container': getCode() + '-cc-month', 'data-validate': JSON.stringify({required:true, 'validate-card-date':'#' + getCode() + '_expiration_yr'})},
+                                 data-bind="attr: {id: getCode() + '_expiration', 'data-container': getCode() + '-cc-month', 'data-validate': JSON.stringify({required:true, 'validate-cc-exp':'#' + getCode() + '_expiration_yr'})},
                                             enable: isActive($parents),
                                             options: getCcMonthsValues(),
                                             optionsValue: 'value',
@@ -76,7 +76,7 @@
                     <div class="control">
                         <select name="payment[cc_exp_year]"
                                 class="select select-year"
-                                data-bind="attr: {id: getCode() + '_expiration_yr', 'data-container': getCode() + '-cc-year', 'data-validate': JSON.stringify({required:true, 'validate-card-year':'#' + getCode() + '_expiration_yr'})},
+                                data-bind="attr: {id: getCode() + '_expiration_yr', 'data-container': getCode() + '-cc-year', 'data-validate': JSON.stringify({required:true})},
                                            enable: isActive($parents),
                                            options: getCcYearsValues(),
                                            optionsValue: 'value',
-- 
GitLab