UNPKG

devextreme

Version:

JavaScript/TypeScript Component Suite for Responsive Web Development

91 lines (90 loc) 3.38 kB
/** * DevExtreme (esm/__internal/scheduler/recurrence/validate_rule.test.js) * Version: 25.2.5 * Build date: Fri Feb 20 2026 * * Copyright (c) 2012 - 2026 Developer Express Inc. ALL RIGHTS RESERVED * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/ */ import { describe, expect, it } from "@jest/globals"; import { parseRecurrenceRule } from "./base"; import { validateRRule, validateRRuleObject } from "./validate_rule"; describe("validateRRule", (() => { it("should return true for valid rule", (() => { const isValid = validateRRule("FREQ=MONTHLY"); expect(isValid).toBe(true) })); it("should return false for undefined rule", (() => { const isValid = validateRRule(void 0); expect(isValid).toBe(false) })); it("should return false for incorrect freq", (() => { const isValid = validateRRule("FREQ=WRONG"); expect(isValid).toBe(false) })); it("should return false for wrong rule name", (() => { const isValid = validateRRule("FRE=DAILY"); expect(isValid).toBe(false) })); it("should return true and correct parsed rule for wrong count", (() => { const rule = "FREQ=DAILY;COUNT=wrong"; const parsed = parseRecurrenceRule(rule); const isValid = validateRRuleObject(parsed, rule); expect(parsed).toEqual({ freq: "DAILY", interval: 1 }); expect(isValid).toBe(true) })); it("should return true and correct parsed rule for wrong interval", (() => { const rule = "FREQ=DAILY;INTERVAL=wrong"; const parsed = parseRecurrenceRule(rule); const isValid = validateRRuleObject(parsed, rule); expect(parsed).toEqual({ freq: "DAILY", interval: 1 }); expect(isValid).toBe(true) })); it("should return false for wrong byDay", (() => { const isValid = validateRRule("FREQ=DAILY;BYDAY=wrong"); expect(isValid).toBe(false) })); it("should return false for empty byDay", (() => { const isValid = validateRRule("FREQ=DAILY;BYDAY="); expect(isValid).toBe(false) })); it("should return false for wrong byDay, several value", (() => { const isValid = validateRRule("FREQ=DAILY;BYDAY=MO,wrong"); expect(isValid).toBe(false) })); it("should return false for wrong byMonthDay", (() => { const isValid = validateRRule("FREQ=MONTHLY;BYMONTHDAY=wrong"); expect(isValid).toBe(false) })); it("should return false for wrong byMonth", (() => { const isValid = validateRRule("FREQ=YEARLY;BYMONTH=wrong;BYMONTHDAY=12"); expect(isValid).toBe(false) })); it("should return false for wrong until date", (() => { const isValid = validateRRule("FREQ=DAILY;UNTIL=wrong"); expect(isValid).toBe(false) })); it("should return true if byDay has frequence for day", (() => { const isValid = validateRRule("FREQ=MONTHLY;BYDAY=1TU"); expect(isValid).toBe(true) })); it("should return true if byDay has frequence for day", (() => { const isValid = validateRRule("FREQ=MONTHLY;BYDAY=1TU,3FR"); expect(isValid).toBe(true) })) }));