Расписание испытаний Zio не повторяется при настройке времени на часах испытаний
Я пытаюсь проверить логику, которую нужно повторять (с течением времени)
Мой тестовый код выглядит так:
val repeatSchedule = Schedule.fixed(1 second) && Schedule.recurs(10) // 10 times, 1 second each time
val logic = for {
now <- ContextModule.now // ContextModule wraps several stuff among with a zio clock
_ <- zio.console.putStrLn("now: " + now) // for debugging
x <- [WHATEVER TESTING LOGIC]
}
} yield x
for {
fiber <- logic.provideCustomLayer(ContextModule.live).repeat(repeatSchedule).fork
_ <- TestClock.adjust(10 second)
x <- fiber.join
} yield assert(x)(Assertion.equalTo(y))
})
Я действительно ожидаю повторения в соответствии с предоставленным мной расписанием (10 раз, раз в секунду), используя поддельное время, которое увеличивается сразу на 10 секунд. Тем не мение,
logic
выполняется только один раз, а затем процесс зависает (никаких предупреждающих сообщений или чего-то еще, у меня нет, например, классификации
A test is using time, but is not advancing the test clock
когда вы забываете вручную настроить время). В консоли я прочитал
now: 1970-01-01T00:00:10Z
это означает, что тестовые часы вводятся правильно, но повторения никогда не происходит.
Что мне не хватает? Спасибо