{"numFailedTestSuites":0,"numFailedTests":0,"numPassedTestSuites":2,"numPassedTests":17,"numPendingTestSuites":0,"numPendingTests":0,"numRuntimeErrorTestSuites":0,"numTodoTests":0,"numTotalTestSuites":2,"numTotalTests":17,"openHandles":[],"snapshot":{"added":0,"didUpdate":false,"failure":false,"filesAdded":0,"filesRemoved":0,"filesRemovedList":[],"filesUnmatched":0,"filesUpdated":0,"matched":0,"total":0,"unchecked":0,"uncheckedKeysByFile":[],"unmatched":0,"updated":0},"startTime":1792461959595,"success":true,"testResults":[{"assertionResults":[{"ancestorTitles":["핸들러 범위 절 · 목록 (I1 · I4)"],"duration":3,"failureDetails":[],"failureMessages":[],"fullName":"핸들러 범위 절 · 목록 (I1 · I4) ON: 영업 전 기업 목록(I1)은 담당 sagId 절을 저장소에 넘긴다","invocations":1,"location":null,"numPassingAsserts":1,"retryReasons":[],"status":"passed","title":"ON: 영업 전 기업 목록(I1)은 담당 sagId 절을 저장소에 넘긴다"},{"ancestorTitles":["핸들러 범위 절 · 목록 (I1 · I4)"],"duration":0,"failureDetails":[],"failureMessages":[],"fullName":"핸들러 범위 절 · 목록 (I1 · I4) OFF: 같은 요청도 저장소 인자는 현행과 같이 비어 있다 (응답 불변)","invocations":1,"location":null,"numPassingAsserts":1,"retryReasons":[],"status":"passed","title":"OFF: 같은 요청도 저장소 인자는 현행과 같이 비어 있다 (응답 불변)"},{"ancestorTitles":["핸들러 범위 절 · 목록 (I1 · I4)"],"duration":1,"failureDetails":[],"failureMessages":[],"fullName":"핸들러 범위 절 · 목록 (I1 · I4) OFF: 구독 실패 목록(I4)도 저장소 인자가 null 이다 (응답 불변)","invocations":1,"location":null,"numPassingAsserts":1,"retryReasons":[],"status":"passed","title":"OFF: 구독 실패 목록(I4)도 저장소 인자가 null 이다 (응답 불변)"},{"ancestorTitles":["핸들러 범위 절 · 목록 (I1 · I4)"],"duration":0,"failureDetails":[],"failureMessages":[],"fullName":"핸들러 범위 절 · 목록 (I1 · I4) ON: 담당 영업 키가 없는 영업 신원은 500 이 아니라 403 으로 거부된다 (목록 호출 0회)","invocations":1,"location":null,"numPassingAsserts":2,"retryReasons":[],"status":"passed","title":"ON: 담당 영업 키가 없는 영업 신원은 500 이 아니라 403 으로 거부된다 (목록 호출 0회)"},{"ancestorTitles":["핸들러 범위 절 · 목록 (I1 · I4)"],"duration":1,"failureDetails":[],"failureMessages":[],"fullName":"핸들러 범위 절 · 목록 (I1 · I4) ON: 구독 실패 목록(I4)은 절을 서비스에 넘기고, 목록과 count 는 같은 범위 조건을 쓴다","invocations":1,"location":null,"numPassingAsserts":3,"retryReasons":[],"status":"passed","title":"ON: 구독 실패 목록(I4)은 절을 서비스에 넘기고, 목록과 count 는 같은 범위 조건을 쓴다"},{"ancestorTitles":["핸들러 범위 절 · 목록 (I1 · I4)"],"duration":0,"failureDetails":[],"failureMessages":[],"fullName":"핸들러 범위 절 · 목록 (I1 · I4) 범위 절 생성기는 같은 입력에 같은 절 목록을 돌려준다 (집계·내보내기 경로는 이 시험이 보지 않는다)","invocations":1,"location":null,"numPassingAsserts":1,"retryReasons":[],"status":"passed","title":"범위 절 생성기는 같은 입력에 같은 절 목록을 돌려준다 (집계·내보내기 경로는 이 시험이 보지 않는다)"},{"ancestorTitles":["단건 3의미 (분리 함수)"],"duration":1,"failureDetails":[],"failureMessages":[],"fullName":"단건 3의미 (분리 함수) 3의미는 이름별 함수로 나뉘고 같은 입력에 서로 다른 의미를 합치지 않는다","invocations":1,"location":null,"numPassingAsserts":3,"retryReasons":[],"status":"passed","title":"3의미는 이름별 함수로 나뉘고 같은 입력에 서로 다른 의미를 합치지 않는다"}],"endTime":1792461960828,"message":"","name":"/home/madsc/work/insuniverse-temp/.worktrees/admin-rbac/insuniverse-server/apps/api/src/modules/auth/access-control/scope-handlers.spec.ts","startTime":1792461959894,"status":"passed","summary":""},{"assertionResults":[{"ancestorTitles":["강제 ON · 소속 쓰기 (영업 범위)"],"duration":3,"failureDetails":[],"failureMessages":[],"fullName":"강제 ON · 소속 쓰기 (영업 범위) 전건 거부: 영업 범위 밖 회원이 하나라도 있으면 403 이고 쓰기 0회다","invocations":1,"location":null,"numPassingAsserts":3,"retryReasons":[],"status":"passed","title":"전건 거부: 영업 범위 밖 회원이 하나라도 있으면 403 이고 쓰기 0회다"},{"ancestorTitles":["강제 ON · 소속 쓰기 (영업 범위)"],"duration":0,"failureDetails":[],"failureMessages":[],"fullName":"강제 ON · 소속 쓰기 (영업 범위) 전건 거부: 조직관리자 지정도 범위 밖 회원이 섞이면 쓰기 0회다","invocations":1,"location":null,"numPassingAsserts":2,"retryReasons":[],"status":"passed","title":"전건 거부: 조직관리자 지정도 범위 밖 회원이 섞이면 쓰기 0회다"},{"ancestorTitles":["강제 ON · 소속 쓰기 (영업 범위)"],"duration":2,"failureDetails":[],"failureMessages":[],"fullName":"강제 ON · 소속 쓰기 (영업 범위) 정상 경로: 담당 범위 회원만이면 같은 트랜잭션 tx 로 잠그고 판정하고 바꾼다","invocations":1,"location":null,"numPassingAsserts":5,"retryReasons":[],"status":"passed","title":"정상 경로: 담당 범위 회원만이면 같은 트랜잭션 tx 로 잠그고 판정하고 바꾼다"},{"ancestorTitles":["강제 ON · 소속 쓰기 (영업 범위)"],"duration":0,"failureDetails":[],"failureMessages":[],"fullName":"강제 ON · 소속 쓰기 (영업 범위) 음성: 범위 인자를 빼면 (담당 sagId 없음) 판정 대상 수가 어긋나 거부한다","invocations":1,"location":null,"numPassingAsserts":2,"retryReasons":[],"status":"passed","title":"음성: 범위 인자를 빼면 (담당 sagId 없음) 판정 대상 수가 어긋나 거부한다"},{"ancestorTitles":["강제 ON · 소속 쓰기 (영업 범위)"],"duration":0,"failureDetails":[],"failureMessages":[],"fullName":"강제 ON · 소속 쓰기 (영업 범위) 사전 판정: 범위 밖이면 트랜잭션을 열기 전에 거부한다 (잠금 0회)","invocations":1,"location":null,"numPassingAsserts":4,"retryReasons":[],"status":"passed","title":"사전 판정: 범위 밖이면 트랜잭션을 열기 전에 거부한다 (잠금 0회)"},{"ancestorTitles":["강제 ON · 소속 쓰기 (영업 범위)"],"duration":1,"failureDetails":[],"failureMessages":[],"fullName":"강제 ON · 소속 쓰기 (영업 범위) 연결 1개: 영업 배정의 판정 조회 (목적지 조직 · 회원 기업) 는 모두 같은 tx 를 받는다","invocations":1,"location":null,"numPassingAsserts":2,"retryReasons":[],"status":"passed","title":"연결 1개: 영업 배정의 판정 조회 (목적지 조직 · 회원 기업) 는 모두 같은 tx 를 받는다"},{"ancestorTitles":["강제 ON · 소속 쓰기 (영업 범위)"],"duration":0,"failureDetails":[],"failureMessages":[],"fullName":"강제 ON · 소속 쓰기 (영업 범위) 연결 1개: 기업 배정의 현행 판정 (회원 기업 · 목적지 조직) 도 같은 tx 를 받는다","invocations":1,"location":null,"numPassingAsserts":2,"retryReasons":[],"status":"passed","title":"연결 1개: 기업 배정의 현행 판정 (회원 기업 · 목적지 조직) 도 같은 tx 를 받는다"},{"ancestorTitles":["강제 ON · 소속 쓰기 (영업 범위)"],"duration":1,"failureDetails":[],"failureMessages":[],"fullName":"강제 ON · 소속 쓰기 (영업 범위) 사전 판정 (corp): 담당 기업 밖 회원이 섞이면 트랜잭션도 잠금도 열기 전에 거부한다","invocations":1,"location":null,"numPassingAsserts":6,"retryReasons":[],"status":"passed","title":"사전 판정 (corp): 담당 기업 밖 회원이 섞이면 트랜잭션도 잠금도 열기 전에 거부한다"},{"ancestorTitles":["강제 ON · 소속 쓰기 (영업 범위)"],"duration":0,"failureDetails":[],"failureMessages":[],"fullName":"강제 ON · 소속 쓰기 (영업 범위) 신원 없음: 판정 신원이 없으면 판정 없이 통과하지 않고 거부한다 (쓰기 0회)","invocations":1,"location":null,"numPassingAsserts":4,"retryReasons":[],"status":"passed","title":"신원 없음: 판정 신원이 없으면 판정 없이 통과하지 않고 거부한다 (쓰기 0회)"},{"ancestorTitles":["강제 ON · 소속 쓰기 (영업 범위)"],"duration":0,"failureDetails":[],"failureMessages":[],"fullName":"강제 ON · 소속 쓰기 (영업 범위) 숫자가 아닌 sagId: 판정 조회 (SQL) 전에 403 이다","invocations":1,"location":null,"numPassingAsserts":3,"retryReasons":[],"status":"passed","title":"숫자가 아닌 sagId: 판정 조회 (SQL) 전에 403 이다"}],"endTime":1792461960964,"message":"","name":"/home/madsc/work/insuniverse-temp/.worktrees/admin-rbac/insuniverse-server/apps/api/src/modules/auth/access-control/scope-enforce.spec.ts","startTime":1792461959889,"status":"passed","summary":""}],"wasInterrupted":false}
