Files
sam-manage/database/data/flow-tester/items-bom.json
hskwon 811a04347f feat: 플로우테스터 개선 및 품목 테스트 데이터 업데이트
- LoginToken 모델 수정
- items-bom/crud/search 플로우 데이터 업데이트
- API_FLOW_TESTER_DESIGN 문서 업데이트
- example-flows 뷰 업데이트
2025-12-22 19:51:36 +09:00

144 lines
3.4 KiB
JSON

{
"version": "1.0",
"meta": {
"name": "Items BOM Test",
"description": "BOM management test",
"tags": ["items", "bom"]
},
"config": {
"baseUrl": "https://api.sam.kr/api/v1",
"timeout": 30000,
"stopOnFailure": false
},
"variables": {},
"steps": [
{
"id": "create_parent",
"name": "Create Parent Item",
"method": "POST",
"endpoint": "/items",
"body": {
"code": "{{$faker.itemCode:PROD}}",
"name": "{{$faker.productName}}",
"item_type": "PRODUCT",
"unit": "EA",
"unit_price": "{{$faker.price:100000:500000}}"
},
"expect": {
"status": [200, 201]
},
"extract": {
"parentCode": "$.data.code",
"parentId": "$.data.id"
}
},
{
"id": "create_child1",
"name": "Create Material 1",
"dependsOn": ["create_parent"],
"method": "POST",
"endpoint": "/items",
"body": {
"code": "{{$faker.itemCode:MAT}}",
"name": "Material A",
"item_type": "MATERIAL",
"unit": "{{$faker.unit}}",
"unit_price": "{{$faker.price:1000:10000}}"
},
"expect": {
"status": [200, 201]
},
"extract": {
"child1Code": "$.data.code"
}
},
{
"id": "create_child2",
"name": "Create Material 2",
"dependsOn": ["create_child1"],
"method": "POST",
"endpoint": "/items",
"body": {
"code": "{{$faker.itemCode:PART}}",
"name": "Part B",
"item_type": "MATERIAL",
"unit": "EA",
"unit_price": "{{$faker.price:5000:20000}}"
},
"expect": {
"status": [200, 201]
},
"extract": {
"child2Code": "$.data.code"
}
},
{
"id": "add_bom1",
"name": "Add BOM Material 1",
"dependsOn": ["create_child2"],
"method": "POST",
"endpoint": "/items/{{create_parent.parentCode}}/bom",
"body": {
"child_code": "{{create_child1.child1Code}}",
"quantity": "{{$faker.number:1:10}}",
"unit": "{{$faker.unit}}"
},
"expect": {
"status": [200, 201]
}
},
{
"id": "add_bom2",
"name": "Add BOM Material 2",
"dependsOn": ["add_bom1"],
"method": "POST",
"endpoint": "/items/{{create_parent.parentCode}}/bom",
"body": {
"child_code": "{{create_child2.child2Code}}",
"quantity": "{{$faker.number:1:5}}",
"unit": "EA"
},
"expect": {
"status": [200, 201]
}
},
{
"id": "get_bom",
"name": "Get BOM List",
"dependsOn": ["add_bom2"],
"method": "GET",
"endpoint": "/items/{{create_parent.parentCode}}/bom",
"expect": {
"status": [200],
"jsonPath": {
"$.success": true
}
}
},
{
"id": "cleanup_parent",
"name": "Delete Parent",
"dependsOn": ["get_bom"],
"method": "DELETE",
"endpoint": "/items/{{create_parent.parentCode}}",
"expect": {
"status": [200, 204]
},
"continueOnFailure": true
},
{
"id": "cleanup_children",
"name": "Delete Materials",
"dependsOn": ["cleanup_parent"],
"method": "DELETE",
"endpoint": "/items/batch",
"body": {
"codes": ["{{create_child1.child1Code}}", "{{create_child2.child2Code}}"]
},
"expect": {
"status": [200, 204]
},
"continueOnFailure": true
}
]
}