31 lines
1.1 KiB
Dart
31 lines
1.1 KiB
Dart
import 'package:flutter_test/flutter_test.dart';
|
|
import 'package:plezy/utils/jellyfin_time.dart';
|
|
|
|
void main() {
|
|
group('Jellyfin time conversions', () {
|
|
test('converts ticks and milliseconds in both directions', () {
|
|
expect(jellyfinTicksToMs(12_345_678), 1234);
|
|
expect(jellyfinTicksToMs(12.5), 0);
|
|
expect(jellyfinTicksToMs('10000'), isNull);
|
|
expect(msToJellyfinTicks(1234), 12_340_000);
|
|
});
|
|
|
|
test('converts ISO timestamps to UTC epoch seconds', () {
|
|
expect(jellyfinIsoToEpochSeconds('1970-01-01T00:00:01.999Z'), 1);
|
|
expect(jellyfinIsoToEpochSeconds('1970-01-01T01:00:01+01:00'), 1);
|
|
});
|
|
|
|
test('returns null for missing or invalid ISO timestamps', () {
|
|
expect(jellyfinIsoToEpochSeconds(null), isNull);
|
|
expect(jellyfinIsoToEpochSeconds(''), isNull);
|
|
expect(jellyfinIsoToEpochSeconds('not-a-date'), isNull);
|
|
});
|
|
|
|
test('truncates ISO timestamps to the calendar date', () {
|
|
expect(jellyfinIsoToYmd('2026-07-12T09:30:00Z'), '2026-07-12');
|
|
expect(jellyfinIsoToYmd('2026-07-12'), '2026-07-12');
|
|
expect(jellyfinIsoToYmd(''), isNull);
|
|
});
|
|
});
|
|
}
|