You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					33 lines
				
				1.1 KiB
			
		
		
			
		
	
	
					33 lines
				
				1.1 KiB
			| 
								 
											3 years ago
										 
									 | 
							
								var test = require('tap').test;
							 | 
						||
| 
								 | 
							
								var CronExpression = require('../lib/expression');
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								test('Fields are exposed', function(t){
							 | 
						||
| 
								 | 
							
								  try {
							 | 
						||
| 
								 | 
							
								    var interval = CronExpression.parse('0 1 2 3 * 1-3,5');
							 | 
						||
| 
								 | 
							
								    t.ok(interval, 'Interval parsed');
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    CronExpression.map.forEach(function(field) {
							 | 
						||
| 
								 | 
							
								      interval.fields[field] = [];
							 | 
						||
| 
								 | 
							
								      t.throws(function() {
							 | 
						||
| 
								 | 
							
								        interval.fields[field].push(-1);
							 | 
						||
| 
								 | 
							
								      }, /Cannot add property .*?, object is not extensible/, field + ' is frozen');
							 | 
						||
| 
								 | 
							
								      delete interval.fields[field];
							 | 
						||
| 
								 | 
							
								    });
							 | 
						||
| 
								 | 
							
								    interval.fields.dummy = [];
							 | 
						||
| 
								 | 
							
								    t.same(interval.fields.dummy, undefined, 'Fields is frozen');
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    t.same(interval.fields.second, [0], 'Second matches');
							 | 
						||
| 
								 | 
							
								    t.same(interval.fields.minute, [1], 'Minute matches');
							 | 
						||
| 
								 | 
							
								    t.same(interval.fields.hour, [2], 'Hour matches');
							 | 
						||
| 
								 | 
							
								    t.same(interval.fields.dayOfMonth, [3], 'Day of month matches');
							 | 
						||
| 
								 | 
							
								    t.same(interval.fields.month, [1,2,3,4,5,6,7,8,9,10,11,12], 'Month matches');
							 | 
						||
| 
								 | 
							
								    t.same(interval.fields.dayOfWeek, [1,2,3,5], 'Day of week matches');
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  } catch (err) {
							 | 
						||
| 
								 | 
							
								    t.error(err, 'Interval parse error');
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  t.end();
							 | 
						||
| 
								 | 
							
								});
							 | 
						||
| 
								 | 
							
								
							 |