forked from erp-dev/erp
fix: [stateflow] query cancelled state with parameters failed
This commit is contained in:
@@ -597,6 +597,38 @@ class BusinessObjectAPITestCase(TestCase):
|
||||
self.assertLessEqual(time1, time2)
|
||||
self.assertLessEqual(time2, time3)
|
||||
|
||||
def test_get_state_logs_api_cancelled_state_with_parameters(self):
|
||||
"""测试获取已撤销状态的工艺参数(bug修复验证)"""
|
||||
# 推进并提供参数
|
||||
self.client.post(
|
||||
f'/api/v1/stateflow/business-objects/{self.business_object.id}/advance/',
|
||||
{'parameters': {'temperature': '25.5', 'humidity': '60%'}},
|
||||
format='json'
|
||||
)
|
||||
|
||||
# 回退(撤销该状态)
|
||||
self.client.post(f'/api/v1/stateflow/business-objects/{self.business_object.id}/step_back/')
|
||||
|
||||
# 使用 include_cancelled=true 和 include_parameters=true 获取状态记录
|
||||
response = self.client.get(
|
||||
f'/api/v1/stateflow/business-objects/{self.business_object.id}/state-logs/?include_cancelled=true&include_parameters=true'
|
||||
)
|
||||
|
||||
self.assertEqual(response.status_code, status.HTTP_200_OK)
|
||||
|
||||
# 验证返回2条记录(撤销后原来的记录也在,只是标记为已撤销)
|
||||
self.assertEqual(response.data['count'], 1)
|
||||
|
||||
# 验证记录包含工艺参数
|
||||
logs = response.data['state_logs']
|
||||
self.assertEqual(len(logs), 1)
|
||||
|
||||
state_log = logs[0]
|
||||
self.assertTrue(state_log['is_cancelled'])
|
||||
self.assertIn('parameters_summary', state_log)
|
||||
self.assertEqual(state_log['parameters_summary']['temperature'], '25.5')
|
||||
self.assertEqual(state_log['parameters_summary']['humidity'], '60%')
|
||||
|
||||
def test_advance_when_already_completed(self):
|
||||
"""测试流程已完成时尝试推进(预期错误)"""
|
||||
# 完成所有状态
|
||||
|
||||
Reference in New Issue
Block a user