32 lines
1.2 KiB
Dart
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;
|
|
}
|