fields.js 1.1 KB

1234567891011121314151617181920212223242526272829303132
  1. var test = require('tap').test;
  2. var CronExpression = require('../lib/expression');
  3. test('Fields are exposed', function(t){
  4. try {
  5. var interval = CronExpression.parse('0 1 2 3 * 1-3,5');
  6. t.ok(interval, 'Interval parsed');
  7. CronExpression.map.forEach(function(field) {
  8. interval.fields[field] = [];
  9. t.throws(function() {
  10. interval.fields[field].push(-1);
  11. }, /Cannot add property .*?, object is not extensible/, field + ' is frozen');
  12. delete interval.fields[field];
  13. });
  14. interval.fields.dummy = [];
  15. t.same(interval.fields.dummy, undefined, 'Fields is frozen');
  16. t.same(interval.fields.second, [0], 'Second matches');
  17. t.same(interval.fields.minute, [1], 'Minute matches');
  18. t.same(interval.fields.hour, [2], 'Hour matches');
  19. t.same(interval.fields.dayOfMonth, [3], 'Day of month matches');
  20. t.same(interval.fields.month, [1,2,3,4,5,6,7,8,9,10,11,12], 'Month matches');
  21. t.same(interval.fields.dayOfWeek, [1,2,3,5], 'Day of week matches');
  22. } catch (err) {
  23. t.error(err, 'Interval parse error');
  24. }
  25. t.end();
  26. });