cyberhybridhub/test/admin/utils/sync_run_formatters_test.dart
2026-05-31 11:17:12 -05:00

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 Alpaca start form', () {
expect(
formatMarketHistorySlotWire(DateTime.utc(2026, 5, 26, 8)),
'2026-05-26T08:00:00Z',
);
expect(
formatMarketHistorySlotWire(DateTime.utc(2026, 5, 26, 10, 30)),
'2026-05-26T08:00: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);
});
}