1096 lines
29 KiB
Plaintext
1096 lines
29 KiB
Plaintext
$ uv run tools/flow.py test cases/lab01-edges.json -v
|
||
POST http://localhost:5678/webhook/my-faq-check · 6 case(s) × 1
|
||
✔ 제목 40자는 통과, 41자는 너무 김 · 0.1s
|
||
→ request POST /webhook/my-faq-check
|
||
{
|
||
"batch": "E-1",
|
||
"items": [
|
||
{
|
||
"id": "FAQ-401",
|
||
"title": "사내 메신저 알림이 오지 않을 때 확인할 것과 다시 설정하는 법가가가가가",
|
||
"keywords": [
|
||
"메신저",
|
||
"알림"
|
||
],
|
||
"answer": "메신저 설정의 '알림' 탭에서 알림을 다시 켭니다."
|
||
},
|
||
{
|
||
"id": "FAQ-402",
|
||
"title": "사내 메신저 알림이 오지 않을 때 확인할 것과 다시 설정하는 법가가가가가요",
|
||
"keywords": [
|
||
"메신저"
|
||
],
|
||
"answer": "메신저 설정의 '알림' 탭에서 알림을 다시 켭니다."
|
||
},
|
||
{
|
||
"id": "FAQ-403",
|
||
"title": " ",
|
||
"keywords": [
|
||
"사원증"
|
||
],
|
||
"answer": "사원증 사진은 인사 포털에서 바꿉니다."
|
||
},
|
||
{
|
||
"id": "FAQ-404",
|
||
"title": "장비 신청",
|
||
"keywords": [
|
||
"장비"
|
||
],
|
||
"answer": "IT 포털에서 신청"
|
||
},
|
||
{
|
||
"id": "FAQ-405",
|
||
"title": "장비 반납",
|
||
"keywords": [
|
||
"반납"
|
||
],
|
||
"answer": "IT포털에서 신청"
|
||
},
|
||
{
|
||
"id": "FAQ-406",
|
||
"title": "야간 장애 연락",
|
||
"keywords": [
|
||
"야간",
|
||
"장애"
|
||
],
|
||
"answer": "야간 장애는 당직자 01012345678 로 전화합니다."
|
||
},
|
||
{
|
||
"id": "FAQ-407",
|
||
"title": "IT 문의 창구",
|
||
"keywords": [
|
||
"문의",
|
||
"창구"
|
||
],
|
||
"answer": "IT 문의 창구 번호는 02-123-4567 (평일 9~18시) 입니다."
|
||
},
|
||
{
|
||
"id": "FAQ-408",
|
||
"title": "도움말 모음",
|
||
"keywords": [
|
||
"도움말"
|
||
],
|
||
"answer": "도움말은 https://intra.example.com/help 에 모여 있습니다."
|
||
},
|
||
{
|
||
"id": "FAQ-409",
|
||
"title": "보안 교육 자료",
|
||
"keywords": [
|
||
"보안 교육"
|
||
],
|
||
"answer": "보안 교육 자료는 http://intra.example.com.evil.io/edu 에서 받습니다."
|
||
},
|
||
{
|
||
"id": "faq-410",
|
||
"title": "출장 노트북",
|
||
"keywords": [
|
||
"출장"
|
||
],
|
||
"answer": "출장용 노트북은 IT팀에 사흘 전까지 신청합니다."
|
||
}
|
||
]
|
||
}
|
||
← response HTTP 200
|
||
{
|
||
"batch": "E-1",
|
||
"total": 10,
|
||
"valid": 4,
|
||
"invalid": 6,
|
||
"with_warnings": 0,
|
||
"rows": [
|
||
{
|
||
"id": "FAQ-401",
|
||
"ok": true,
|
||
"errors": [],
|
||
"warnings": []
|
||
},
|
||
{
|
||
"id": "FAQ-402",
|
||
"ok": false,
|
||
"errors": [
|
||
"title_too_long"
|
||
],
|
||
"warnings": []
|
||
},
|
||
{
|
||
"id": "FAQ-403",
|
||
"ok": false,
|
||
"errors": [
|
||
"title_missing"
|
||
],
|
||
"warnings": []
|
||
},
|
||
{
|
||
"id": "FAQ-404",
|
||
"ok": true,
|
||
"errors": [],
|
||
"warnings": []
|
||
},
|
||
{
|
||
"id": "FAQ-405",
|
||
"ok": false,
|
||
"errors": [
|
||
"answer_too_short"
|
||
],
|
||
"warnings": []
|
||
},
|
||
{
|
||
"id": "FAQ-406",
|
||
"ok": false,
|
||
"errors": [
|
||
"pii"
|
||
],
|
||
"warnings": []
|
||
},
|
||
{
|
||
"id": "FAQ-407",
|
||
"ok": true,
|
||
"errors": [],
|
||
"warnings": []
|
||
},
|
||
{
|
||
"id": "FAQ-408",
|
||
"ok": true,
|
||
"errors": [],
|
||
"warnings": []
|
||
},
|
||
{
|
||
"id": "FAQ-409",
|
||
"ok": false,
|
||
"errors": [
|
||
"external_link"
|
||
],
|
||
"warnings": []
|
||
},
|
||
{
|
||
"id": "faq-410",
|
||
"ok": false,
|
||
"errors": [
|
||
"id_format"
|
||
],
|
||
"warnings": []
|
||
}
|
||
],
|
||
"codes": {
|
||
"title_too_long": 1,
|
||
"title_missing": 1,
|
||
"answer_too_short": 1,
|
||
"pii": 1,
|
||
"external_link": 1,
|
||
"id_format": 1
|
||
}
|
||
}
|
||
✔ 공백만 있는 제목은 빈 값 · 0.1s
|
||
→ request POST /webhook/my-faq-check
|
||
{
|
||
"batch": "E-1",
|
||
"items": [
|
||
{
|
||
"id": "FAQ-401",
|
||
"title": "사내 메신저 알림이 오지 않을 때 확인할 것과 다시 설정하는 법가가가가가",
|
||
"keywords": [
|
||
"메신저",
|
||
"알림"
|
||
],
|
||
"answer": "메신저 설정의 '알림' 탭에서 알림을 다시 켭니다."
|
||
},
|
||
{
|
||
"id": "FAQ-402",
|
||
"title": "사내 메신저 알림이 오지 않을 때 확인할 것과 다시 설정하는 법가가가가가요",
|
||
"keywords": [
|
||
"메신저"
|
||
],
|
||
"answer": "메신저 설정의 '알림' 탭에서 알림을 다시 켭니다."
|
||
},
|
||
{
|
||
"id": "FAQ-403",
|
||
"title": " ",
|
||
"keywords": [
|
||
"사원증"
|
||
],
|
||
"answer": "사원증 사진은 인사 포털에서 바꿉니다."
|
||
},
|
||
{
|
||
"id": "FAQ-404",
|
||
"title": "장비 신청",
|
||
"keywords": [
|
||
"장비"
|
||
],
|
||
"answer": "IT 포털에서 신청"
|
||
},
|
||
{
|
||
"id": "FAQ-405",
|
||
"title": "장비 반납",
|
||
"keywords": [
|
||
"반납"
|
||
],
|
||
"answer": "IT포털에서 신청"
|
||
},
|
||
{
|
||
"id": "FAQ-406",
|
||
"title": "야간 장애 연락",
|
||
"keywords": [
|
||
"야간",
|
||
"장애"
|
||
],
|
||
"answer": "야간 장애는 당직자 01012345678 로 전화합니다."
|
||
},
|
||
{
|
||
"id": "FAQ-407",
|
||
"title": "IT 문의 창구",
|
||
"keywords": [
|
||
"문의",
|
||
"창구"
|
||
],
|
||
"answer": "IT 문의 창구 번호는 02-123-4567 (평일 9~18시) 입니다."
|
||
},
|
||
{
|
||
"id": "FAQ-408",
|
||
"title": "도움말 모음",
|
||
"keywords": [
|
||
"도움말"
|
||
],
|
||
"answer": "도움말은 https://intra.example.com/help 에 모여 있습니다."
|
||
},
|
||
{
|
||
"id": "FAQ-409",
|
||
"title": "보안 교육 자료",
|
||
"keywords": [
|
||
"보안 교육"
|
||
],
|
||
"answer": "보안 교육 자료는 http://intra.example.com.evil.io/edu 에서 받습니다."
|
||
},
|
||
{
|
||
"id": "faq-410",
|
||
"title": "출장 노트북",
|
||
"keywords": [
|
||
"출장"
|
||
],
|
||
"answer": "출장용 노트북은 IT팀에 사흘 전까지 신청합니다."
|
||
}
|
||
]
|
||
}
|
||
← response HTTP 200
|
||
{
|
||
"batch": "E-1",
|
||
"total": 10,
|
||
"valid": 4,
|
||
"invalid": 6,
|
||
"with_warnings": 0,
|
||
"rows": [
|
||
{
|
||
"id": "FAQ-401",
|
||
"ok": true,
|
||
"errors": [],
|
||
"warnings": []
|
||
},
|
||
{
|
||
"id": "FAQ-402",
|
||
"ok": false,
|
||
"errors": [
|
||
"title_too_long"
|
||
],
|
||
"warnings": []
|
||
},
|
||
{
|
||
"id": "FAQ-403",
|
||
"ok": false,
|
||
"errors": [
|
||
"title_missing"
|
||
],
|
||
"warnings": []
|
||
},
|
||
{
|
||
"id": "FAQ-404",
|
||
"ok": true,
|
||
"errors": [],
|
||
"warnings": []
|
||
},
|
||
{
|
||
"id": "FAQ-405",
|
||
"ok": false,
|
||
"errors": [
|
||
"answer_too_short"
|
||
],
|
||
"warnings": []
|
||
},
|
||
{
|
||
"id": "FAQ-406",
|
||
"ok": false,
|
||
"errors": [
|
||
"pii"
|
||
],
|
||
"warnings": []
|
||
},
|
||
{
|
||
"id": "FAQ-407",
|
||
"ok": true,
|
||
"errors": [],
|
||
"warnings": []
|
||
},
|
||
{
|
||
"id": "FAQ-408",
|
||
"ok": true,
|
||
"errors": [],
|
||
"warnings": []
|
||
},
|
||
{
|
||
"id": "FAQ-409",
|
||
"ok": false,
|
||
"errors": [
|
||
"external_link"
|
||
],
|
||
"warnings": []
|
||
},
|
||
{
|
||
"id": "faq-410",
|
||
"ok": false,
|
||
"errors": [
|
||
"id_format"
|
||
],
|
||
"warnings": []
|
||
}
|
||
],
|
||
"codes": {
|
||
"title_too_long": 1,
|
||
"title_missing": 1,
|
||
"answer_too_short": 1,
|
||
"pii": 1,
|
||
"external_link": 1,
|
||
"id_format": 1
|
||
}
|
||
}
|
||
✔ 답 10자는 통과, 9자는 너무 짧음 · 0.0s
|
||
→ request POST /webhook/my-faq-check
|
||
{
|
||
"batch": "E-1",
|
||
"items": [
|
||
{
|
||
"id": "FAQ-401",
|
||
"title": "사내 메신저 알림이 오지 않을 때 확인할 것과 다시 설정하는 법가가가가가",
|
||
"keywords": [
|
||
"메신저",
|
||
"알림"
|
||
],
|
||
"answer": "메신저 설정의 '알림' 탭에서 알림을 다시 켭니다."
|
||
},
|
||
{
|
||
"id": "FAQ-402",
|
||
"title": "사내 메신저 알림이 오지 않을 때 확인할 것과 다시 설정하는 법가가가가가요",
|
||
"keywords": [
|
||
"메신저"
|
||
],
|
||
"answer": "메신저 설정의 '알림' 탭에서 알림을 다시 켭니다."
|
||
},
|
||
{
|
||
"id": "FAQ-403",
|
||
"title": " ",
|
||
"keywords": [
|
||
"사원증"
|
||
],
|
||
"answer": "사원증 사진은 인사 포털에서 바꿉니다."
|
||
},
|
||
{
|
||
"id": "FAQ-404",
|
||
"title": "장비 신청",
|
||
"keywords": [
|
||
"장비"
|
||
],
|
||
"answer": "IT 포털에서 신청"
|
||
},
|
||
{
|
||
"id": "FAQ-405",
|
||
"title": "장비 반납",
|
||
"keywords": [
|
||
"반납"
|
||
],
|
||
"answer": "IT포털에서 신청"
|
||
},
|
||
{
|
||
"id": "FAQ-406",
|
||
"title": "야간 장애 연락",
|
||
"keywords": [
|
||
"야간",
|
||
"장애"
|
||
],
|
||
"answer": "야간 장애는 당직자 01012345678 로 전화합니다."
|
||
},
|
||
{
|
||
"id": "FAQ-407",
|
||
"title": "IT 문의 창구",
|
||
"keywords": [
|
||
"문의",
|
||
"창구"
|
||
],
|
||
"answer": "IT 문의 창구 번호는 02-123-4567 (평일 9~18시) 입니다."
|
||
},
|
||
{
|
||
"id": "FAQ-408",
|
||
"title": "도움말 모음",
|
||
"keywords": [
|
||
"도움말"
|
||
],
|
||
"answer": "도움말은 https://intra.example.com/help 에 모여 있습니다."
|
||
},
|
||
{
|
||
"id": "FAQ-409",
|
||
"title": "보안 교육 자료",
|
||
"keywords": [
|
||
"보안 교육"
|
||
],
|
||
"answer": "보안 교육 자료는 http://intra.example.com.evil.io/edu 에서 받습니다."
|
||
},
|
||
{
|
||
"id": "faq-410",
|
||
"title": "출장 노트북",
|
||
"keywords": [
|
||
"출장"
|
||
],
|
||
"answer": "출장용 노트북은 IT팀에 사흘 전까지 신청합니다."
|
||
}
|
||
]
|
||
}
|
||
← response HTTP 200
|
||
{
|
||
"batch": "E-1",
|
||
"total": 10,
|
||
"valid": 4,
|
||
"invalid": 6,
|
||
"with_warnings": 0,
|
||
"rows": [
|
||
{
|
||
"id": "FAQ-401",
|
||
"ok": true,
|
||
"errors": [],
|
||
"warnings": []
|
||
},
|
||
{
|
||
"id": "FAQ-402",
|
||
"ok": false,
|
||
"errors": [
|
||
"title_too_long"
|
||
],
|
||
"warnings": []
|
||
},
|
||
{
|
||
"id": "FAQ-403",
|
||
"ok": false,
|
||
"errors": [
|
||
"title_missing"
|
||
],
|
||
"warnings": []
|
||
},
|
||
{
|
||
"id": "FAQ-404",
|
||
"ok": true,
|
||
"errors": [],
|
||
"warnings": []
|
||
},
|
||
{
|
||
"id": "FAQ-405",
|
||
"ok": false,
|
||
"errors": [
|
||
"answer_too_short"
|
||
],
|
||
"warnings": []
|
||
},
|
||
{
|
||
"id": "FAQ-406",
|
||
"ok": false,
|
||
"errors": [
|
||
"pii"
|
||
],
|
||
"warnings": []
|
||
},
|
||
{
|
||
"id": "FAQ-407",
|
||
"ok": true,
|
||
"errors": [],
|
||
"warnings": []
|
||
},
|
||
{
|
||
"id": "FAQ-408",
|
||
"ok": true,
|
||
"errors": [],
|
||
"warnings": []
|
||
},
|
||
{
|
||
"id": "FAQ-409",
|
||
"ok": false,
|
||
"errors": [
|
||
"external_link"
|
||
],
|
||
"warnings": []
|
||
},
|
||
{
|
||
"id": "faq-410",
|
||
"ok": false,
|
||
"errors": [
|
||
"id_format"
|
||
],
|
||
"warnings": []
|
||
}
|
||
],
|
||
"codes": {
|
||
"title_too_long": 1,
|
||
"title_missing": 1,
|
||
"answer_too_short": 1,
|
||
"pii": 1,
|
||
"external_link": 1,
|
||
"id_format": 1
|
||
}
|
||
}
|
||
✔ 하이픈 없는 휴대전화도 개인정보, 사무실 번호는 통과 · 0.1s
|
||
→ request POST /webhook/my-faq-check
|
||
{
|
||
"batch": "E-1",
|
||
"items": [
|
||
{
|
||
"id": "FAQ-401",
|
||
"title": "사내 메신저 알림이 오지 않을 때 확인할 것과 다시 설정하는 법가가가가가",
|
||
"keywords": [
|
||
"메신저",
|
||
"알림"
|
||
],
|
||
"answer": "메신저 설정의 '알림' 탭에서 알림을 다시 켭니다."
|
||
},
|
||
{
|
||
"id": "FAQ-402",
|
||
"title": "사내 메신저 알림이 오지 않을 때 확인할 것과 다시 설정하는 법가가가가가요",
|
||
"keywords": [
|
||
"메신저"
|
||
],
|
||
"answer": "메신저 설정의 '알림' 탭에서 알림을 다시 켭니다."
|
||
},
|
||
{
|
||
"id": "FAQ-403",
|
||
"title": " ",
|
||
"keywords": [
|
||
"사원증"
|
||
],
|
||
"answer": "사원증 사진은 인사 포털에서 바꿉니다."
|
||
},
|
||
{
|
||
"id": "FAQ-404",
|
||
"title": "장비 신청",
|
||
"keywords": [
|
||
"장비"
|
||
],
|
||
"answer": "IT 포털에서 신청"
|
||
},
|
||
{
|
||
"id": "FAQ-405",
|
||
"title": "장비 반납",
|
||
"keywords": [
|
||
"반납"
|
||
],
|
||
"answer": "IT포털에서 신청"
|
||
},
|
||
{
|
||
"id": "FAQ-406",
|
||
"title": "야간 장애 연락",
|
||
"keywords": [
|
||
"야간",
|
||
"장애"
|
||
],
|
||
"answer": "야간 장애는 당직자 01012345678 로 전화합니다."
|
||
},
|
||
{
|
||
"id": "FAQ-407",
|
||
"title": "IT 문의 창구",
|
||
"keywords": [
|
||
"문의",
|
||
"창구"
|
||
],
|
||
"answer": "IT 문의 창구 번호는 02-123-4567 (평일 9~18시) 입니다."
|
||
},
|
||
{
|
||
"id": "FAQ-408",
|
||
"title": "도움말 모음",
|
||
"keywords": [
|
||
"도움말"
|
||
],
|
||
"answer": "도움말은 https://intra.example.com/help 에 모여 있습니다."
|
||
},
|
||
{
|
||
"id": "FAQ-409",
|
||
"title": "보안 교육 자료",
|
||
"keywords": [
|
||
"보안 교육"
|
||
],
|
||
"answer": "보안 교육 자료는 http://intra.example.com.evil.io/edu 에서 받습니다."
|
||
},
|
||
{
|
||
"id": "faq-410",
|
||
"title": "출장 노트북",
|
||
"keywords": [
|
||
"출장"
|
||
],
|
||
"answer": "출장용 노트북은 IT팀에 사흘 전까지 신청합니다."
|
||
}
|
||
]
|
||
}
|
||
← response HTTP 200
|
||
{
|
||
"batch": "E-1",
|
||
"total": 10,
|
||
"valid": 4,
|
||
"invalid": 6,
|
||
"with_warnings": 0,
|
||
"rows": [
|
||
{
|
||
"id": "FAQ-401",
|
||
"ok": true,
|
||
"errors": [],
|
||
"warnings": []
|
||
},
|
||
{
|
||
"id": "FAQ-402",
|
||
"ok": false,
|
||
"errors": [
|
||
"title_too_long"
|
||
],
|
||
"warnings": []
|
||
},
|
||
{
|
||
"id": "FAQ-403",
|
||
"ok": false,
|
||
"errors": [
|
||
"title_missing"
|
||
],
|
||
"warnings": []
|
||
},
|
||
{
|
||
"id": "FAQ-404",
|
||
"ok": true,
|
||
"errors": [],
|
||
"warnings": []
|
||
},
|
||
{
|
||
"id": "FAQ-405",
|
||
"ok": false,
|
||
"errors": [
|
||
"answer_too_short"
|
||
],
|
||
"warnings": []
|
||
},
|
||
{
|
||
"id": "FAQ-406",
|
||
"ok": false,
|
||
"errors": [
|
||
"pii"
|
||
],
|
||
"warnings": []
|
||
},
|
||
{
|
||
"id": "FAQ-407",
|
||
"ok": true,
|
||
"errors": [],
|
||
"warnings": []
|
||
},
|
||
{
|
||
"id": "FAQ-408",
|
||
"ok": true,
|
||
"errors": [],
|
||
"warnings": []
|
||
},
|
||
{
|
||
"id": "FAQ-409",
|
||
"ok": false,
|
||
"errors": [
|
||
"external_link"
|
||
],
|
||
"warnings": []
|
||
},
|
||
{
|
||
"id": "faq-410",
|
||
"ok": false,
|
||
"errors": [
|
||
"id_format"
|
||
],
|
||
"warnings": []
|
||
}
|
||
],
|
||
"codes": {
|
||
"title_too_long": 1,
|
||
"title_missing": 1,
|
||
"answer_too_short": 1,
|
||
"pii": 1,
|
||
"external_link": 1,
|
||
"id_format": 1
|
||
}
|
||
}
|
||
✔ 사내 주소는 통과, 사내 주소처럼 보이는 바깥 링크는 막음 · 0.0s
|
||
→ request POST /webhook/my-faq-check
|
||
{
|
||
"batch": "E-1",
|
||
"items": [
|
||
{
|
||
"id": "FAQ-401",
|
||
"title": "사내 메신저 알림이 오지 않을 때 확인할 것과 다시 설정하는 법가가가가가",
|
||
"keywords": [
|
||
"메신저",
|
||
"알림"
|
||
],
|
||
"answer": "메신저 설정의 '알림' 탭에서 알림을 다시 켭니다."
|
||
},
|
||
{
|
||
"id": "FAQ-402",
|
||
"title": "사내 메신저 알림이 오지 않을 때 확인할 것과 다시 설정하는 법가가가가가요",
|
||
"keywords": [
|
||
"메신저"
|
||
],
|
||
"answer": "메신저 설정의 '알림' 탭에서 알림을 다시 켭니다."
|
||
},
|
||
{
|
||
"id": "FAQ-403",
|
||
"title": " ",
|
||
"keywords": [
|
||
"사원증"
|
||
],
|
||
"answer": "사원증 사진은 인사 포털에서 바꿉니다."
|
||
},
|
||
{
|
||
"id": "FAQ-404",
|
||
"title": "장비 신청",
|
||
"keywords": [
|
||
"장비"
|
||
],
|
||
"answer": "IT 포털에서 신청"
|
||
},
|
||
{
|
||
"id": "FAQ-405",
|
||
"title": "장비 반납",
|
||
"keywords": [
|
||
"반납"
|
||
],
|
||
"answer": "IT포털에서 신청"
|
||
},
|
||
{
|
||
"id": "FAQ-406",
|
||
"title": "야간 장애 연락",
|
||
"keywords": [
|
||
"야간",
|
||
"장애"
|
||
],
|
||
"answer": "야간 장애는 당직자 01012345678 로 전화합니다."
|
||
},
|
||
{
|
||
"id": "FAQ-407",
|
||
"title": "IT 문의 창구",
|
||
"keywords": [
|
||
"문의",
|
||
"창구"
|
||
],
|
||
"answer": "IT 문의 창구 번호는 02-123-4567 (평일 9~18시) 입니다."
|
||
},
|
||
{
|
||
"id": "FAQ-408",
|
||
"title": "도움말 모음",
|
||
"keywords": [
|
||
"도움말"
|
||
],
|
||
"answer": "도움말은 https://intra.example.com/help 에 모여 있습니다."
|
||
},
|
||
{
|
||
"id": "FAQ-409",
|
||
"title": "보안 교육 자료",
|
||
"keywords": [
|
||
"보안 교육"
|
||
],
|
||
"answer": "보안 교육 자료는 http://intra.example.com.evil.io/edu 에서 받습니다."
|
||
},
|
||
{
|
||
"id": "faq-410",
|
||
"title": "출장 노트북",
|
||
"keywords": [
|
||
"출장"
|
||
],
|
||
"answer": "출장용 노트북은 IT팀에 사흘 전까지 신청합니다."
|
||
}
|
||
]
|
||
}
|
||
← response HTTP 200
|
||
{
|
||
"batch": "E-1",
|
||
"total": 10,
|
||
"valid": 4,
|
||
"invalid": 6,
|
||
"with_warnings": 0,
|
||
"rows": [
|
||
{
|
||
"id": "FAQ-401",
|
||
"ok": true,
|
||
"errors": [],
|
||
"warnings": []
|
||
},
|
||
{
|
||
"id": "FAQ-402",
|
||
"ok": false,
|
||
"errors": [
|
||
"title_too_long"
|
||
],
|
||
"warnings": []
|
||
},
|
||
{
|
||
"id": "FAQ-403",
|
||
"ok": false,
|
||
"errors": [
|
||
"title_missing"
|
||
],
|
||
"warnings": []
|
||
},
|
||
{
|
||
"id": "FAQ-404",
|
||
"ok": true,
|
||
"errors": [],
|
||
"warnings": []
|
||
},
|
||
{
|
||
"id": "FAQ-405",
|
||
"ok": false,
|
||
"errors": [
|
||
"answer_too_short"
|
||
],
|
||
"warnings": []
|
||
},
|
||
{
|
||
"id": "FAQ-406",
|
||
"ok": false,
|
||
"errors": [
|
||
"pii"
|
||
],
|
||
"warnings": []
|
||
},
|
||
{
|
||
"id": "FAQ-407",
|
||
"ok": true,
|
||
"errors": [],
|
||
"warnings": []
|
||
},
|
||
{
|
||
"id": "FAQ-408",
|
||
"ok": true,
|
||
"errors": [],
|
||
"warnings": []
|
||
},
|
||
{
|
||
"id": "FAQ-409",
|
||
"ok": false,
|
||
"errors": [
|
||
"external_link"
|
||
],
|
||
"warnings": []
|
||
},
|
||
{
|
||
"id": "faq-410",
|
||
"ok": false,
|
||
"errors": [
|
||
"id_format"
|
||
],
|
||
"warnings": []
|
||
}
|
||
],
|
||
"codes": {
|
||
"title_too_long": 1,
|
||
"title_missing": 1,
|
||
"answer_too_short": 1,
|
||
"pii": 1,
|
||
"external_link": 1,
|
||
"id_format": 1
|
||
}
|
||
}
|
||
✔ 소문자 id · 합계 10줄 중 4줄 통과 · 0.1s
|
||
→ request POST /webhook/my-faq-check
|
||
{
|
||
"batch": "E-1",
|
||
"items": [
|
||
{
|
||
"id": "FAQ-401",
|
||
"title": "사내 메신저 알림이 오지 않을 때 확인할 것과 다시 설정하는 법가가가가가",
|
||
"keywords": [
|
||
"메신저",
|
||
"알림"
|
||
],
|
||
"answer": "메신저 설정의 '알림' 탭에서 알림을 다시 켭니다."
|
||
},
|
||
{
|
||
"id": "FAQ-402",
|
||
"title": "사내 메신저 알림이 오지 않을 때 확인할 것과 다시 설정하는 법가가가가가요",
|
||
"keywords": [
|
||
"메신저"
|
||
],
|
||
"answer": "메신저 설정의 '알림' 탭에서 알림을 다시 켭니다."
|
||
},
|
||
{
|
||
"id": "FAQ-403",
|
||
"title": " ",
|
||
"keywords": [
|
||
"사원증"
|
||
],
|
||
"answer": "사원증 사진은 인사 포털에서 바꿉니다."
|
||
},
|
||
{
|
||
"id": "FAQ-404",
|
||
"title": "장비 신청",
|
||
"keywords": [
|
||
"장비"
|
||
],
|
||
"answer": "IT 포털에서 신청"
|
||
},
|
||
{
|
||
"id": "FAQ-405",
|
||
"title": "장비 반납",
|
||
"keywords": [
|
||
"반납"
|
||
],
|
||
"answer": "IT포털에서 신청"
|
||
},
|
||
{
|
||
"id": "FAQ-406",
|
||
"title": "야간 장애 연락",
|
||
"keywords": [
|
||
"야간",
|
||
"장애"
|
||
],
|
||
"answer": "야간 장애는 당직자 01012345678 로 전화합니다."
|
||
},
|
||
{
|
||
"id": "FAQ-407",
|
||
"title": "IT 문의 창구",
|
||
"keywords": [
|
||
"문의",
|
||
"창구"
|
||
],
|
||
"answer": "IT 문의 창구 번호는 02-123-4567 (평일 9~18시) 입니다."
|
||
},
|
||
{
|
||
"id": "FAQ-408",
|
||
"title": "도움말 모음",
|
||
"keywords": [
|
||
"도움말"
|
||
],
|
||
"answer": "도움말은 https://intra.example.com/help 에 모여 있습니다."
|
||
},
|
||
{
|
||
"id": "FAQ-409",
|
||
"title": "보안 교육 자료",
|
||
"keywords": [
|
||
"보안 교육"
|
||
],
|
||
"answer": "보안 교육 자료는 http://intra.example.com.evil.io/edu 에서 받습니다."
|
||
},
|
||
{
|
||
"id": "faq-410",
|
||
"title": "출장 노트북",
|
||
"keywords": [
|
||
"출장"
|
||
],
|
||
"answer": "출장용 노트북은 IT팀에 사흘 전까지 신청합니다."
|
||
}
|
||
]
|
||
}
|
||
← response HTTP 200
|
||
{
|
||
"batch": "E-1",
|
||
"total": 10,
|
||
"valid": 4,
|
||
"invalid": 6,
|
||
"with_warnings": 0,
|
||
"rows": [
|
||
{
|
||
"id": "FAQ-401",
|
||
"ok": true,
|
||
"errors": [],
|
||
"warnings": []
|
||
},
|
||
{
|
||
"id": "FAQ-402",
|
||
"ok": false,
|
||
"errors": [
|
||
"title_too_long"
|
||
],
|
||
"warnings": []
|
||
},
|
||
{
|
||
"id": "FAQ-403",
|
||
"ok": false,
|
||
"errors": [
|
||
"title_missing"
|
||
],
|
||
"warnings": []
|
||
},
|
||
{
|
||
"id": "FAQ-404",
|
||
"ok": true,
|
||
"errors": [],
|
||
"warnings": []
|
||
},
|
||
{
|
||
"id": "FAQ-405",
|
||
"ok": false,
|
||
"errors": [
|
||
"answer_too_short"
|
||
],
|
||
"warnings": []
|
||
},
|
||
{
|
||
"id": "FAQ-406",
|
||
"ok": false,
|
||
"errors": [
|
||
"pii"
|
||
],
|
||
"warnings": []
|
||
},
|
||
{
|
||
"id": "FAQ-407",
|
||
"ok": true,
|
||
"errors": [],
|
||
"warnings": []
|
||
},
|
||
{
|
||
"id": "FAQ-408",
|
||
"ok": true,
|
||
"errors": [],
|
||
"warnings": []
|
||
},
|
||
{
|
||
"id": "FAQ-409",
|
||
"ok": false,
|
||
"errors": [
|
||
"external_link"
|
||
],
|
||
"warnings": []
|
||
},
|
||
{
|
||
"id": "faq-410",
|
||
"ok": false,
|
||
"errors": [
|
||
"id_format"
|
||
],
|
||
"warnings": []
|
||
}
|
||
],
|
||
"codes": {
|
||
"title_too_long": 1,
|
||
"title_missing": 1,
|
||
"answer_too_short": 1,
|
||
"pii": 1,
|
||
"external_link": 1,
|
||
"id_format": 1
|
||
}
|
||
}
|
||
Passed 6/6
|
||
report: runs/lab01-edges-20261101-180518.json
|
||
|
||
$ uv run tools/flow.py test cases/lab01-edges.json --webhook base-faq-check
|
||
POST http://localhost:5678/webhook/base-faq-check · 6 case(s) × 1
|
||
✘ 제목 40자는 통과, 41자는 너무 김 · 0.0s · rows.1.ok = true (expected false); rows.1.errors has none of ['title_too_long']
|
||
✘ 공백만 있는 제목은 빈 값 · 0.1s · rows.2.errors has none of ['title_missing']
|
||
✘ 답 10자는 통과, 9자는 너무 짧음 · 0.0s · rows.4.errors has none of ['answer_too_short']
|
||
✘ 하이픈 없는 휴대전화도 개인정보, 사무실 번호는 통과 · 0.1s · rows.5.errors has none of ['pii']
|
||
✘ 사내 주소는 통과, 사내 주소처럼 보이는 바깥 링크는 막음 · 0.0s · rows.8.errors has none of ['external_link']
|
||
✘ 소문자 id · 합계 10줄 중 4줄 통과 · 0.1s · valid = 10 (expected 4); rows.9.errors has none of ['id_format']
|
||
Passed 0/6
|
||
report: runs/lab01-edges-20261101-180519.json
|