{"numFailedTestSuites":0,"numFailedTests":0,"numPassedTestSuites":1,"numPassedTests":10,"numPendingTestSuites":0,"numPendingTests":0,"numRuntimeErrorTestSuites":0,"numTodoTests":0,"numTotalTestSuites":1,"numTotalTests":10,"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":1792647994892,"success":true,"testResults":[{"assertionResults":[{"ancestorTitles":["조직 이동 경합 (격리 MySQL 두 연결)"],"duration":512,"failureDetails":[],"failureMessages":[],"fullName":"조직 이동 경합 (격리 MySQL 두 연결) 조직 이동 경합: 다른 연결이 대상 조직 행을 잠그고 있으면 이동 (lock=true) 은 기다리고, 잠금이 풀린 뒤 한 번만 바꾼다","invocations":1,"location":null,"numPassingAsserts":3,"retryReasons":[],"status":"passed","title":"조직 이동 경합: 다른 연결이 대상 조직 행을 잠그고 있으면 이동 (lock=true) 은 기다리고, 잠금이 풀린 뒤 한 번만 바꾼다"},{"ancestorTitles":["조직 이동 경합 (격리 MySQL 두 연결)"],"duration":15,"failureDetails":[],"failureMessages":[],"fullName":"조직 이동 경합 (격리 MySQL 두 연결) 낡은 스냅샷 이동: 잠금 뒤 최신 경로로 하위 전체를 다시 쓴다 (X·W 를 Z 아래로)","invocations":1,"location":null,"numPassingAsserts":2,"retryReasons":[],"status":"passed","title":"낡은 스냅샷 이동: 잠금 뒤 최신 경로로 하위 전체를 다시 쓴다 (X·W 를 Z 아래로)"},{"ancestorTitles":["조직 이동 경합 (격리 MySQL 두 연결)"],"duration":2,"failureDetails":[],"failureMessages":[],"fullName":"조직 이동 경합 (격리 MySQL 두 연결) 낡은 스냅샷 순환: 잠금 뒤 최신 경로로 순환을 다시 판정해 거부하고 아무것도 쓰지 않는다","invocations":1,"location":null,"numPassingAsserts":2,"retryReasons":[],"status":"passed","title":"낡은 스냅샷 순환: 잠금 뒤 최신 경로로 순환을 다시 판정해 거부하고 아무것도 쓰지 않는다"},{"ancestorTitles":["조직 이동 경합 (격리 MySQL 두 연결)"],"duration":518,"failureDetails":[],"failureMessages":[],"fullName":"조직 이동 경합 (격리 MySQL 두 연결) 하위 추가 경합: 부모 행이 잠겨 있으면 하위 추가는 기다리고, 풀린 뒤 최신 경로로 들어간다","invocations":1,"location":null,"numPassingAsserts":3,"retryReasons":[],"status":"passed","title":"하위 추가 경합: 부모 행이 잠겨 있으면 하위 추가는 기다리고, 풀린 뒤 최신 경로로 들어간다"},{"ancestorTitles":["조직 이동 경합 (격리 MySQL 두 연결)"],"duration":533,"failureDetails":[],"failureMessages":[],"fullName":"조직 이동 경합 (격리 MySQL 두 연결) 소속 쓰기 후 삭제: 소속 쓰기가 쥔 회원 잠금 뒤 삭제는 기다리고, 커밋 뒤 새 회원을 떼어 낸다","invocations":1,"location":null,"numPassingAsserts":4,"retryReasons":[],"status":"passed","title":"소속 쓰기 후 삭제: 소속 쓰기가 쥔 회원 잠금 뒤 삭제는 기다리고, 커밋 뒤 새 회원을 떼어 낸다"},{"ancestorTitles":["조직 이동 경합 (격리 MySQL 두 연결)"],"duration":521,"failureDetails":[],"failureMessages":[],"fullName":"조직 이동 경합 (격리 MySQL 두 연결) 삭제 후 소속 쓰기 (원시 SQL 헬퍼): 삭제가 회원 잠금을 쥔 동안 기다리고, 삭제 뒤 대상 조직이 없어 0 행이다","invocations":1,"location":null,"numPassingAsserts":5,"retryReasons":[],"status":"passed","title":"삭제 후 소속 쓰기 (원시 SQL 헬퍼): 삭제가 회원 잠금을 쥔 동안 기다리고, 삭제 뒤 대상 조직이 없어 0 행이다"},{"ancestorTitles":["조직 이동 경합 (격리 MySQL 두 연결)"],"duration":109,"failureDetails":[],"failureMessages":[],"fullName":"조직 이동 경합 (격리 MySQL 두 연결) 구 순서 반사실: 기업 잠금 뒤 회원을 갱신하는 옛 순서는 소속 쓰기 (회원 → 기업) 와 교착한다 (1213, MySQL 일반 성질)","invocations":1,"location":null,"numPassingAsserts":1,"retryReasons":[],"status":"passed","title":"구 순서 반사실: 기업 잠금 뒤 회원을 갱신하는 옛 순서는 소속 쓰기 (회원 → 기업) 와 교착한다 (1213, MySQL 일반 성질)"},{"ancestorTitles":["조직 이동 경합 (격리 MySQL 두 연결)"],"duration":529,"failureDetails":[],"failureMessages":[],"fullName":"조직 이동 경합 (격리 MySQL 두 연결) 삭제 경로 회원 선행 잠금: 삭제는 기업 잠금 전에 부분트리 회원 (1002) 을 잠근다","invocations":1,"location":null,"numPassingAsserts":4,"retryReasons":[],"status":"passed","title":"삭제 경로 회원 선행 잠금: 삭제는 기업 잠금 전에 부분트리 회원 (1002) 을 잠근다"},{"ancestorTitles":["조직 이동 경합 (격리 MySQL 두 연결)"],"duration":519,"failureDetails":[],"failureMessages":[],"fullName":"조직 이동 경합 (격리 MySQL 두 연결) 조직 라우트 쓰기 잠금: 영업 판정은 기업 잠금 뒤의 담당 영업으로 한다 (기다린 뒤 거부)","invocations":1,"location":null,"numPassingAsserts":2,"retryReasons":[],"status":"passed","title":"조직 라우트 쓰기 잠금: 영업 판정은 기업 잠금 뒤의 담당 영업으로 한다 (기다린 뒤 거부)"},{"ancestorTitles":["조직 이동 경합 (격리 MySQL 두 연결)"],"duration":532,"failureDetails":[],"failureMessages":[],"fullName":"조직 이동 경합 (격리 MySQL 두 연결) 삭제 · 소속 쓰기 교착 없음: 소속 쓰기가 기업을 쥔 채 옮기는 동안 삭제가 기업을 기다려도 교착하지 않는다","invocations":1,"location":null,"numPassingAsserts":5,"retryReasons":[],"status":"passed","title":"삭제 · 소속 쓰기 교착 없음: 소속 쓰기가 기업을 쥔 채 옮기는 동안 삭제가 기업을 기다려도 교착하지 않는다"}],"endTime":1792647999334,"message":"","name":"/home/madsc/work/insuniverse-temp/.worktrees/admin-rbac/insuniverse-server/apps/api/src/modules/agency/organization/organization.race.itspec.ts","startTime":1792647995017,"status":"passed","summary":""}],"wasInterrupted":false}
