Firebase functions와 Jest의 조합으로 올바르게 종료

비망록의 메모입니다.
다음 환경에서 테스트를 작성한 후 Jest를 종료하는 데 시간이 오래 걸리고 메시지가 출력되었습니다.
  • @firebase/testing 0.16.5
  • @firebase/functions 0.4.29
  • Jset 24.9.0

  • 다음과 같은 메시지로 인해 비동기 처리가 잘 수행되지 않는 느낌 만 발견되었습니다.

    Jest did not exit one second after the test run has completed.

    This usually means that there are asynchronous operations that weren't stopped in > your tests. Consider running Jest with --detectOpenHandles to troubleshoot this issue.

    Jest 문서와 @firebase/functions 코드을 읽고 다음 사양을 찾았습니다.
  • Jest는 결과를 얻는 데 1초 이상 걸리면 경고가 발생합니다.
  • Jset 테스트 타임 아웃이 기본값이면 5 초
  • @firebase/functionshttpsCallable 시간 초과는 70초

  • 1 초 미만으로 종료하면 경고가 발생하지 않으므로 다음과 같이 다시 작성하면 OK입니다.
    여기서 900ms로 설정했습니다.
    const testFuncs = firebase.initializeTestApp(config);
    const functions = testFuncs.functions();
    functions.useFunctionsEmulator("http://localhost:5001");
    
    // timeoutを指定
    const func = functions.httpsCallable('func', { timeout: 900 });
    const res = await func({ path: "hello" });
    

    1 초 미만으로 시간이 초과되는 경우 --detectOpenHandles를 지정하여 시간 초과를 늘리는 방법도 있습니다.

    좋은 웹페이지 즐겨찾기