Exporting environment variables Exporting CI Exporting DISPLAY Exporting NODE_ENV Exporting PAGER Exporting SEMAPHORE Exporting SEMAPHORE_AGENT_MACHINE_ENVIRONMENT_TYPE Exporting SEMAPHORE_AGENT_MACHINE_OS_IMAGE Exporting SEMAPHORE_AGENT_MACHINE_TYPE Exporting SEMAPHORE_ARTIFACT_TOKEN Exporting SEMAPHORE_CACHE_BACKEND Exporting SEMAPHORE_CACHE_PRIVATE_KEY_PATH Exporting SEMAPHORE_CACHE_URL Exporting SEMAPHORE_CACHE_USERNAME Exporting SEMAPHORE_GIT_BRANCH Exporting SEMAPHORE_GIT_COMMITTER Exporting SEMAPHORE_GIT_COMMIT_AUTHOR Exporting SEMAPHORE_GIT_COMMIT_RANGE Exporting SEMAPHORE_GIT_DIR Exporting SEMAPHORE_GIT_PROVIDER Exporting SEMAPHORE_GIT_PR_BRANCH Exporting SEMAPHORE_GIT_PR_NAME Exporting SEMAPHORE_GIT_PR_NUMBER Exporting SEMAPHORE_GIT_PR_SHA Exporting SEMAPHORE_GIT_PR_SLUG Exporting SEMAPHORE_GIT_REF Exporting SEMAPHORE_GIT_REF_TYPE Exporting SEMAPHORE_GIT_REPO_NAME Exporting SEMAPHORE_GIT_REPO_SLUG Exporting SEMAPHORE_GIT_SHA Exporting SEMAPHORE_GIT_URL Exporting SEMAPHORE_GIT_WORKING_BRANCH Exporting SEMAPHORE_JOB_CREATION_TIME Exporting SEMAPHORE_JOB_ID Exporting SEMAPHORE_JOB_NAME Exporting SEMAPHORE_ORGANIZATION_URL Exporting SEMAPHORE_PIPELINE_0_ARTEFACT_ID Exporting SEMAPHORE_PIPELINE_ARTEFACT_ID Exporting SEMAPHORE_PIPELINE_ID Exporting SEMAPHORE_PIPELINE_PROMOTED_BY Exporting SEMAPHORE_PIPELINE_PROMOTION Exporting SEMAPHORE_PIPELINE_RERUN Exporting SEMAPHORE_PROJECT_ID Exporting SEMAPHORE_PROJECT_NAME Exporting SEMAPHORE_TOOLBOX_METRICS_ENABLED Exporting SEMAPHORE_WORKFLOW_HOOK_SOURCE Exporting SEMAPHORE_WORKFLOW_ID Exporting SEMAPHORE_WORKFLOW_NUMBER Exporting SEMAPHORE_WORKFLOW_RERUN Exporting SEMAPHORE_WORKFLOW_TRIGGERED_BY Exporting SEMAPHORE_WORKFLOW_TRIGGERED_BY_API Exporting SEMAPHORE_WORKFLOW_TRIGGERED_BY_HOOK Exporting SEMAPHORE_WORKFLOW_TRIGGERED_BY_MANUAL_RUN Exporting SEMAPHORE_WORKFLOW_TRIGGERED_BY_SCHEDULE Exporting SSH_PRIVATE_KEY_PATH Exporting TERM Injecting Files Injecting /home/semaphore/.ssh/semaphore_cache_key with file mode 0600 Injecting /home/semaphore/.ssh/id_rsa with file mode 0600 Running the pre-job hook configured in the agent Running: source /opt/semaphoreci/prejob/pre_job.sh Warning: The agent is configured to fail the job if the pre-job hook fails. Installing toolbox in pre-job-hook Toolbox download URL: http://packages.semaphoreci.com/toolbox/releases/download/v1.21.8/linux.tar Tar file: linux.tar Attempt 5 toolbox/ toolbox/sem-service toolbox/install-package toolbox/toolbox toolbox/libcheckout toolbox/test-results toolbox/artifact toolbox/install-toolbox toolbox/spc toolbox/cache toolbox/sem-service-check-params toolbox/sem-semantic-release toolbox/sem-version toolbox/ssh-session-cli toolbox/sem-install toolbox/libchecksum toolbox/retry toolbox/sem-context toolbox/Dockerfile.dev toolbox/sem-dockerize toolbox/when toolbox/enetwork toolbox/system-metrics-collector toolbox/README.md retry installed ssh-session-cli installed cache installed sem-context installed sem-service installed sem-dockerize installed sem-service-check-params installed sem-semantic-release installed Installing the artifacts CLI artifacts installed Installing the test results CLI test-results installed Installing the install-package for linux install-package installed Installing the SPC CLI spc installed Installing the when CLI when installed Installing the enetwork CLI enetwork installed Starting to collect System Metrics in /tmp/system-metrics Starting virtual X frame buffer: Xvfb. Toolbox installed Starting ssh-agent Agent pid 3781 ssh-agent started Connecting to cache # 116.202.32.43:29920 SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.7 # 116.202.32.43:29920 SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.7 # 116.202.32.43:29920 SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.7 # 116.202.32.43:29920 SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.7 # 116.202.32.43:29920 SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.7 Identity added: /home/semaphore/.ssh/semaphore_cache_key (/home/semaphore/.ssh/semaphore_cache_key) checkout Cloning into 'workos-node'... Warning: Permanently added 'github.com' (ED25519) to the list of known hosts. remote: Enumerating objects: 712, done. remote: Counting objects: 0% (1/712) remote: Counting objects: 1% (8/712) remote: Counting objects: 2% (15/712) remote: Counting objects: 3% (22/712) remote: Counting objects: 4% (29/712) remote: Counting objects: 5% (36/712) remote: Counting objects: 6% (43/712) remote: Counting objects: 7% (50/712) remote: Counting objects: 8% (57/712) remote: Counting objects: 9% (65/712) remote: Counting objects: 10% (72/712) remote: Counting objects: 11% (79/712) remote: Counting objects: 12% (86/712) remote: Counting objects: 13% (93/712) remote: Counting objects: 14% (100/712) remote: Counting objects: 15% (107/712) remote: Counting objects: 16% (114/712) remote: Counting objects: 17% (122/712) remote: Counting objects: 18% (129/712) remote: Counting objects: 19% (136/712) remote: Counting objects: 20% (143/712) remote: Counting objects: 21% (150/712) remote: Counting objects: 22% (157/712) remote: Counting objects: 23% (164/712) remote: Counting objects: 24% (171/712) remote: Counting objects: 25% (178/712) remote: Counting objects: 26% (186/712) remote: Counting objects: 27% (193/712) remote: Counting objects: 28% (200/712) remote: Counting objects: 29% (207/712) remote: Counting objects: 30% (214/712) remote: Counting objects: 31% (221/712) remote: Counting objects: 32% (228/712) remote: Counting objects: 33% (235/712) remote: Counting objects: 34% (243/712) remote: Counting objects: 35% (250/712) remote: Counting objects: 36% (257/712) remote: Counting objects: 37% (264/712) remote: Counting objects: 38% (271/712) remote: Counting objects: 39% (278/712) remote: Counting objects: 40% (285/712) remote: Counting objects: 41% (292/712) remote: Counting objects: 42% (300/712) remote: Counting objects: 43% (307/712) remote: Counting objects: 44% (314/712) remote: Counting objects: 45% (321/712) remote: Counting objects: 46% (328/712) remote: Counting objects: 47% (335/712) remote: Counting objects: 48% (342/712) remote: Counting objects: 49% (349/712) remote: Counting objects: 50% (356/712) remote: Counting objects: 51% (364/712) remote: Counting objects: 52% (371/712) remote: Counting objects: 53% (378/712) remote: Counting objects: 54% (385/712) remote: Counting objects: 55% (392/712) remote: Counting objects: 56% (399/712) remote: Counting objects: 57% (406/712) remote: Counting objects: 58% (413/712) remote: Counting objects: 59% (421/712) remote: Counting objects: 60% (428/712) remote: Counting objects: 61% (435/712) remote: Counting objects: 62% (442/712) remote: Counting objects: 63% (449/712) remote: Counting objects: 64% (456/712) remote: Counting objects: 65% (463/712) remote: Counting objects: 66% (470/712) remote: Counting objects: 67% (478/712) remote: Counting objects: 68% (485/712) remote: Counting objects: 69% (492/712) remote: Counting objects: 70% (499/712) remote: Counting objects: 71% (506/712) remote: Counting objects: 72% (513/712) remote: Counting objects: 73% (520/712) remote: Counting objects: 74% (527/712) remote: Counting objects: 75% (534/712) remote: Counting objects: 76% (542/712) remote: Counting objects: 77% (549/712) remote: Counting objects: 78% (556/712) remote: Counting objects: 79% (563/712) remote: Counting objects: 80% (570/712) remote: Counting objects: 81% (577/712) remote: Counting objects: 82% (584/712) remote: Counting objects: 83% (591/712) remote: Counting objects: 84% (599/712) remote: Counting objects: 85% (606/712) remote: Counting objects: 86% (613/712) remote: Counting objects: 87% (620/712) remote: Counting objects: 88% (627/712) remote: Counting objects: 89% (634/712) remote: Counting objects: 90% (641/712) remote: Counting objects: 91% (648/712) remote: Counting objects: 92% (656/712) remote: Counting objects: 93% (663/712) remote: Counting objects: 94% (670/712) remote: Counting objects: 95% (677/712) remote: Counting objects: 96% (684/712) remote: Counting objects: 97% (691/712) remote: Counting objects: 98% (698/712) remote: Counting objects: 99% (705/712) remote: Counting objects: 100% (712/712) remote: Counting objects: 100% (712/712), done. remote: Compressing objects: 0% (1/464) remote: Compressing objects: 1% (5/464) remote: Compressing objects: 2% (10/464) remote: Compressing objects: 3% (14/464) remote: Compressing objects: 4% (19/464) remote: Compressing objects: 5% (24/464) remote: Compressing objects: 6% (28/464) remote: Compressing objects: 7% (33/464) remote: Compressing objects: 8% (38/464) remote: Compressing objects: 9% (42/464) remote: Compressing objects: 10% (47/464) remote: Compressing objects: 11% (52/464) remote: Compressing objects: 12% (56/464) remote: Compressing objects: 13% (61/464) remote: Compressing objects: 14% (65/464) remote: Compressing objects: 15% (70/464) remote: Compressing objects: 16% (75/464) remote: Compressing objects: 17% (79/464) remote: Compressing objects: 18% (84/464) remote: Compressing objects: 19% (89/464) remote: Compressing objects: 20% (93/464) remote: Compressing objects: 21% (98/464) remote: Compressing objects: 22% (103/464) remote: Compressing objects: 23% (107/464) remote: Compressing objects: 24% (112/464) remote: Compressing objects: 25% (116/464) remote: Compressing objects: 26% (121/464) remote: Compressing objects: 27% (126/464) remote: Compressing objects: 28% (130/464) remote: Compressing objects: 29% (135/464) remote: Compressing objects: 30% (140/464) remote: Compressing objects: 31% (144/464) remote: Compressing objects: 32% (149/464) remote: Compressing objects: 33% (154/464) remote: Compressing objects: 34% (158/464) remote: Compressing objects: 35% (163/464) remote: Compressing objects: 36% (168/464) remote: Compressing objects: 37% (172/464) remote: Compressing objects: 38% (177/464) remote: Compressing objects: 39% (181/464) remote: Compressing objects: 40% (186/464) remote: Compressing objects: 41% (191/464) remote: Compressing objects: 42% (195/464) remote: Compressing objects: 43% (200/464) remote: Compressing objects: 44% (205/464) remote: Compressing objects: 45% (209/464) remote: Compressing objects: 46% (214/464) remote: Compressing objects: 47% (219/464) remote: Compressing objects: 48% (223/464) remote: Compressing objects: 49% (228/464) remote: Compressing objects: 50% (232/464) remote: Compressing objects: 51% (237/464) remote: Compressing objects: 52% (242/464) remote: Compressing objects: 53% (246/464) remote: Compressing objects: 54% (251/464) remote: Compressing objects: 55% (256/464) remote: Compressing objects: 56% (260/464) remote: Compressing objects: 57% (265/464) remote: Compressing objects: 58% (270/464) remote: Compressing objects: 59% (274/464) remote: Compressing objects: 60% (279/464) remote: Compressing objects: 61% (284/464) remote: Compressing objects: 62% (288/464) remote: Compressing objects: 63% (293/464) remote: Compressing objects: 64% (297/464) remote: Compressing objects: 65% (302/464) remote: Compressing objects: 66% (307/464) remote: Compressing objects: 67% (311/464) remote: Compressing objects: 68% (316/464) remote: Compressing objects: 69% (321/464) remote: Compressing objects: 70% (325/464) remote: Compressing objects: 71% (330/464) remote: Compressing objects: 72% (335/464) remote: Compressing objects: 73% (339/464) remote: Compressing objects: 74% (344/464) remote: Compressing objects: 75% (348/464) remote: Compressing objects: 76% (353/464) remote: Compressing objects: 77% (358/464) remote: Compressing objects: 78% (362/464) remote: Compressing objects: 79% (367/464) remote: Compressing objects: 80% (372/464) remote: Compressing objects: 81% (376/464) remote: Compressing objects: 82% (381/464) remote: Compressing objects: 83% (386/464) remote: Compressing objects: 84% (390/464) remote: Compressing objects: 85% (395/464) remote: Compressing objects: 86% (400/464) remote: Compressing objects: 87% (404/464) remote: Compressing objects: 88% (409/464) remote: Compressing objects: 89% (413/464) remote: Compressing objects: 90% (418/464) remote: Compressing objects: 91% (423/464) remote: Compressing objects: 92% (427/464) remote: Compressing objects: 93% (432/464) remote: Compressing objects: 94% (437/464) remote: Compressing objects: 95% (441/464) remote: Compressing objects: 96% (446/464) remote: Compressing objects: 97% (451/464) remote: Compressing objects: 98% (455/464) remote: Compressing objects: 99% (460/464) remote: Compressing objects: 100% (464/464) remote: Compressing objects: 100% (464/464), done. Receiving objects: 0% (1/712) Receiving objects: 1% (8/712) Receiving objects: 2% (15/712) Receiving objects: 3% (22/712) Receiving objects: 4% (29/712) Receiving objects: 5% (36/712) Receiving objects: 6% (43/712) Receiving objects: 7% (50/712) Receiving objects: 8% (57/712) Receiving objects: 9% (65/712) Receiving objects: 10% (72/712) Receiving objects: 11% (79/712) Receiving objects: 12% (86/712) Receiving objects: 13% (93/712) Receiving objects: 14% (100/712) Receiving objects: 15% (107/712) Receiving objects: 16% (114/712) Receiving objects: 17% (122/712) Receiving objects: 18% (129/712) Receiving objects: 19% (136/712) Receiving objects: 20% (143/712) Receiving objects: 21% (150/712) Receiving objects: 22% (157/712) Receiving objects: 23% (164/712) Receiving objects: 24% (171/712) Receiving objects: 25% (178/712) Receiving objects: 26% (186/712) Receiving objects: 27% (193/712) Receiving objects: 28% (200/712) Receiving objects: 29% (207/712) Receiving objects: 30% (214/712) Receiving objects: 31% (221/712) Receiving objects: 32% (228/712) Receiving objects: 33% (235/712) Receiving objects: 34% (243/712) Receiving objects: 35% (250/712) Receiving objects: 36% (257/712) Receiving objects: 37% (264/712) Receiving objects: 38% (271/712) Receiving objects: 39% (278/712) Receiving objects: 40% (285/712) Receiving objects: 41% (292/712) Receiving objects: 42% (300/712) Receiving objects: 43% (307/712) Receiving objects: 44% (314/712) Receiving objects: 45% (321/712) Receiving objects: 46% (328/712) Receiving objects: 47% (335/712) Receiving objects: 48% (342/712) Receiving objects: 49% (349/712) Receiving objects: 50% (356/712) Receiving objects: 51% (364/712) Receiving objects: 52% (371/712) Receiving objects: 53% (378/712) Receiving objects: 54% (385/712) Receiving objects: 55% (392/712) Receiving objects: 56% (399/712) Receiving objects: 57% (406/712) Receiving objects: 58% (413/712) Receiving objects: 59% (421/712) Receiving objects: 60% (428/712) Receiving objects: 61% (435/712) Receiving objects: 62% (442/712) Receiving objects: 63% (449/712) Receiving objects: 64% (456/712) Receiving objects: 65% (463/712) Receiving objects: 66% (470/712) Receiving objects: 67% (478/712) Receiving objects: 68% (485/712) Receiving objects: 69% (492/712) Receiving objects: 70% (499/712) Receiving objects: 71% (506/712) Receiving objects: 72% (513/712) Receiving objects: 73% (520/712) Receiving objects: 74% (527/712) Receiving objects: 75% (534/712) Receiving objects: 76% (542/712) Receiving objects: 77% (549/712) Receiving objects: 78% (556/712) Receiving objects: 79% (563/712) Receiving objects: 80% (570/712) Receiving objects: 81% (577/712) Receiving objects: 82% (584/712) Receiving objects: 83% (591/712) remote: Total 712 (delta 370), reused 462 (delta 217), pack-reused 0 Receiving objects: 84% (599/712) Receiving objects: 85% (606/712) Receiving objects: 86% (613/712) Receiving objects: 87% (620/712) Receiving objects: 88% (627/712) Receiving objects: 89% (634/712) Receiving objects: 90% (641/712) Receiving objects: 91% (648/712) Receiving objects: 92% (656/712) Receiving objects: 93% (663/712) Receiving objects: 94% (670/712) Receiving objects: 95% (677/712) Receiving objects: 96% (684/712) Receiving objects: 97% (691/712) Receiving objects: 98% (698/712) Receiving objects: 99% (705/712) Receiving objects: 100% (712/712) Receiving objects: 100% (712/712), 203.64 KiB | 988.00 KiB/s, done. Resolving deltas: 0% (0/370) Resolving deltas: 1% (4/370) Resolving deltas: 2% (9/370) Resolving deltas: 3% (12/370) Resolving deltas: 4% (15/370) Resolving deltas: 5% (19/370) Resolving deltas: 6% (23/370) Resolving deltas: 7% (26/370) Resolving deltas: 8% (30/370) Resolving deltas: 9% (34/370) Resolving deltas: 10% (37/370) Resolving deltas: 11% (41/370) Resolving deltas: 12% (45/370) Resolving deltas: 13% (49/370) Resolving deltas: 14% (52/370) Resolving deltas: 15% (56/370) Resolving deltas: 16% (60/370) Resolving deltas: 17% (63/370) Resolving deltas: 18% (67/370) Resolving deltas: 19% (71/370) Resolving deltas: 20% (74/370) Resolving deltas: 21% (78/370) Resolving deltas: 22% (82/370) Resolving deltas: 23% (86/370) Resolving deltas: 24% (89/370) Resolving deltas: 25% (93/370) Resolving deltas: 26% (97/370) Resolving deltas: 27% (100/370) Resolving deltas: 28% (104/370) Resolving deltas: 29% (108/370) Resolving deltas: 30% (111/370) Resolving deltas: 31% (115/370) Resolving deltas: 32% (119/370) Resolving deltas: 33% (123/370) Resolving deltas: 34% (126/370) Resolving deltas: 35% (131/370) Resolving deltas: 36% (134/370) Resolving deltas: 37% (137/370) Resolving deltas: 38% (141/370) Resolving deltas: 39% (145/370) Resolving deltas: 40% (148/370) Resolving deltas: 41% (152/370) Resolving deltas: 42% (156/370) Resolving deltas: 43% (160/370) Resolving deltas: 44% (163/370) Resolving deltas: 45% (167/370) Resolving deltas: 46% (171/370) Resolving deltas: 47% (174/370) Resolving deltas: 48% (178/370) Resolving deltas: 49% (183/370) Resolving deltas: 50% (185/370) Resolving deltas: 51% (189/370) Resolving deltas: 52% (193/370) Resolving deltas: 53% (197/370) Resolving deltas: 54% (200/370) Resolving deltas: 55% (204/370) Resolving deltas: 56% (208/370) Resolving deltas: 57% (211/370) Resolving deltas: 58% (215/370) Resolving deltas: 59% (219/370) Resolving deltas: 60% (222/370) Resolving deltas: 61% (226/370) Resolving deltas: 62% (230/370) Resolving deltas: 63% (234/370) Resolving deltas: 64% (237/370) Resolving deltas: 65% (241/370) Resolving deltas: 66% (245/370) Resolving deltas: 67% (248/370) Resolving deltas: 68% (252/370) Resolving deltas: 69% (256/370) Resolving deltas: 70% (259/370) Resolving deltas: 71% (263/370) Resolving deltas: 72% (267/370) Resolving deltas: 73% (271/370) Resolving deltas: 74% (274/370) Resolving deltas: 75% (278/370) Resolving deltas: 76% (282/370) Resolving deltas: 77% (285/370) Resolving deltas: 78% (289/370) Resolving deltas: 79% (293/370) Resolving deltas: 80% (296/370) Resolving deltas: 81% (300/370) Resolving deltas: 82% (304/370) Resolving deltas: 83% (308/370) Resolving deltas: 84% (311/370) Resolving deltas: 85% (316/370) Resolving deltas: 86% (319/370) Resolving deltas: 87% (322/370) Resolving deltas: 88% (326/370) Resolving deltas: 89% (330/370) Resolving deltas: 90% (333/370) Resolving deltas: 91% (337/370) Resolving deltas: 92% (341/370) Resolving deltas: 93% (345/370) Resolving deltas: 94% (348/370) Resolving deltas: 95% (352/370) Resolving deltas: 96% (356/370) Resolving deltas: 97% (359/370) Resolving deltas: 98% (363/370) Resolving deltas: 99% (367/370) Resolving deltas: 100% (370/370) Resolving deltas: 100% (370/370), done. HEAD is now at 50db40bc910b0f928e6b8eef36be90c493771584 nvm install Found '/home/semaphore/workos-node/.nvmrc' with version <14.21.3> Downloading and installing node v14.21.3... Downloading https://nodejs.org/dist/v14.21.3/node-v14.21.3-linux-x64.tar.xz... 0.1% ######################## 33.4% ######################################################### 80.3% ######################################################################## 100.0% Computing checksum with sha256sum Checksums matched! Now using node v14.21.3 (npm v6.14.18) nvm use Found '/home/semaphore/workos-node/.nvmrc' with version <14.21.3> Now using node v14.21.3 (npm v6.14.18) bash ~/workos-node/bin/restore-or-install HIT: 'node-modules-8bcf3785e9f3c1278ca0b89eb81d5f06', using key 'node-modules-8bcf3785e9f3c1278ca0b89eb81d5f06'. Downloading key 'node-modules-8bcf3785e9f3c1278ca0b89eb81d5f06'... Download complete. Duration: 196.141919ms. Size: 18.4M bytes. Unpacking '/tmp/node-modules-8bcf3785e9f3c1278ca0b89eb81d5f06-1895000160'... Unpack complete. Duration: 762.312646ms. Restored: ./node_modules/. yarn test yarn run v1.22.19 $ jest PASS src/user-management/user-management.spec.ts UserManagement getUser ✓ sends a Get User request (6 ms) listUsers ✓ lists users (2 ms) ✓ sends the correct params when filtering (1 ms) createUser ✓ sends a Create User request (1 ms) authenticateUserWithMagicAuth ✓ sends a magic auth authentication request (1 ms) authenticateUserWithPassword ✓ sends an password authentication request authenticateUserWithCode ✓ sends a token authentication request (5 ms) when the code is for an impersonator ✓ deserializes the impersonator metadata authenticateWithRefreshToken ✓ sends a refresh_token authentication request (1 ms) authenticateUserWithTotp ✓ sends a token authentication request (1 ms) authenticateUserWithEmailVerification ✓ sends an email verification authentication request (1 ms) authenticateWithOrganizationSelection ✓ sends an Organization Selection Authentication request (1 ms) sendVerificationEmail ✓ sends a Create Email Verification Challenge request (4 ms) verifyEmail ✓ sends a Complete Email Verification request sendMagicAuthCode ✓ sends a Send Magic Auth Code request (1 ms) sendPasswordResetEmail ✓ sends a Send Password Reset Email request (1 ms) resetPassword ✓ sends a Reset Password request updateUser ✓ sends a updateUser request (1 ms) when only one property is provided ✓ sends a updateUser request (1 ms) enrollAuthFactor ✓ sends an enrollAuthFactor request (1 ms) listAuthFactors ✓ sends a listAuthFactors request deleteUser ✓ sends a deleteUser request getOrganizationMembership ✓ sends a Get OrganizationMembership request (1 ms) listOrganizationMemberships ✓ lists organization memberships (1 ms) ✓ sends the correct params when filtering createOrganizationMembership ✓ sends a create organization membership request (1 ms) updateOrganizationMembership ✓ sends an update organization membership request (1 ms) deleteOrganizationMembership ✓ sends a deleteOrganizationMembership request getInvitation ✓ sends a Get Invitation request (1 ms) listInvitations ✓ lists invitations ✓ sends the correct params when filtering sendInvitation ✓ sends a Send Invitation request (3 ms) ✓ sends the correct params when provided revokeInvitation ✓ send a Revoke Invitation request (1 ms) revokeSession ✓ sends a Revoke Session request getAuthorizationUrl with no custom api hostname ✓ generates an authorize url with the default api hostname (2 ms) with no domain or provider ✓ throws an error for incomplete arguments with a provider ✓ generates an authorize url with the provider (1 ms) with a connectionId ✓ generates an authorize url with the connection with an organizationId ✓ generates an authorization URL with the organization (1 ms) with a custom api hostname ✓ generates an authorize url with the custom api hostname with state ✓ generates an authorize url with the provided state with domainHint ✓ generates an authorize url with the provided domain hint with loginHint ✓ generates an authorize url with the provided login hint getLogoutUrl ✓ returns a logout url (1 ms) getJwksUrl ✓ returns the jwks url ✓ throws an error if the clientId is blank (32 ms) PASS src/mfa/mfa.spec.ts MFA getFactor ✓ returns the requested factor (2 ms) deleteFactor ✓ sends request to delete a Factor (1 ms) enrollFactor with generic ✓ enrolls a factor with generic type with totp ✓ enrolls a factor with totp type with sms ✓ enrolls a factor with sms type (1 ms) when phone number is invalid ✓ throws an exception (10 ms) challengeFactor with no sms template ✓ challenge a factor with no sms template (1 ms) with sms template ✓ challenge a factor with sms template verifyChallenge verify with successful response ✓ verifies a successful factor when the challenge has been previously verified ✓ throws an exception (1 ms) when the challenge has expired ✓ throws an exception (1 ms) ✓ exception has code (1 ms) PASS src/directory-sync/directory-sync.spec.ts DirectorySync listDirectories with options ✓ requests Directories with query parameters (2 ms) getDirectory ✓ requests a Directory (1 ms) deleteDirectory ✓ sends a request to delete the directory getGroup ✓ requests a Directory Group (1 ms) listGroups with a Directory ✓ requests a Directory's Groups (1 ms) with a User ✓ requests a Directory's Groups (1 ms) listUsers with a Directory ✓ requests a Directory's Users (2 ms) with custom attributes ✓ returns the custom attributes, using the provided type (1 ms) with a Group ✓ requests a Directory's Users (7 ms) getUser ✓ requests a Directory User (1 ms) (node:4528) WorkOS: The `domain` parameter for `getAuthorizationURL` is deprecated. Please use `organization` instead. (Use `node --trace-warnings ...` to show where the warning was created) (node:4528) WorkOS: The `domain` parameter for `getAuthorizationURL` is deprecated. Please use `organization` instead. (node:4528) WorkOS: The `domain` parameter for `getAuthorizationURL` is deprecated. Please use `organization` instead. PASS src/sso/sso.spec.ts SSO SSO with options ✓ requests Connections with query parameters (2 ms) getAuthorizationUrl with no custom api hostname ✓ generates an authorize url with the default api hostname with no domain or provider ✓ throws an error for incomplete arguments with a provider ✓ generates an authorize url with the provider with a connection ✓ generates an authorize url with the connection (1 ms) with an `organization` ✓ generates an authorization URL with the organization with a custom api hostname ✓ generates an authorize url with the custom api hostname (1 ms) with state ✓ generates an authorize url with the provided state with domainHint ✓ generates an authorize url with the provided domain hint (1 ms) with loginHint ✓ generates an authorize url with the provided login hint getProfileAndToken with all information provided ✓ sends a request to the WorkOS api for a profile (2 ms) without a groups attribute ✓ sends a request to the WorkOS api for a profile (2 ms) getProfile ✓ calls the `/sso/profile` endpoint with the provided access token (1 ms) deleteConnection ✓ sends request to delete a Connection (1 ms) getConnection ✓ requests a Connection (1 ms) listConnections ✓ requests a list of Connections (5 ms) PASS src/audit-logs/audit-logs.spec.ts AuditLogs createEvent with an idempotency key ✓ includes an idempotency key with request (3 ms) when the api responds with a 200 ✓ returns void (1 ms) when the api responds with a 401 ✓ throws an UnauthorizedException (25 ms) when the api responds with a 400 ✓ throws an BadRequestException (1 ms) createExport when the api responds with a 201 ✓ returns `audit_log_export` (1 ms) when additional filters are defined ✓ returns `audit_log_export` (1 ms) when the api responds with a 401 ✓ throws an UnauthorizedException (1 ms) getExport when the api responds with a 201 ✓ returns `audit_log_export` (1 ms) when the api responds with a 401 ✓ throws an UnauthorizedException (1 ms) PASS src/organizations/organizations.spec.ts Organizations listOrganizations without any options ✓ returns organizations and metadata (1 ms) with the domain option ✓ forms the proper request to the API (1 ms) with the before option ✓ forms the proper request to the API (5 ms) with the after option ✓ forms the proper request to the API (4 ms) with the limit option ✓ forms the proper request to the API (1 ms) createOrganization with an idempotency key ✓ includes an idempotency key with request with a valid payload ✓ creates an organization (1 ms) with an invalid payload ✓ returns an error (10 ms) getOrganization ✓ requests an Organization (5 ms) deleteOrganization ✓ sends request to delete an Organization (1 ms) updateOrganization with a valid payload ✓ updates an organization (1 ms) PASS src/webhooks/webhooks.spec.ts Webhooks constructEvent with the correct payload, sig_header, and secret ✓ returns a webhook event (4 ms) with the correct payload, sig_header, secret, and tolerance ✓ returns a webhook event (1 ms) with an empty header ✓ raises an error (10 ms) with an empty signature hash ✓ raises an error (1 ms) with an incorrect signature hash ✓ raises an error with an incorrect payload ✓ raises an error with an incorrect webhook secret ✓ raises an error (1 ms) with a timestamp outside tolerance ✓ raises an error (1 ms) verifyHeader ✓ returns true when the signature is valid (1 ms) getTimestampAndSignatureHash ✓ returns the timestamp and signature when the signature is valid computeSignature ✓ returns the computed signature PASS src/workos.spec.ts WorkOS constructor when no API key is provided ✓ throws a NoApiKeyFoundException error (29 ms) when API key is provided with environment variable ✓ initializes (1 ms) when API key is provided with constructor ✓ initializes (1 ms) with https option ✓ sets baseURL (1 ms) with apiHostname option ✓ sets baseURL (1 ms) with port option ✓ sets baseURL when the `config` option is provided ✓ applies the configuration to the fetch client (1 ms) version ✓ matches the version in `package.json` (18 ms) post when the api responds with a 404 ✓ throws a NotFoundException (2 ms) ✓ preserves the error code, status, and message from the underlying response (1 ms) ✓ includes the path in the message if there is no message in the response (1 ms) when the api responds with a 500 and no error/error_description ✓ throws an GenericServerException (1 ms) when the api responds with a 400 and an error/error_description ✓ throws an OauthException when the entity is null ✓ sends a null body (1 ms) PASS src/portal/portal.spec.ts Portal generateLink with a valid organization with the sso intent ✓ returns an Admin Portal link (1 ms) with the domain_verification intent ✓ returns an Admin Portal link with the dsync intent ✓ returns an Admin Portal link (7 ms) with the `audit_logs` intent ✓ returns an Admin Portal link with the `log_streams` intent ✓ returns an Admin Portal link (1 ms) with an invalid organization ✓ throws an error (10 ms) PASS src/organization-domains/organization-domains.spec.ts OrganizationDomains get ✓ requests an Organization Domain (1 ms) ✓ requests an Organization Domain (1 ms) verify ✓ start Organization Domain verification flow (1 ms) create ✓ creates an Organization Domain (1 ms) PASS src/events/events.spec.ts Event listEvents ✓ requests Events (1 ms) ✓ requests Events with a valid event name (1 ms) with options ✓ requests Events with query parameters (1 ms) PASS src/passwordless/passwordless.spec.ts Passwordless createSession with valid options ✓ creates a passwordless session (1 ms) sendEmail with a valid session id ✓ sends a request to send a magic link email (1 ms) PASS src/directory-sync/utils/get-primary-email.spec.ts getPrimaryEmail ✓ returns primary email value (1 ms) Test Suites: 13 passed, 13 total Tests: 146 passed, 146 total Snapshots: 24 passed, 24 total Time: 7.649 s Ran all test suites. Done in 8.43s. Exporting environment variables Exporting SEMAPHORE_JOB_RESULT