import 'package:flutter_test/flutter_test.dart'; import 'package:pj_supermarket_cloud/common/index.dart'; void main() { final ossBase = Constants.ossUrl.replaceFirst(RegExp(r'/+$'), ''); test('服务端图片完整地址保持不变', () { const source = 'https://cdn.example.com/evidence/face.png'; expect(AppNetworkTool.serverImageUrl(source), source); }); test('文件中心相对地址补齐网关前缀', () { const source = '/admin/sys-file/oss/file?fileName=evidence.png'; expect( AppNetworkTool.serverImageUrl(source), '$ossBase/admin/sys-file/oss/file?fileName=evidence.png', ); }); test('已经携带 API 部署前缀的相对地址不会重复拼接', () { const source = '/api/admin/sys-file/oss/file?fileName=evidence.png'; expect( AppNetworkTool.serverImageUrl(source), '${Uri.parse(Constants.ossUrl).origin}$source', ); }); test('纯 OSS 文件名通过标准图片接口访问并正确编码', () { const source = 'receipt/voucher 1.png'; final resolved = Uri.parse(AppNetworkTool.serverImageUrl(source)); expect(resolved.origin, Uri.parse(Constants.ossUrl).origin); expect( resolved.path, '${Uri.parse(Constants.ossUrl).path.replaceFirst(RegExp(r'/+$'), '')}' '/admin/sys-file/oss/file', ); expect(resolved.queryParameters['fileName'], source); }); }