import 'package:flutter_test/flutter_test.dart'; import 'package:planb_logistic/providers/providers.dart'; void main() { group('ApiMode', () { test('has correct values', () { expect(ApiMode.values.length, equals(2)); expect(ApiMode.values, contains(ApiMode.http)); expect(ApiMode.values, contains(ApiMode.grpc)); }); }); group('ApiModeConfig', () { test('development config defaults to HTTP', () { const config = ApiModeConfig.development; expect(config.mode, equals(ApiMode.http)); expect(config.isHttp, isTrue); expect(config.isGrpc, isFalse); expect(config.fallbackToHttpOnError, isTrue); }); test('developmentGrpc config uses gRPC', () { const config = ApiModeConfig.developmentGrpc; expect(config.mode, equals(ApiMode.grpc)); expect(config.isGrpc, isTrue); expect(config.isHttp, isFalse); expect(config.fallbackToHttpOnError, isTrue); }); test('production config defaults to HTTP', () { const config = ApiModeConfig.production; expect(config.mode, equals(ApiMode.http)); expect(config.isHttp, isTrue); expect(config.isGrpc, isFalse); expect(config.fallbackToHttpOnError, isFalse); }); test('productionGrpc config uses gRPC without fallback', () { const config = ApiModeConfig.productionGrpc; expect(config.mode, equals(ApiMode.grpc)); expect(config.isGrpc, isTrue); expect(config.isHttp, isFalse); expect(config.fallbackToHttpOnError, isFalse); }); test('custom config can be created', () { const config = ApiModeConfig( mode: ApiMode.grpc, fallbackToHttpOnError: false, ); expect(config.mode, equals(ApiMode.grpc)); expect(config.isGrpc, isTrue); expect(config.fallbackToHttpOnError, isFalse); }); test('default fallbackToHttpOnError is true', () { const config = ApiModeConfig(mode: ApiMode.grpc); expect(config.fallbackToHttpOnError, isTrue); }); }); }