Fixed unable to edit Team
This commit is contained in:
@@ -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');
|
||||
});
|
||||
}
|
||||
@@ -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);
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user