modelTestTemplate function

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

Implementation

String modelTestTemplate(String name, String className, bool useFreezed) =>
    '''
import 'package:flutter_test/flutter_test.dart';
import '../../../../../lib/features/$name/data/models/${name}_model.dart';

void main() {
  ${useFreezed ? '''
  const t${className}Model = ${className}Model(
    id: '123',
    name: 'Test Name',
    description: 'Test Description',
  );
  ''' : '''
  const t${className}Model = ${className}Model(id: '123');
  '''}

  group('${className}Model', () {
    test('should be a valid model', () {
      expect(t${className}Model.id, '123');
      ${useFreezed ? '''
      expect(t${className}Model.name, 'Test Name');
      expect(t${className}Model.description, 'Test Description');
      ''' : ''}
    });

    test('should return a valid JSON map', () {
      final result = t${className}Model.toJson();
      ${useFreezed ? '''
      expect(result['id'], '123');
      expect(result['name'], 'Test Name');
      expect(result['description'], 'Test Description');
      ''' : '''
      final expectedMap = {'id': '123'};
      expect(result, expectedMap);
      '''}
    });

    test('should return a valid model from JSON', () {
      ${useFreezed ? '''
      final jsonMap = {
        'id': '123',
        'name': 'Test Name',
        'description': 'Test Description',
      };
      ''' : '''
      final jsonMap = {'id': '123'};
      '''}
      final result = ${className}Model.fromJson(jsonMap);
      expect(result.id, t${className}Model.id);
      ${useFreezed ? '''
      expect(result.name, t${className}Model.name);
      expect(result.description, t${className}Model.description);
      ''' : '''
      expect(result, t${className}Model);
      '''}
    });
  });
}
''';