123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- var util = require('util');
- var test = require('tap').test;
- var CronParser = require('../lib/parser');
- test('parse cron with last day in a month', function(t) {
- var options = {
- currentDate: new Date(2014, 0, 1),
- endDate: new Date(2014, 10, 1)
- };
- try {
- var interval = CronParser.parseExpression('0 0 L * *', options);
- t.equal(interval.hasNext(), true);
- for (i = 0; i < 10; ++i) {
- var next = interval.next();
- t.ok(next, 'has a date');
- }
- } catch (err) {
- t.ifError(err, 'Parse read error');
- }
- t.end();
- });
- test('parse cron with last day in feb', function(t) {
- var options = {
- currentDate: new Date(2016, 0, 1),
- endDate: new Date(2016, 10, 1)
- };
- try {
- var interval = CronParser.parseExpression('0 0 6-20/2,L 2 *', options);
- t.equal(interval.hasNext(), true);
- var next = null;
- var items = 9;
- var i = 0;
- while(interval.hasNext()) {
- next = interval.next();
- i += 1;
- t.ok(next, 'has a date');
- }
- //leap year
- t.equal(next.getDate(), 29);
- t.equal(i, items);
- } catch (err) {
- t.ifError(err, 'Parse read error');
- }
- t.end();
- });
- test('parse cron with last day in feb', function(t) {
- var options = {
- currentDate: new Date(2014, 0, 1),
- endDate: new Date(2014, 10, 1)
- };
- try {
- var interval = CronParser.parseExpression('0 0 1,3,6-10,L 2 *', options);
- t.equal(interval.hasNext(), true);
- var next = null;
- while(interval.hasNext()) {
- next = interval.next();
- t.ok(next, 'has a date');
- }
- //common year
- t.equal(next.getDate(), 28);
- } catch (err) {
- t.ifError(err, 'Parse read error');
- }
- t.end();
- });
|