Socket
Socket
Sign inDemoInstall

cardy

Package Overview
Dependencies
2
Maintainers
1
Versions
10
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 0.6.0 to 0.7.0

15

lib/expiration.js

@@ -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 @@

2

package.json
{
"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');
});
});
});
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc