import 'package:flutter_test/flutter_test.dart'; import 'package:tdc114plus/src/features/directory/domain/employee.dart'; void main() { test('EmployeeListResponse parses paginated employee list', () { final response = EmployeeListResponse.fromJson({ 'items': [ { 'id': 'user-uuid', 'name': 'User One', 'phoneNumber': '+821012345678', 'phoneDisplay': '010-1234-5678', 'email': 'user@example.com', 'tenantId': 'tenant-uuid', 'tenantName': 'Hanmac', 'tenantSlug': 'hanmac', 'department': 'Engineering', 'grade': 'Lead', 'position': 'Manager', 'jobTitle': 'Developer', 'status': 'active', 'profileImageUrl': null, 'sortOrder': 100, }, ], 'limit': 50, 'offset': 0, 'total': 1, 'nextCursor': '', }); expect(response.items, hasLength(1)); expect(response.items.first.phoneDisplay, '010-1234-5678'); expect(response.total, 1); }); test('EmployeeDetail parses joined tenants and available actions', () { final detail = EmployeeDetail.fromJson({ 'id': 'user-uuid', 'name': 'User One', 'phoneNumber': '+821012345678', 'email': 'user@example.com', 'tenantId': 'tenant-uuid', 'tenantName': 'Hanmac', 'tenantSlug': 'hanmac', 'joinedTenants': [ { 'id': 'tenant-uuid', 'name': 'Hanmac', 'slug': 'hanmac', 'type': 'COMPANY', 'parentId': 'root-tenant-uuid', }, ], 'status': 'active', 'actions': {'call': true, 'sms': true, 'email': true}, }); expect(detail.joinedTenants.first.type, 'COMPANY'); expect(detail.actions.call, isTrue); expect(detail.actions.sms, isTrue); }); }