Skip to content

Commit 49fa871

Browse files
committed
tests: ensure timezone file is up-to-date
1 parent 53b9a14 commit 49fa871

File tree

1 file changed

+24
-0
lines changed

1 file changed

+24
-0
lines changed

test/widgets/profile_test.dart

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,12 @@
11
import 'package:checks/checks.dart';
2+
import 'package:clock/clock.dart';
3+
import 'package:fake_async/fake_async.dart';
4+
import 'package:flutter/foundation.dart';
25
import 'package:flutter/material.dart';
36
import 'package:flutter_test/flutter_test.dart';
7+
import 'package:timezone/data/latest_all.dart' as tz;
8+
import 'package:timezone/timezone.dart' as tz;
9+
import 'package:timezone/src/tzdb.dart' as tz;
410
import 'package:url_launcher/url_launcher.dart';
511
import 'package:zulip/api/model/initial_snapshot.dart';
612
import 'package:zulip/api/model/model.dart';
@@ -66,6 +72,10 @@ CustomProfileField mkCustomProfileField(
6672
);
6773
}
6874

75+
void resetTimezones() {
76+
tz.initializeDatabase([]);
77+
}
78+
6979
void main() {
7080
TestZulipBinding.ensureInitialized();
7181

@@ -317,5 +327,19 @@ void main() {
317327

318328
check(find.textContaining(longString).evaluate()).length.equals(7);
319329
});
330+
331+
test('assets; ensure the timezone database used to display users\' local time is up-to-date', () async {
332+
tz.initializeTimeZones();
333+
final latestTimezones = tz.tzdbSerialize(tz.timeZoneDatabase);
334+
335+
await UserLocalTimeText.initializeTimezonesUsingAssets();
336+
final currentTimezones = tz.tzdbSerialize(tz.timeZoneDatabase);
337+
338+
check(
339+
listEquals(currentTimezones, latestTimezones),
340+
because:
341+
'the timezone database used to display users\' local time is not up-to-date, please copy `package:timezone/data/latest_all.tzf` to `assets/timezone/latest_all.tzf`',
342+
).isTrue();
343+
});
320344
});
321345
}

0 commit comments

Comments
 (0)