import 'package:eaimar/core/utils/id_verify_guard.dart'; import 'package:eaimar/data/models/channel_app_model.dart'; import 'package:eaimar/data/services/version_update_service.dart'; import 'package:flutter_test/flutter_test.dart'; /// 实名认证的显隐与游客登录同一个口子(2026-09-23):服务端下发 idverify, /// 隐藏时 IdVerifyGuard 整个失效、所有功能不受实名限制。 void main() { Map base() => { 'channel': 100, 'description': '', 'version': '1.0.3', 'paychannels': '', }; group('AppInfo.idverify', () { test('读服务端下发的 idverify', () { expect(AppInfo.fromJson({...base(), 'tourists': false, 'idverify': true}).idverify, isTrue); expect(AppInfo.fromJson({...base(), 'tourists': true, 'idverify': false}).idverify, isFalse); }); test('老服务端没有 idverify 字段时退回 tourists', () { expect(AppInfo.fromJson({...base(), 'tourists': true}).idverify, isTrue); expect(AppInfo.fromJson({...base(), 'tourists': false}).idverify, isFalse); }); test('两个字段都没有 = 隐藏', () { expect(AppInfo.fromJson(base()).idverify, isFalse); }); }); group('IdVerifyGuard', () { tearDown(() => VersionUpdateService.showIdVerify.value = false); test('实名隐藏时闸门放行、不弹窗', () { VersionUpdateService.showIdVerify.value = false; expect(IdVerifyGuard.entryShown, isFalse); expect(IdVerifyGuard.required, isFalse); expect(IdVerifyGuard.blocked(), isFalse); }); test('默认值是隐藏(拿不到配置时放行)', () { expect(VersionUpdateService.showIdVerify.value, isFalse); }); test('实名显示时 entryShown 跟着变', () { VersionUpdateService.showIdVerify.value = true; expect(IdVerifyGuard.entryShown, isTrue); }); }); }