37 lines
1.2 KiB
Dart
37 lines
1.2 KiB
Dart
import 'package:cyberhybridhub/admin/utils/sync_run_formatters.dart';
|
|
import 'package:flutter_test/flutter_test.dart';
|
|
|
|
void main() {
|
|
test('formatMarketHistorySlotWire matches server slot start wire form', () {
|
|
expect(
|
|
formatMarketHistorySlotWire(DateTime.utc(2026, 5, 26, 13, 30)),
|
|
'2026-05-26T13:30:00Z',
|
|
);
|
|
expect(
|
|
formatMarketHistorySlotWire(DateTime.utc(2026, 5, 26, 16, 45)),
|
|
'2026-05-26T16:45:00Z',
|
|
);
|
|
});
|
|
|
|
test('formatLocalTimestamp converts UTC to local display', () {
|
|
final DateTime utc = DateTime.utc(2026, 5, 27, 14, 30);
|
|
final String formatted = formatLocalTimestamp(utc);
|
|
expect(formatted, contains('2026-05-27'));
|
|
expect(formatted, contains(':'));
|
|
});
|
|
|
|
test('formatRelativeTime handles rate-limit style durations', () {
|
|
final DateTime started = DateTime.utc(2026, 5, 27, 10);
|
|
final DateTime now = DateTime.utc(2026, 5, 27, 12, 30);
|
|
expect(formatRelativeTime(started, now: now), '2h ago');
|
|
});
|
|
|
|
test('parseHttpStatus finds status code in error text', () {
|
|
expect(
|
|
parseHttpStatus('getBarsRange rate limited: 429 Too Many Requests'),
|
|
'429',
|
|
);
|
|
expect(parseHttpStatus('no status here'), isNull);
|
|
});
|
|
}
|