Files
ReelShort/test/integration/live_auth_test.dart
T
Vicky 0e5d550b50 test(client): 用例名统一为 should_<期望>_when_<条件>(155/155)
为什么:红线第 8 条门禁立即生效,要求 Flutter 测试命名合规;此前 155 条用例名是英文自然语言
或中文描述,合规数 0/155,属存量欠账,按"先补齐再上新功能"在本批处理。

- 25 个测试文件、155 条用例改名,按「文件 + 旧名」精确定位,每条断言命中恰好 1 次才替换
- 只改名字字面量:改动行 155 删 + 155 增,无一行不含字符串字面量(断言与用例体零改动)
- 门禁:dart analyze lib test = No issues found;flutter test = 155 全过
2026-10-16 09:41:14 +08:00

35 lines
1.2 KiB
Dart

// Author: fruit.com.cn
import 'package:flutter_test/flutter_test.dart';
import 'package:nontonki/core/data/remote/api_client.dart';
import 'package:nontonki/core/data/remote/auth_api.dart';
/// 联调测试:直连本机客户端接口服务(8081)验证 **POST + JSON body + 错误码映射**。
///
/// 特意用"不存在的邮箱"登录:既能走完整的 POST 链路,又不会在库里留下测试数据。
/// 服务没启动时自动跳过,不影响日常 `flutter test`。
void main() {
final client = ApiClient(baseUrl: 'http://127.0.0.1:8081');
final api = AuthApi(client);
tearDownAll(client.close);
test('should_surface_business_error_when_sign_in_uses_unknown_email', () async {
try {
await api.login(
email: 'no-such-user-for-dio-check@example.com',
password: 'abcd1234',
deviceId: 'dio-check-device',
);
fail('不存在的邮箱不应该登录成功');
} on ApiException catch (error) {
// 关键点:错误码来自响应体(不是 HTTP 状态码),说明统一解包生效
expect(error.code, isNot(0));
expect(error.message, isNotEmpty);
} catch (_) {
markTestSkipped('客户端接口服务未启动,已跳过联调测试');
}
});
}