feat(client): 授权管理独立一级屏——授权/购买续费/订单管理三 tab(桌面+移动)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
wangjia
2026-07-11 00:24:59 +08:00
parent 9fe1e2766f
commit 22e07613a1
60 changed files with 1598 additions and 96 deletions
+5 -8
View File
@@ -7,8 +7,9 @@ import 'package:jiu_client/core/theme/themes.dart';
import 'package:jiu_client/providers/license_provider.dart';
import 'package:jiu_client/screens/settings/license_panel.dart';
/// iOS App Store 合规形态(苹果 3.1.1):授权管理页隐藏一切外部购买 UI
/// 补位中性「联系客服」卡;其余平台购买卡照旧、无客服卡。
/// iOS App Store 合规形态(苹果 3.1.1):LicensePanel(授权信息 tab 内容
/// 2026-07-10 起「在线购买续费」已独立为 LicenseScreen 的 tab2,见
/// license_screen_tabs_test.dartiOS 态补位中性「联系客服」卡,其余平台无。
class _FakeAuth extends AuthNotifier {
_FakeAuth(String role) {
@@ -54,24 +55,20 @@ Widget _panel({required String role}) => ProviderScope(
void main() {
tearDown(() => debugForceHideExternalPurchaseUi = null);
testWidgets('iOS 形态:购买卡与价格链接消失,出现联系客服卡', (tester) async {
testWidgets('iOS 形态:出现联系客服卡', (tester) async {
debugForceHideExternalPurchaseUi = true;
await tester.pumpWidget(_panel(role: 'operator'));
await tester.pumpAndSettle();
expect(find.text('在线购买 / 续费'), findsNothing);
expect(find.textContaining('查看套餐价格'), findsNothing);
expect(find.text('联系客服'), findsOneWidget);
expect(find.text(supportEmail), findsOneWidget);
});
testWidgets('非 iOS购买卡照旧,无联系客服卡', (tester) async {
testWidgets('非 iOS:无联系客服卡', (tester) async {
debugForceHideExternalPurchaseUi = false;
await tester.pumpWidget(_panel(role: 'operator'));
await tester.pumpAndSettle();
expect(find.text('在线购买 / 续费'), findsOneWidget);
expect(find.textContaining('查看套餐价格'), findsOneWidget);
expect(find.text('联系客服'), findsNothing);
});
}