cardy
Advanced tools
Comparing version 0.6.0 to 0.7.0
@@ -49,2 +49,17 @@ 'use strict'; | ||
result.year = year; | ||
var date = new Date(); | ||
var currentYear = date.getFullYear(); | ||
var currentMonth = date.getMonth() + 1; | ||
// Year is in the past | ||
if (year < currentYear) { | ||
return result; | ||
} | ||
// Expired some time during the current year | ||
if (year === currentYear && month < currentMonth) { | ||
return result; | ||
} | ||
result.isValid = true; | ||
@@ -51,0 +66,0 @@ |
{ | ||
"name": "cardy", | ||
"version": "0.6.0", | ||
"version": "0.7.0", | ||
"description": "A credit card utility belt for browser and Node.js apps", | ||
@@ -5,0 +5,0 @@ "main": "index.js", |
@@ -39,2 +39,17 @@ const minLength = '12017'.length; | ||
result.year = year; | ||
const date = new Date(); | ||
const currentYear = date.getFullYear(); | ||
const currentMonth = date.getMonth() + 1; | ||
// Year is in the past | ||
if (year < currentYear) { | ||
return result; | ||
} | ||
// Expired some time during the current year | ||
if (year === currentYear && month < currentMonth) { | ||
return result; | ||
} | ||
result.isValid = true; | ||
@@ -41,0 +56,0 @@ |
@@ -23,5 +23,9 @@ import { assert } from 'chai'; | ||
// Year out of range | ||
assert.isFalse(expiration.validate('01/2016').isValid); | ||
assert.isFalse(expiration.validate('01/2017').isValid); | ||
// Month out of range | ||
assert.isFalse(expiration.validate('02017').isValid); | ||
assert.isFalse(expiration.validate('132017').isValid); | ||
assert.isFalse(expiration.validate('02018').isValid); | ||
assert.isFalse(expiration.validate('132018').isValid); | ||
}); | ||
@@ -31,30 +35,30 @@ | ||
// No slash or dash | ||
assert.isTrue(expiration.validate('12017').isValid); | ||
assert.isTrue(expiration.validate('012017').isValid); | ||
assert.isTrue(expiration.validate('12018').isValid); | ||
assert.isTrue(expiration.validate('012018').isValid); | ||
// Slash | ||
assert.isTrue(expiration.validate('1/2017').isValid); | ||
assert.isTrue(expiration.validate('01/2017').isValid); | ||
assert.isTrue(expiration.validate('1/2018').isValid); | ||
assert.isTrue(expiration.validate('01/2018').isValid); | ||
// Dash | ||
assert.isTrue(expiration.validate('1-2017').isValid); | ||
assert.isTrue(expiration.validate('01-2017').isValid); | ||
assert.isTrue(expiration.validate('1-2018').isValid); | ||
assert.isTrue(expiration.validate('01-2018').isValid); | ||
}); | ||
it('should extract the month and year from valid input', () => { | ||
assert.equal(expiration.validate('12017').month, 1); | ||
assert.equal(expiration.validate('12017').year, 2017); | ||
assert.equal(expiration.validate('12018').month, 1); | ||
assert.equal(expiration.validate('12018').year, 2018); | ||
assert.equal(expiration.validate('012017').month, 1); | ||
assert.equal(expiration.validate('012017').year, 2017); | ||
assert.equal(expiration.validate('012018').month, 1); | ||
assert.equal(expiration.validate('012018').year, 2018); | ||
assert.equal(expiration.validate('1/2017').month, 1); | ||
assert.equal(expiration.validate('01/2017').month, 1); | ||
assert.equal(expiration.validate('1/2017').year, 2017); | ||
assert.equal(expiration.validate('01/2017').year, 2017); | ||
assert.equal(expiration.validate('1/2018').month, 1); | ||
assert.equal(expiration.validate('01/2018').month, 1); | ||
assert.equal(expiration.validate('1/2018').year, 2018); | ||
assert.equal(expiration.validate('01/2018').year, 2018); | ||
assert.equal(expiration.validate('1-2017').month, 1); | ||
assert.equal(expiration.validate('01-2017').month, 1); | ||
assert.equal(expiration.validate('1-2017').year, 2017); | ||
assert.equal(expiration.validate('01-2017').year, 2017); | ||
assert.equal(expiration.validate('1-2018').month, 1); | ||
assert.equal(expiration.validate('01-2018').month, 1); | ||
assert.equal(expiration.validate('1-2018').year, 2018); | ||
assert.equal(expiration.validate('01-2018').year, 2018); | ||
}); | ||
@@ -71,12 +75,12 @@ }); | ||
// No slash or dash | ||
assert.equal(expiration.format('12017'), '01/2017'); | ||
assert.equal(expiration.format('122017'), '12/2017'); | ||
assert.equal(expiration.format('12018'), '01/2018'); | ||
assert.equal(expiration.format('122018'), '12/2018'); | ||
// Slash | ||
assert.equal(expiration.format('1/2017'), '01/2017'); | ||
assert.equal(expiration.format('12/2017'), '12/2017'); | ||
assert.equal(expiration.format('1/2018'), '01/2018'); | ||
assert.equal(expiration.format('12/2018'), '12/2018'); | ||
// Dash | ||
assert.equal(expiration.format('1-2017'), '01/2017'); | ||
assert.equal(expiration.format('12-2017'), '12/2017'); | ||
assert.equal(expiration.format('1-2018'), '01/2018'); | ||
assert.equal(expiration.format('12-2018'), '12/2018'); | ||
}); | ||
@@ -91,3 +95,3 @@ }); | ||
assert.equal(expiration.mask('012a'), '012'); | ||
assert.equal(expiration.mask('012017a'), '012017'); | ||
assert.equal(expiration.mask('012018a'), '012018'); | ||
assert.equal(expiration.mask('1--'), '1-'); | ||
@@ -101,3 +105,3 @@ }); | ||
assert.equal(expiration.mask('1201'), '12/01'); | ||
assert.equal(expiration.mask('12017'), '12/017'); | ||
assert.equal(expiration.mask('12018'), '12/018'); | ||
@@ -108,3 +112,3 @@ assert.equal(expiration.mask('01'), '01'); | ||
assert.equal(expiration.mask('01201'), '01/201'); | ||
assert.equal(expiration.mask('012017'), '01/2017'); | ||
assert.equal(expiration.mask('012018'), '01/2018'); | ||
@@ -115,3 +119,3 @@ assert.equal(expiration.mask('1-'), '01/'); | ||
assert.equal(expiration.mask('11-201'), '11/201'); | ||
assert.equal(expiration.mask('12-2017'), '12/2017'); | ||
assert.equal(expiration.mask('12-2018'), '12/2018'); | ||
@@ -122,3 +126,3 @@ assert.equal(expiration.mask('01-'), '01/'); | ||
assert.equal(expiration.mask('01-201'), '01/201'); | ||
assert.equal(expiration.mask('01-2017'), '01/2017'); | ||
assert.equal(expiration.mask('01-2018'), '01/2018'); | ||
@@ -129,3 +133,3 @@ assert.equal(expiration.mask('1/'), '01/'); | ||
assert.equal(expiration.mask('1/201'), '01/201'); | ||
assert.equal(expiration.mask('1/2017'), '01/2017'); | ||
assert.equal(expiration.mask('1/2018'), '01/2018'); | ||
@@ -136,5 +140,5 @@ assert.equal(expiration.mask('01/'), '01/'); | ||
assert.equal(expiration.mask('01/201'), '01/201'); | ||
assert.equal(expiration.mask('01/2017'), '01/2017'); | ||
assert.equal(expiration.mask('01/2018'), '01/2018'); | ||
}); | ||
}); | ||
}); |
53635
1349