riverpodTestTemplate function

String riverpodTestTemplate(
  1. String name,
  2. String className,
  3. String providerName
)

Implementation

String riverpodTestTemplate(
  String name,
  String className,
  String providerName,
) =>
    '''
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:flutter_test/flutter_test.dart';
import '../../../../../lib/features/$name/presentation/controller/${name}_controller.dart';

void main() {
  group('${className}Controller', () {
    late ProviderContainer container;

    setUp(() {
      container = ProviderContainer();
    });

    tearDown(() {
      container.dispose();
    });

    test('should have initial state', () {
      final controller = container.read(${providerName}ControllerProvider.notifier);
      expect(controller.state, const ${className}State(isLoading: false));
    });

    test('should update state after fetchData', () async {
      final controller = container.read(${providerName}ControllerProvider.notifier);

      await controller.fetchData();

      expect(controller.state.isLoading, false);
      expect(controller.state.data, 'Fetched!');
      expect(controller.state.error, isNull);
    });
  });
}
''';