Fixed unable to edit Team

This commit is contained in:
2026-02-18 21:21:45 +08:00
parent 15ce7b7a10
commit 35eae623d8
4 changed files with 127 additions and 54 deletions
+34
View File
@@ -0,0 +1,34 @@
import 'package:flutter_test/flutter_test.dart';
import 'package:tasq/utils/supabase_response.dart';
class _FakePostgrestLike {
final dynamic error;
final int? status;
final String? statusText;
_FakePostgrestLike({this.error, this.status, this.statusText});
}
void main() {
test('extractSupabaseError returns null for null/ok responses', () {
expect(extractSupabaseError(null), isNull);
expect(extractSupabaseError({'data': []}), isNull);
});
test('extractSupabaseError extracts message from Map-shaped error', () {
final res = {
'error': {'message': 'boom'},
};
expect(extractSupabaseError(res), 'boom');
final res2 = {'error': 'simple-error'};
expect(extractSupabaseError(res2), 'simple-error');
});
test('extractSupabaseError extracts from Postgrest-like response', () {
final r1 = _FakePostgrestLike(error: {'message': 'bad'});
expect(extractSupabaseError(r1), 'bad');
final r2 = _FakePostgrestLike(status: 500, statusText: 'server error');
expect(extractSupabaseError(r2), 'server error');
});
}
+36
View File
@@ -136,4 +136,40 @@ void main() {
expect(find.text('Team Name'), findsOneWidget);
},
);
testWidgets('Edit Team dialog: Save button present and Cancel closes', (
WidgetTester tester,
) async {
await tester.binding.setSurfaceSize(const Size(1024, 800));
addTearDown(() async => await tester.binding.setSurfaceSize(null));
final team = Team(
id: 'team-1',
name: 'Support',
leaderId: 'user-2',
officeIds: ['office-1'],
createdAt: DateTime.now(),
);
await tester.pumpWidget(
ProviderScope(
overrides: [
...baseOverrides(),
teamsProvider.overrideWith((ref) => Stream.value([team])),
],
child: const MaterialApp(home: Scaffold(body: TeamsScreen())),
),
);
// Tap edit and verify dialog shows Save button
await tester.tap(find.byIcon(Icons.edit));
await tester.pumpAndSettle();
expect(find.text('Save'), findsOneWidget);
// Cancel closes dialog
await tester.tap(find.text('Cancel'));
await tester.pumpAndSettle();
expect(find.text('Save'), findsNothing);
});
}