85 lines
2.8 KiB
Dart
85 lines
2.8 KiB
Dart
import 'package:flutter/material.dart';
|
|
import 'package:flutter_test/flutter_test.dart';
|
|
import 'package:moonwell_launcher/app/design_system/mw_authentication.dart';
|
|
import 'package:moonwell_launcher/app/theme/moonwell_design_system.dart';
|
|
|
|
void main() {
|
|
testWidgets('authentication placeholders use muted text color', (
|
|
tester,
|
|
) async {
|
|
await tester.pumpWidget(
|
|
MaterialApp(
|
|
theme: MoonWellTheme.create(MoonWellThemeVariant.forest),
|
|
home: Scaffold(
|
|
body: MwAuthenticationForm(
|
|
usernameController: TextEditingController(),
|
|
passwordController: TextEditingController(),
|
|
onSubmit: () {},
|
|
),
|
|
),
|
|
),
|
|
);
|
|
|
|
final fieldContext = tester.element(find.byType(TextField).first);
|
|
final hintColor = Theme.of(
|
|
fieldContext,
|
|
).inputDecorationTheme.hintStyle?.color;
|
|
|
|
expect(hintColor, const Color(0x69ECE4D0));
|
|
});
|
|
|
|
testWidgets('registration mode exposes all API registration fields', (
|
|
tester,
|
|
) async {
|
|
await tester.pumpWidget(
|
|
MaterialApp(
|
|
theme: MoonWellTheme.create(MoonWellThemeVariant.forest),
|
|
home: Scaffold(
|
|
body: SingleChildScrollView(
|
|
child: MwAuthenticationForm(
|
|
usernameController: TextEditingController(),
|
|
emailController: TextEditingController(),
|
|
passwordController: TextEditingController(),
|
|
passwordConfirmationController: TextEditingController(),
|
|
inviteCodeController: TextEditingController(),
|
|
mode: MwAuthenticationMode.registration,
|
|
termsAccepted: true,
|
|
onSubmit: () {},
|
|
),
|
|
),
|
|
),
|
|
),
|
|
);
|
|
|
|
expect(find.text('СОЗДАТЬ АККАУНТ'), findsOneWidget);
|
|
expect(find.text('EMAIL'), findsOneWidget);
|
|
expect(find.text('ПОВТОРИТЕ ПАРОЛЬ'), findsOneWidget);
|
|
expect(find.text('ИНВАЙТ-КОД (НЕОБЯЗАТЕЛЬНО)'), findsOneWidget);
|
|
expect(
|
|
find.text('Я принимаю правила сервера и пользовательское соглашение'),
|
|
findsOneWidget,
|
|
);
|
|
});
|
|
|
|
testWidgets('authentication tabs request mode changes', (tester) async {
|
|
MwAuthenticationMode? requestedMode;
|
|
await tester.pumpWidget(
|
|
MaterialApp(
|
|
theme: MoonWellTheme.create(MoonWellThemeVariant.forest),
|
|
home: Scaffold(
|
|
body: MwAuthenticationForm(
|
|
usernameController: TextEditingController(),
|
|
passwordController: TextEditingController(),
|
|
onModeChanged: (mode) => requestedMode = mode,
|
|
onSubmit: () {},
|
|
),
|
|
),
|
|
),
|
|
);
|
|
|
|
await tester.tap(find.text('РЕГИСТРАЦИЯ'));
|
|
|
|
expect(requestedMode, MwAuthenticationMode.registration);
|
|
});
|
|
}
|