import 'package:dsbridge_flutter/dsbridge_flutter.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:jinzhi_flutter_app/features/web/presentation/js_api.dart'; void main() { test('close invokes the host callback and returns success', () { var closeCalls = 0; final handler = _FakeCompletionHandler(); final api = JsApi(onClose: () => closeCalls++); api.close(null, handler); expect(closeCalls, 1); expect(handler.result, {'code': 0, 'message': 'success'}); }); test('coerces JSON mall state payloads', () { expect( coerceMallStateMap( '{"ready":true,"activeTab":"market","canGoBack":false}', ), { 'ready': true, 'activeTab': 'market', 'canGoBack': false, }, ); }); } class _FakeCompletionHandler implements CompletionHandler { dynamic result; @override void complete([dynamic retValue]) => result = retValue; @override void setProgressData(dynamic value) {} }