From 301afb1ee0f6c9b8b680164b95662a423295501c Mon Sep 17 00:00:00 2001 From: InsanusMokrassar Date: Sat, 24 Apr 2021 18:33:37 +0600 Subject: [PATCH] updates and fixes --- CHANGELOG.md | 1 + .../kotlin/dev/inmo/krontab/StringParser.kt | 9 +++------ .../dev/inmo/krontab/utils/TimeZoneTest.kt | 17 ++++++++++------- 3 files changed, 14 insertions(+), 13 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index fce6dba..24fe066 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,7 @@ * New type `KronSchedulerTz` * `SchedulerFlow` has been deprecated * New extension `asTzFlow` and small changes in `asFlow` logic +* `merge` extensions now return `CollectionKronScheduler` instead of just `KronScheduler` ## 0.5.1 diff --git a/src/commonMain/kotlin/dev/inmo/krontab/StringParser.kt b/src/commonMain/kotlin/dev/inmo/krontab/StringParser.kt index fef6714..b9f29ad 100644 --- a/src/commonMain/kotlin/dev/inmo/krontab/StringParser.kt +++ b/src/commonMain/kotlin/dev/inmo/krontab/StringParser.kt @@ -84,13 +84,10 @@ fun createSimpleScheduler( offsetParsed = offsetParsed ?: offsetFromString dayOfWeekParsed = dayOfWeekParsed ?: dayOfWeekFromString when { - dayOfWeekFromString != null -> return@forEach - offsetFromString == null && yearParsed == null -> { + dayOfWeekFromString != null || offsetFromString != null -> return@forEach + yearParsed == null -> { yearParsed = parseYears(it) } - offsetFromString != null && offsetParsed == null -> { - offsetParsed = offsetFromString - } } } } @@ -150,4 +147,4 @@ fun KrontabTemplate.toKronScheduler(): KronScheduler = buildSchedule(this) /** * Shortcut for [buildSchedule] */ -fun KrontabTemplate.toKronScheduler(defaultOffset: Minutes): KronSchedulerTz = buildSchedule(this, defaultOffset) \ No newline at end of file +fun KrontabTemplate.toKronScheduler(defaultOffset: Minutes): KronSchedulerTz = buildSchedule(this, defaultOffset) diff --git a/src/commonTest/kotlin/dev/inmo/krontab/utils/TimeZoneTest.kt b/src/commonTest/kotlin/dev/inmo/krontab/utils/TimeZoneTest.kt index 481e86a..4663174 100644 --- a/src/commonTest/kotlin/dev/inmo/krontab/utils/TimeZoneTest.kt +++ b/src/commonTest/kotlin/dev/inmo/krontab/utils/TimeZoneTest.kt @@ -10,14 +10,17 @@ class TimeZoneTest { @Test fun testDifferentTimeZonesReturnsDifferentTimes() { val scheduler = buildSchedule { seconds { every(1) } } - val now = DateTime.now() + val baseDate = DateTime.now().startOfWeek runTest { - for (i in 0 .. 24) { - val nowTz = now.toOffset(i.hours) - val next = scheduler.next(nowTz)!! - assertEquals( - (nowTz + 1.seconds).utc.unixMillisLong, next.utc.unixMillisLong - ) + for (i in 0 until 7) { + val now = baseDate + i.days + for (j in 0 .. 24) { + val nowTz = now.toOffset(j.hours) + val next = scheduler.next(nowTz)!! + assertEquals( + (nowTz + 1.seconds).utc.unixMillisLong, next.utc.unixMillisLong + ) + } } } }