ci / go (push) Waiting to run
ci / go-db (agent) (push) Waiting to run
ci / go-db (config) (push) Waiting to run
ci / go-db (db) (push) Waiting to run
ci / go-db (evidence) (push) Waiting to run
ci / go-db (llmrec) (push) Waiting to run
ci / go-db (server) (push) Waiting to run
detections / detections (push) Waiting to run
docs / links (push) Waiting to run
web / web (push) Waiting to run
40 lines
1.7 KiB
Go
40 lines
1.7 KiB
Go
package server
|
|
|
|
import "testing"
|
|
|
|
// triggers.go 의 트리거 설정 검증 오류 문구를 한국어로 유지하는 회귀 방어 테스트다.
|
|
// 한국어 판정은 F3a 가 만든 assertChineseError(한글 포함·중국어 한자 0)를 재사용한다.
|
|
|
|
// TestTriggerErrorConstantsLocalized 는 오류 상수 3종이 전부 한국어임을 단언한다.
|
|
func TestTriggerErrorConstantsLocalized(t *testing.T) {
|
|
cases := []struct {
|
|
name string
|
|
msg string
|
|
}{
|
|
{"no_condition", errTriggerNoCondition},
|
|
{"tool_set_empty", errTriggerToolSetEmpty},
|
|
{"custom_only", errTriggerCustomOnly},
|
|
}
|
|
for _, c := range cases {
|
|
assertChineseError(t, c.name, c.msg)
|
|
}
|
|
}
|
|
|
|
// TestValidateTriggerLocalized 는 validateTrigger 순수 함수를 실제로 호출해, 조건 누락·도구
|
|
// 미선택 경로가 한국어 상수를 돌려주고 유효 입력은 빈 문자열을 돌려줌을 확인한다. 이 반환값은
|
|
// pgCreateTrigger·pgUpdateTrigger 가 writeErr(400, msg) 로 사용자에게 그대로 노출한다.
|
|
func TestValidateTriggerLocalized(t *testing.T) {
|
|
if msg := validateTrigger(&triggerReq{}); msg != errTriggerNoCondition {
|
|
t.Fatalf("조건 누락 문구 = %q, 기대 = %q", msg, errTriggerNoCondition)
|
|
}
|
|
if msg := validateTrigger(&triggerReq{OnToolCall: true}); msg != errTriggerToolSetEmpty {
|
|
t.Fatalf("도구 미선택 문구 = %q, 기대 = %q", msg, errTriggerToolSetEmpty)
|
|
}
|
|
if msg := validateTrigger(&triggerReq{OnFinding: true}); msg != "" {
|
|
t.Fatalf("유효 입력 문구 = %q, 기대 = 빈 문자열", msg)
|
|
}
|
|
if msg := validateTrigger(&triggerReq{OnToolCall: true, ToolNames: []string{"nmap"}}); msg != "" {
|
|
t.Fatalf("유효 도구 호출 문구 = %q, 기대 = 빈 문자열", msg)
|
|
}
|
|
}
|