twonly-app/test/visual/contact_joined_at_test.dart

48 lines
1.5 KiB
Dart

import 'package:clock/clock.dart';
import 'package:flutter/material.dart';
import 'package:flutter_localizations/flutter_localizations.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:twonly/src/localization/generated/app_localizations.dart';
import 'package:twonly/src/utils/misc.dart';
void main() {
testWidgets('formats contact join age into friendly calendar ranges', (
tester,
) async {
final now = DateTime.utc(2026, 10, 5, 12);
late BuildContext context;
await tester.pumpWidget(
MaterialApp(
localizationsDelegates: const [
AppLocalizations.delegate,
GlobalMaterialLocalizations.delegate,
GlobalWidgetsLocalizations.delegate,
GlobalCupertinoLocalizations.delegate,
],
supportedLocales: AppLocalizations.supportedLocales,
home: Builder(
builder: (buildContext) {
context = buildContext;
return const SizedBox.shrink();
},
),
),
);
withClock(Clock.fixed(now), () {
expect(formatJoinedAt(context, now), 'Joined today');
expect(
formatJoinedAt(context, now.subtract(const Duration(days: 20))),
'Joined 20 days ago',
);
expect(
formatJoinedAt(context, now.subtract(const Duration(days: 60))),
'Joined 2 months ago',
);
expect(
formatJoinedAt(context, now.subtract(const Duration(days: 730))),
'Joined 2 years ago',
);
});
});
}