import {expectAssignable, expectError, expectNotAssignable, expectType} from 'tsd'; import { CronDate, CronExpression, CronFields, DateType, parseExpression, parseFile, ParserOptions, parseString, fieldsToExpression, StringResult } from '../types/ts3'; const interval = parseExpression('0 1 2 3 * 1-3,5'); const intervalIterator = parseExpression('0 1 2 3 * 1-3,5', {iterator: true}); expectType(interval.fields.second); expectType(interval.fields.minute); expectType(interval.fields.hour); expectType(interval.fields.dayOfMonth); expectType(interval.fields.month); expectType(interval.fields.dayOfWeek); expectError(interval.fields = interval.fields); expectError(interval.fields.second = []); expectError(interval.fields.second.push(1)); expectError(interval.fields.minute = []); expectError(interval.fields.minute.push(1)); expectError(interval.fields.hour = []); expectError(interval.fields.hour.push(1)); expectError(interval.fields.dayOfMonth = []); expectError(interval.fields.dayOfMonth.push(1)); expectError(interval.fields.month = []); expectError(interval.fields.month.push(1)); expectError(interval.fields.dayOfWeek = []); expectError(interval.fields.dayOfWeek.push(1)); expectAssignable(0); expectAssignable(59); expectAssignable(0); expectAssignable(59); expectAssignable(0); expectAssignable(23); expectAssignable(1); expectAssignable(31); expectAssignable('L'); expectAssignable(1); expectAssignable(12); expectAssignable(0); expectAssignable(7); const parseOptions: ParserOptions = { currentDate: 'f', startDate: 4, endDate: new Date(), iterator: true, utc: true, tz: 'f', nthDayOfWeek: 5, } expectAssignable<{ currentDate?: string | number | Date startDate?: string | number | Date endDate?: string | number | Date iterator?: boolean utc?: boolean tz?: string nthDayOfWeek?: number }>(parseOptions) expectType(parseExpression('0 1 2 3 * 1-3,5')) expectType>(parseExpression('0 1 2 3 * 1-3,5', parseOptions)) const fields: CronFields = { second: [1, 1], minute: [1], hour: [1], dayOfMonth: [1], month: [1], dayOfWeek: [1], } expectType(fieldsToExpression(fields)) expectType>(fieldsToExpression(fields, parseOptions)) expectType(fieldsToExpression(fields).stringify()) expectType(fieldsToExpression(fields, parseOptions).stringify()) expectType(fieldsToExpression(fields, parseOptions).stringify(true)) expectType(parseFile('path', (err: any, data: StringResult) => console.log(data))) expectType(parseString('path')) const stringResult = parseString('path'); expectType<{ variables: Record, expressions: CronExpression[], errors: Record, }>(stringResult) expectType(interval.fields) expectType(interval.next()) expectType(interval.prev()) expectType(interval.hasNext()) expectType(interval.hasPrev()) expectType(interval.stringify()) expectType(interval.stringify(true)) expectType(interval.reset()) expectType(interval.reset("Sdf")) expectType(interval.reset(5)) expectType(interval.reset(new Date())) expectType(interval.iterate(5)) expectType(interval.iterate(5, (item: CronDate, i: number) => {})) expectAssignable(new Date()) expectAssignable(5) expectAssignable("SDf") expectType>(intervalIterator.next()) expectType>(intervalIterator.prev()) expectType[]>(intervalIterator.iterate(5)) expectType[]>(intervalIterator.iterate(5, (item: IteratorResult, i: number) => {}))