1
0
forked from erp-dev/erp

feat: query all process nodes for business_object

This commit is contained in:
2025-11-17 16:37:21 +08:00
parent d23db848ec
commit 6fd199a218
9 changed files with 973 additions and 3 deletions

View File

@@ -652,3 +652,39 @@ class BusinessObjectAPITestCase(TestCase):
self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST)
self.assertFalse(response.data['success'])
self.assertIn('流程没有任何节点', response.data['message'])
def test_get_process_nodes(self):
"""测试获取业务对象所属流程的所有状态节点 API"""
response = self.client.get(
f'/api/v1/stateflow/business-objects/{self.business_object.id}/process-nodes/'
)
self.assertEqual(response.status_code, status.HTTP_200_OK)
self.assertIn('count', response.data)
self.assertIn('nodes', response.data)
# 验证节点数量
self.assertEqual(response.data['count'], 3)
self.assertEqual(len(response.data['nodes']), 3)
# 验证节点内容和顺序
nodes = response.data['nodes']
self.assertEqual(nodes[0]['state_id'], self.state1.id)
self.assertEqual(nodes[0]['state_name'], self.state1.name)
self.assertEqual(nodes[0]['order'], 0)
self.assertEqual(nodes[1]['state_id'], self.state2.id)
self.assertEqual(nodes[1]['state_name'], self.state2.name)
self.assertEqual(nodes[1]['order'], 1)
self.assertEqual(nodes[2]['state_id'], self.state3.id)
self.assertEqual(nodes[2]['state_name'], self.state3.name)
self.assertEqual(nodes[2]['order'], 2)
# 验证每个节点都有必要的字段
for node in nodes:
self.assertIn('id', node)
self.assertIn('state_id', node)
self.assertIn('state_name', node)
self.assertIn('order', node)