refactor(config): 服务地址改为 dev/prod 配置文件与单个环境开关
启动时按环回、局域网、公网顺序探测地址,换网络后会静默切到别处,排查 困难。改为代码内一个布尔开关选择环境,地址分别放在 dev_config.dart 与 prod_config.dart,不再探测;调试条改地址后直接重载,不再重新探测。 release 构建若仍是开发开关会启动即报错,避免线上包连开发机。
This commit is contained in:
1 parent
57f84c45bd
commit
a6d6b66d31
13 files changed
+101
-382
No files matched your search
@@ -6,7 +6,6 @@ import 'package:flutter/material.dart';
|
||||
import 'package:flutter_test/flutter_test.dart';
|
||||
|
||||
import 'package:fruitshorts/core/config/app_config.dart';
|
||||
import 'package:fruitshorts/core/data/services/catalog_retry.dart';
|
||||
import 'package:fruitshorts/core/theme/app_colors.dart';
|
||||
import 'package:fruitshorts/core/widgets/catalog_endpoint_editor.dart';
|
||||
import 'package:fruitshorts/l10n/app_localizations.dart';
|
||||
@@ -55,20 +54,7 @@ void main() {
|
||||
);
|
||||
});
|
||||
|
||||
test('should_probe_before_reloading_catalog', () async {
|
||||
final steps = <String>[];
|
||||
|
||||
await retryCatalogLoad(
|
||||
probe: () async => steps.add('probe'),
|
||||
reload: () async => steps.add('load'),
|
||||
);
|
||||
|
||||
expect(steps, ['probe', 'load']);
|
||||
});
|
||||
|
||||
testWidgets('should_save_probe_and_reload_after_valid_endpoint', (
|
||||
tester,
|
||||
) async {
|
||||
testWidgets('should_save_and_reload_after_valid_endpoint', (tester) async {
|
||||
AppConfig.applyRuntimeBaseUrl('http://127.0.0.1:8081');
|
||||
final steps = <String>[];
|
||||
await _pumpEndpointEditor(
|
||||
@@ -77,7 +63,6 @@ void main() {
|
||||
steps.add('save:$value');
|
||||
return true;
|
||||
},
|
||||
probe: () async => steps.add('probe'),
|
||||
reload: () async => steps.add('load'),
|
||||
);
|
||||
|
||||
@@ -101,12 +86,11 @@ void main() {
|
||||
await tester.tap(find.byKey(const Key('catalog-debug-endpoint-save')));
|
||||
await tester.pumpAndSettle();
|
||||
|
||||
expect(steps, ['save:http://10.0.0.8:8081', 'probe', 'load']);
|
||||
expect(steps, ['save:http://10.0.0.8:8081', 'load']);
|
||||
});
|
||||
|
||||
testWidgets('should_reject_invalid_endpoint_without_saving', (tester) async {
|
||||
var saves = 0;
|
||||
var probes = 0;
|
||||
var loads = 0;
|
||||
await _pumpEndpointEditor(
|
||||
tester,
|
||||
@@ -114,7 +98,6 @@ void main() {
|
||||
saves++;
|
||||
return true;
|
||||
},
|
||||
probe: () async => probes++,
|
||||
reload: () async => loads++,
|
||||
);
|
||||
|
||||
@@ -134,7 +117,6 @@ void main() {
|
||||
findsOneWidget,
|
||||
);
|
||||
expect(saves, 0);
|
||||
expect(probes, 0);
|
||||
expect(loads, 0);
|
||||
});
|
||||
}
|
||||
@@ -142,7 +124,6 @@ void main() {
|
||||
Future<void> _pumpEndpointEditor(
|
||||
WidgetTester tester, {
|
||||
required Future<bool> Function(String value) save,
|
||||
required Future<void> Function() probe,
|
||||
required Future<void> Function() reload,
|
||||
}) async {
|
||||
await tester.pumpWidget(
|
||||
@@ -152,12 +133,7 @@ Future<void> _pumpEndpointEditor(
|
||||
body: TextButton(
|
||||
key: const Key('open-endpoint-editor'),
|
||||
onPressed: () => unawaited(
|
||||
showCatalogEndpointEditor(
|
||||
context,
|
||||
save: save,
|
||||
probe: probe,
|
||||
reload: reload,
|
||||
),
|
||||
showCatalogEndpointEditor(context, save: save, reload: reload),
|
||||
),
|
||||
child: const Text('open'),
|
||||
),
|
||||
|
||||
Reference in new issue
Block a user