fix:参考金值,研听,研值工程通用通用工程公共能力,重点对比网络请求、登录认证、状态管理、本地存储、WebView、推送、版本更新、一键登录、主题/UI 等模块,确定后续统一整改方案

This commit is contained in:
jingyun committed 2026-09-10 09:52:36 +08:00
1 parent 6997a65c96
commit d364c6d908
46 files changed
+2060 -395

No files matched your search

@@ -0,0 +1,55 @@
import 'dart:typed_data';
import 'package:dio/dio.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:jinzhi_flutter_app/common/push/push_api_client.dart';
import 'package:jinzhi_flutter_app/models/pb/jinzhi/v1/push.pb.dart' as pb;
void main() {
test(
'Retrofit push client uses generated protobuf in both directions',
() async {
final adapter = _PushAdapter();
final client = PushApiClient(
Dio(BaseOptions(responseType: ResponseType.bytes))
..httpClientAdapter = adapter,
);
final reply = await client.registerDevice(
pb.RegisterPushDeviceRequest(
umengDeviceToken: 'push-token',
platform: pb.Platform.PLATFORM_IOS,
appVersion: '1.1.0',
permissionGranted: true,
),
);
expect(reply.deviceRecordId, 'device-record');
final request = pb.RegisterPushDeviceRequest.fromBuffer(adapter.body!);
expect(request.umengDeviceToken, 'push-token');
expect(request.platform, pb.Platform.PLATFORM_IOS);
},
);
}
class _PushAdapter implements HttpClientAdapter {
List<int>? body;
@override
Future<ResponseBody> fetch(
RequestOptions options,
Stream<Uint8List>? requestStream,
Future<void>? cancelFuture,
) async {
body = (options.data as List<int>).toList();
return ResponseBody.fromBytes(
pb.RegisterPushDeviceReply(
deviceRecordId: 'device-record',
).writeToBuffer(),
200,
);
}
@override
void close({bool force = false}) {}
}