36 lines
1.4 KiB
TypeScript
36 lines
1.4 KiB
TypeScript
|
import { findInScheduleTypes } from '../server/helper/typeFind'
|
||
|
import { supportedSchedule } from '../server/types/scheduledEventTypes'
|
||
|
import { getRepetitonInfo } from '../server/handler/repeatingEvents/helper'
|
||
|
import { RepetitonInfo } from '../server/types/scheduledEventTypes'
|
||
|
describe('Schedule names are parsed correctly', () => {
|
||
|
const dailyValue: supportedSchedule = 'daily'
|
||
|
const weeklyValue: supportedSchedule = 'weekly'
|
||
|
const monthlyValue: supportedSchedule = 'monthly'
|
||
|
test('Easy schedule names', () => {
|
||
|
expect(findInScheduleTypes('daily')).toEqual(dailyValue)
|
||
|
expect(findInScheduleTypes('weekly')).toEqual(weeklyValue)
|
||
|
expect(findInScheduleTypes('monthly')).toEqual(monthlyValue)
|
||
|
})
|
||
|
test('Medium schedule names', () => {
|
||
|
expect(findInScheduleTypes('Daily')).toEqual(dailyValue)
|
||
|
expect(findInScheduleTypes('Weekly')).toEqual(weeklyValue)
|
||
|
expect(findInScheduleTypes('Monthly')).toEqual(monthlyValue)
|
||
|
expect(findInScheduleTypes('DAILY')).toEqual(dailyValue)
|
||
|
expect(findInScheduleTypes('WEEKLy')).toEqual(weeklyValue)
|
||
|
expect(findInScheduleTypes('MONTHly')).toEqual(monthlyValue)
|
||
|
})
|
||
|
})
|
||
|
describe('Parsing of Repetition Info from Description String',()=>{
|
||
|
test('Happy Path',()=>{
|
||
|
const inputString = '$rep:daily:1/3'
|
||
|
const expectedInfo: RepetitonInfo = {
|
||
|
totalAmount: 3,
|
||
|
alreadyOccured: 1,
|
||
|
schedule: 'daily'
|
||
|
}
|
||
|
|
||
|
expect(getRepetitonInfo(inputString)).toEqual(expectedInfo)
|
||
|
})
|
||
|
|
||
|
})
|