Test Cases
This commit is contained in:
@@ -5,6 +5,7 @@ import 'package:supabase_flutter/supabase_flutter.dart';
|
||||
|
||||
import 'package:tasq/models/office.dart';
|
||||
import 'package:tasq/models/profile.dart';
|
||||
import 'package:tasq/models/ticket_message.dart';
|
||||
import 'package:tasq/models/user_office.dart';
|
||||
import 'package:tasq/providers/profile_provider.dart';
|
||||
|
||||
@@ -15,7 +16,8 @@ import 'package:tasq/screens/admin/user_management_screen.dart';
|
||||
|
||||
class _FakeAdminController extends AdminUserController {
|
||||
_FakeAdminController()
|
||||
: super(SupabaseClient('http://localhost', 'test-key'));
|
||||
: super(SupabaseClient('http://localhost', 'test-key',
|
||||
authOptions: const AuthClientOptions(autoRefreshToken: false)));
|
||||
|
||||
String? lastSetPasswordUserId;
|
||||
String? lastSetPasswordValue;
|
||||
@@ -48,7 +50,7 @@ void main() {
|
||||
ProviderScope buildApp({required List<Override> overrides}) {
|
||||
return ProviderScope(
|
||||
overrides: overrides,
|
||||
child: const MaterialApp(home: UserManagementScreen()),
|
||||
child: const MaterialApp(home: Scaffold(body: UserManagementScreen())),
|
||||
);
|
||||
}
|
||||
|
||||
@@ -61,6 +63,8 @@ void main() {
|
||||
});
|
||||
|
||||
testWidgets('Edit dialog pre-fills fields and shows actions', (tester) async {
|
||||
await tester.binding.setSurfaceSize(const Size(1280, 900));
|
||||
addTearDown(() async => await tester.binding.setSurfaceSize(null));
|
||||
await tester.pumpWidget(
|
||||
buildApp(
|
||||
overrides: [
|
||||
@@ -72,7 +76,7 @@ void main() {
|
||||
UserOffice(userId: 'user-1', officeId: 'office-1'),
|
||||
]),
|
||||
),
|
||||
ticketMessagesAllProvider.overrideWith((ref) => const Stream.empty()),
|
||||
ticketMessagesAllProvider.overrideWith((ref) => Stream.value(const <TicketMessage>[])),
|
||||
isAdminProvider.overrideWith((ref) => true),
|
||||
// Provide an AdminUserStatus so the dialog can show email/status immediately.
|
||||
adminUserStatusProvider.overrideWithProvider(
|
||||
@@ -89,6 +93,10 @@ void main() {
|
||||
|
||||
await tester.pump();
|
||||
await tester.pump(const Duration(milliseconds: 16));
|
||||
for (var i = 0; i < 20; i++) {
|
||||
if (find.text('Alice Admin').evaluate().isNotEmpty) break;
|
||||
await tester.pump(const Duration(milliseconds: 50));
|
||||
}
|
||||
|
||||
expect(find.text('Alice Admin'), findsOneWidget);
|
||||
|
||||
@@ -138,6 +146,8 @@ void main() {
|
||||
testWidgets('Reset password and lock call admin controller', (tester) async {
|
||||
final fake = _FakeAdminController();
|
||||
|
||||
await tester.binding.setSurfaceSize(const Size(1280, 900));
|
||||
addTearDown(() async => await tester.binding.setSurfaceSize(null));
|
||||
await tester.pumpWidget(
|
||||
buildApp(
|
||||
overrides: [
|
||||
@@ -149,7 +159,7 @@ void main() {
|
||||
UserOffice(userId: 'user-1', officeId: 'office-1'),
|
||||
]),
|
||||
),
|
||||
ticketMessagesAllProvider.overrideWith((ref) => const Stream.empty()),
|
||||
ticketMessagesAllProvider.overrideWith((ref) => Stream.value(const <TicketMessage>[])),
|
||||
isAdminProvider.overrideWith((ref) => true),
|
||||
adminUserStatusProvider.overrideWithProvider(
|
||||
FutureProvider.autoDispose.family<AdminUserStatus, String>(
|
||||
@@ -166,6 +176,10 @@ void main() {
|
||||
|
||||
await tester.pump();
|
||||
await tester.pump(const Duration(milliseconds: 16));
|
||||
for (var i = 0; i < 20; i++) {
|
||||
if (find.text('Alice Admin').evaluate().isNotEmpty) break;
|
||||
await tester.pump(const Duration(milliseconds: 50));
|
||||
}
|
||||
|
||||
// Open edit dialog (again)
|
||||
await tester.tap(find.text('Alice Admin'));
|
||||
|
||||
Reference in New Issue
Block a user