widgetCardTestTemplate function
Implementation
String widgetCardTestTemplate(String name, String className, bool useFreezed) =>
'''
import 'package:flutter/material.dart';
import 'package:flutter_test/flutter_test.dart';
import '../../../../../lib/features/$name/presentation/widgets/${name}_card.dart';
${useFreezed ? "import '../../../../../lib/features/$name/domain/entities/${name}_entity.dart';" : ''}
void main() {
group('${className}Card', () {
testWidgets('should display the provided title', (tester) async {
const testTitle = 'Test Title';
await tester.pumpWidget(
const MaterialApp(
home: Scaffold(
body: ${className}Card(title: testTitle),
),
),
);
expect(find.text(testTitle), findsOneWidget);
expect(find.byType(Card), findsOneWidget);
});
${useFreezed ? '''
testWidgets('should display entity information when provided', (tester) async {
const testTitle = 'Test Title';
const testEntity = ${className}Entity(
id: '123',
name: 'Test Name',
description: 'Test Description',
);
await tester.pumpWidget(
const MaterialApp(
home: Scaffold(
body: ${className}Card(
title: testTitle,
entity: testEntity,
),
),
),
);
expect(find.text(testTitle), findsOneWidget);
expect(find.text('ID: 123'), findsOneWidget);
expect(find.text('Name: Test Name'), findsOneWidget);
expect(find.text('Description: Test Description'), findsOneWidget);
expect(find.byType(Card), findsOneWidget);
});
testWidgets('should handle null entity gracefully', (tester) async {
const testTitle = 'Test Title';
await tester.pumpWidget(
const MaterialApp(
home: Scaffold(
body: ${className}Card(
title: testTitle,
entity: null,
),
),
),
);
expect(find.text(testTitle), findsOneWidget);
expect(find.text('ID:'), findsNothing);
expect(find.byType(Card), findsOneWidget);
});
''' : ''}
});
}
''';