feat(registration): merge shelf overview into registration
This commit is contained in:
@@ -144,6 +144,86 @@ void main() {
|
||||
});
|
||||
|
||||
group('ApiService boxing APIs', () {
|
||||
test('fetchPaichaOverview parses overview items', () async {
|
||||
final mockClient = _MockClient((request) async {
|
||||
return http.Response(
|
||||
jsonEncode({
|
||||
'paicha_no': 'R00001',
|
||||
'total_count': 2,
|
||||
'items': [
|
||||
{
|
||||
'zongpai_no': '26B1',
|
||||
'work_order_no': '6-1(7)',
|
||||
'quantity': 80,
|
||||
'location_code': 'A01-02-03',
|
||||
'status': 'on_shelf',
|
||||
},
|
||||
{
|
||||
'zongpai_no': '26B2',
|
||||
'work_order_no': '6-2(3)',
|
||||
'quantity': 45,
|
||||
'location_code': null,
|
||||
'status': 'not_shelved',
|
||||
},
|
||||
],
|
||||
}),
|
||||
200,
|
||||
headers: {'content-type': 'application/json; charset=utf-8'},
|
||||
);
|
||||
});
|
||||
|
||||
final svc = ApiService(client: mockClient);
|
||||
final result = await svc.fetchPaichaOverview(
|
||||
baseUrl: 'http://localhost',
|
||||
zongpaiNo: '26B1',
|
||||
);
|
||||
|
||||
expect(result.success, isTrue);
|
||||
expect(result.paichaNo, 'R00001');
|
||||
expect(result.totalCount, 2);
|
||||
expect(result.items.first.status, 'on_shelf');
|
||||
expect(result.items.last.locationCode, isNull);
|
||||
});
|
||||
|
||||
test('fetchPaichaOverview maps 404 to not found result', () async {
|
||||
final mockClient = _MockClient((request) async {
|
||||
return http.Response(
|
||||
jsonEncode({'error_code': 'PAICHA_NOT_FOUND', 'message': '暂无排产信息'}),
|
||||
404,
|
||||
headers: {'content-type': 'application/json; charset=utf-8'},
|
||||
);
|
||||
});
|
||||
|
||||
final svc = ApiService(client: mockClient);
|
||||
final result = await svc.fetchPaichaOverview(
|
||||
baseUrl: 'http://localhost',
|
||||
zongpaiNo: '26B404',
|
||||
);
|
||||
|
||||
expect(result.success, isFalse);
|
||||
expect(result.notFound, isTrue);
|
||||
expect(result.errorMessage, '暂无排产信息');
|
||||
});
|
||||
|
||||
test(
|
||||
'fetchPaichaOverview maps network failure to retryable error',
|
||||
() async {
|
||||
final mockClient = _MockClient((request) async {
|
||||
throw Exception('Connection refused');
|
||||
});
|
||||
|
||||
final svc = ApiService(client: mockClient);
|
||||
final result = await svc.fetchPaichaOverview(
|
||||
baseUrl: 'http://localhost',
|
||||
zongpaiNo: '26B1',
|
||||
);
|
||||
|
||||
expect(result.success, isFalse);
|
||||
expect(result.notFound, isFalse);
|
||||
expect(result.errorMessage, '加载失败,点击重试');
|
||||
},
|
||||
);
|
||||
|
||||
test('fetchBoxInfo parses current boxes and box item ids', () async {
|
||||
final mockClient = _MockClient((request) async {
|
||||
return http.Response(
|
||||
|
||||
Reference in New Issue
Block a user