forked from localvoid/timezone
-
Notifications
You must be signed in to change notification settings - Fork 66
Open
Labels
Description
I find it might be interesting to use the 'clock' package from the Dart team to help us test our application.
They have a very interesting feature where you wrap your code inside a withClock, and you can set the time returned by Clock.now -> so if you use clock.now() instead of DateTime.now inside TZDatime, it is easy to write tests.
withClock(Clock.fixed(DateTime.parse('2000-04-24 13:00:00.000000')), () {
final DateTime nowClock = clock.now();
final nowParis = TZDateTime.now(getLocation('Europe/Paris'));
print('TZLocatedNowWithClockOverride:${TZDateTime.from(nowClock, getLocation('Europe/Paris'))}');
print('paris:$nowParis');
}
If you are in Paris, it currently, returns:
nowclock:2000-04-24 13:00:00.000
TZLocatedNowWithClockOverride:2000-04-24 13:00:00.000+0200
paris:2023-04-24 13:14:47.899249+0200
After the change, it would return:
nowclock:2000-04-24 13:00:00.000
TZLocatedNowWithClockOverride:2000-04-24 13:00:00.000+0200
paris:2000-04-24 13:00:00.000+0200
mathisfouques, FMorschel, jfahrenkrug and k0psutin