widgetCardTestTemplate function

String widgetCardTestTemplate(
  1. String name,
  2. String className,
  3. bool useFreezed
)

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);
    });
    ''' : ''}
  });
}
''';