Added comprehensive test suite and documentation for gRPC integration: - test/api/grpc_config_test.dart: Unit tests for GrpcConfig - test/api/grpc_client_test.dart: Unit tests for GrpcCqrsApiClient - test/api/api_mode_config_test.dart: Unit tests for ApiModeConfig - test/e2e/GRPC_E2E_VERIFICATION.md: Manual E2E testing guide All 18 tests pass. Flutter analyze shows no issues. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
68 lines
2.0 KiB
Dart
68 lines
2.0 KiB
Dart
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);
|
|
});
|
|
});
|
|
}
|