Files
pangolin/client/test/widget/invite_page_test.dart
T

32 lines
1.2 KiB
Dart

import 'package:flutter/material.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:pangolin_vpn/l10n/strings_en.dart';
import 'package:pangolin_vpn/screens/invite_page.dart';
import 'package:pangolin_vpn/services/invite_api.dart';
import 'package:pangolin_vpn/state/invite_provider.dart';
import '../helpers/harness.dart';
void main() {
testWidgets('邀请页显示真实码 + 战绩 + TG 任务卡', (tester) async {
const info = InviteInfo(code: 'ABCD2345', link: 'https://x/i/ABCD2345',
invited: 3, converted: 1, earnedDays: 16, tgEnabled: true, tgJoined: false, channel: '@pangolin_app');
await tester.binding.setSurfaceSize(const Size(400, 1200));
addTearDown(() => tester.binding.setSurfaceSize(null));
await tester.pumpWidget(wrapThemed(
InviteScreen(t: StringsEn()),
overrides: [inviteProvider.overrideWith(() => _FakeNotifier(info))],
));
await tester.pumpAndSettle();
expect(find.text('ABCD2345'), findsOneWidget);
expect(find.text('Join channel'), findsOneWidget); // TG 任务卡
});
}
class _FakeNotifier extends InviteNotifier {
_FakeNotifier(this._v);
final InviteInfo _v;
@override
Future<InviteInfo?> build() async => _v;
}