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 2961 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: 737, done. remote: Counting objects: 0% (1/737) remote: Counting objects: 1% (8/737) remote: Counting objects: 2% (15/737) remote: Counting objects: 3% (23/737) remote: Counting objects: 4% (30/737) remote: Counting objects: 5% (37/737) remote: Counting objects: 6% (45/737) remote: Counting objects: 7% (52/737) remote: Counting objects: 8% (59/737) remote: Counting objects: 9% (67/737) remote: Counting objects: 10% (74/737) remote: Counting objects: 11% (82/737) remote: Counting objects: 12% (89/737) remote: Counting objects: 13% (96/737) remote: Counting objects: 14% (104/737) remote: Counting objects: 15% (111/737) remote: Counting objects: 16% (118/737) remote: Counting objects: 17% (126/737) remote: Counting objects: 18% (133/737) remote: Counting objects: 19% (141/737) remote: Counting objects: 20% (148/737) remote: Counting objects: 21% (155/737) remote: Counting objects: 22% (163/737) remote: Counting objects: 23% (170/737) remote: Counting objects: 24% (177/737) remote: Counting objects: 25% (185/737) remote: Counting objects: 26% (192/737) remote: Counting objects: 27% (199/737) remote: Counting objects: 28% (207/737) remote: Counting objects: 29% (214/737) remote: Counting objects: 30% (222/737) remote: Counting objects: 31% (229/737) remote: Counting objects: 32% (236/737) remote: Counting objects: 33% (244/737) remote: Counting objects: 34% (251/737) remote: Counting objects: 35% (258/737) remote: Counting objects: 36% (266/737) remote: Counting objects: 37% (273/737) remote: Counting objects: 38% (281/737) remote: Counting objects: 39% (288/737) remote: Counting objects: 40% (295/737) remote: Counting objects: 41% (303/737) remote: Counting objects: 42% (310/737) remote: Counting objects: 43% (317/737) remote: Counting objects: 44% (325/737) remote: Counting objects: 45% (332/737) remote: Counting objects: 46% (340/737) remote: Counting objects: 47% (347/737) remote: Counting objects: 48% (354/737) remote: Counting objects: 49% (362/737) remote: Counting objects: 50% (369/737) remote: Counting objects: 51% (376/737) remote: Counting objects: 52% (384/737) remote: Counting objects: 53% (391/737) remote: Counting objects: 54% (398/737) remote: Counting objects: 55% (406/737) remote: Counting objects: 56% (413/737) remote: Counting objects: 57% (421/737) remote: Counting objects: 58% (428/737) remote: Counting objects: 59% (435/737) remote: Counting objects: 60% (443/737) remote: Counting objects: 61% (450/737) remote: Counting objects: 62% (457/737) remote: Counting objects: 63% (465/737) remote: Counting objects: 64% (472/737) remote: Counting objects: 65% (480/737) remote: Counting objects: 66% (487/737) remote: Counting objects: 67% (494/737) remote: Counting objects: 68% (502/737) remote: Counting objects: 69% (509/737) remote: Counting objects: 70% (516/737) remote: Counting objects: 71% (524/737) remote: Counting objects: 72% (531/737) remote: Counting objects: 73% (539/737) remote: Counting objects: 74% (546/737) remote: Counting objects: 75% (553/737) remote: Counting objects: 76% (561/737) remote: Counting objects: 77% (568/737) remote: Counting objects: 78% (575/737) remote: Counting objects: 79% (583/737) remote: Counting objects: 80% (590/737) remote: Counting objects: 81% (597/737) remote: Counting objects: 82% (605/737) remote: Counting objects: 83% (612/737) remote: Counting objects: 84% (620/737) remote: Counting objects: 85% (627/737) remote: Counting objects: 86% (634/737) remote: Counting objects: 87% (642/737) remote: Counting objects: 88% (649/737) remote: Counting objects: 89% (656/737) remote: Counting objects: 90% (664/737) remote: Counting objects: 91% (671/737) remote: Counting objects: 92% (679/737) remote: Counting objects: 93% (686/737) remote: Counting objects: 94% (693/737) remote: Counting objects: 95% (701/737) remote: Counting objects: 96% (708/737) remote: Counting objects: 97% (715/737) remote: Counting objects: 98% (723/737) remote: Counting objects: 99% (730/737) remote: Counting objects: 100% (737/737) remote: Counting objects: 100% (737/737), done. remote: Compressing objects: 0% (1/448) remote: Compressing objects: 1% (5/448) remote: Compressing objects: 2% (9/448) remote: Compressing objects: 3% (14/448) remote: Compressing objects: 4% (18/448) remote: Compressing objects: 5% (23/448) remote: Compressing objects: 6% (27/448) remote: Compressing objects: 7% (32/448) remote: Compressing objects: 8% (36/448) remote: Compressing objects: 9% (41/448) remote: Compressing objects: 10% (45/448) remote: Compressing objects: 11% (50/448) remote: Compressing objects: 12% (54/448) remote: Compressing objects: 13% (59/448) remote: Compressing objects: 14% (63/448) remote: Compressing objects: 15% (68/448) remote: Compressing objects: 16% (72/448) remote: Compressing objects: 17% (77/448) remote: Compressing objects: 18% (81/448) remote: Compressing objects: 19% (86/448) remote: Compressing objects: 20% (90/448) remote: Compressing objects: 21% (95/448) remote: Compressing objects: 22% (99/448) remote: Compressing objects: 23% (104/448) remote: Compressing objects: 24% (108/448) remote: Compressing objects: 25% (112/448) remote: Compressing objects: 26% (117/448) remote: Compressing objects: 27% (121/448) remote: Compressing objects: 28% (126/448) remote: Compressing objects: 29% (130/448) remote: Compressing objects: 30% (135/448) remote: Compressing objects: 31% (139/448) remote: Compressing objects: 32% (144/448) remote: Compressing objects: 33% (148/448) remote: Compressing objects: 34% (153/448) remote: Compressing objects: 35% (157/448) remote: Compressing objects: 36% (162/448) remote: Compressing objects: 37% (166/448) remote: Compressing objects: 38% (171/448) remote: Compressing objects: 39% (175/448) remote: Compressing objects: 40% (180/448) remote: Compressing objects: 41% (184/448) remote: Compressing objects: 42% (189/448) remote: Compressing objects: 43% (193/448) remote: Compressing objects: 44% (198/448) remote: Compressing objects: 45% (202/448) remote: Compressing objects: 46% (207/448) remote: Compressing objects: 47% (211/448) remote: Compressing objects: 48% (216/448) remote: Compressing objects: 49% (220/448) remote: Compressing objects: 50% (224/448) remote: Compressing objects: 51% (229/448) remote: Compressing objects: 52% (233/448) remote: Compressing objects: 53% (238/448) remote: Compressing objects: 54% (242/448) remote: Compressing objects: 55% (247/448) remote: Compressing objects: 56% (251/448) remote: Compressing objects: 57% (256/448) remote: Compressing objects: 58% (260/448) remote: Compressing objects: 59% (265/448) remote: Compressing objects: 60% (269/448) remote: Compressing objects: 61% (274/448) remote: Compressing objects: 62% (278/448) remote: Compressing objects: 63% (283/448) remote: Compressing objects: 64% (287/448) remote: Compressing objects: 65% (292/448) remote: Compressing objects: 66% (296/448) remote: Compressing objects: 67% (301/448) remote: Compressing objects: 68% (305/448) remote: Compressing objects: 69% (310/448) remote: Compressing objects: 70% (314/448) remote: Compressing objects: 71% (319/448) remote: Compressing objects: 72% (323/448) remote: Compressing objects: 73% (328/448) remote: Compressing objects: 74% (332/448) remote: Compressing objects: 75% (336/448) remote: Compressing objects: 76% (341/448) remote: Compressing objects: 77% (345/448) remote: Compressing objects: 78% (350/448) remote: Compressing objects: 79% (354/448) remote: Compressing objects: 80% (359/448) remote: Compressing objects: 81% (363/448) remote: Compressing objects: 82% (368/448) remote: Compressing objects: 83% (372/448) remote: Compressing objects: 84% (377/448) remote: Compressing objects: 85% (381/448) remote: Compressing objects: 86% (386/448) remote: Compressing objects: 87% (390/448) remote: Compressing objects: 88% (395/448) remote: Compressing objects: 89% (399/448) remote: Compressing objects: 90% (404/448) remote: Compressing objects: 91% (408/448) remote: Compressing objects: 92% (413/448) remote: Compressing objects: 93% (417/448) remote: Compressing objects: 94% (422/448) remote: Compressing objects: 95% (426/448) remote: Compressing objects: 96% (431/448) remote: Compressing objects: 97% (435/448) remote: Compressing objects: 98% (440/448) remote: Compressing objects: 99% (444/448) remote: Compressing objects: 100% (448/448) remote: Compressing objects: 100% (448/448), done. Receiving objects: 0% (1/737) Receiving objects: 1% (8/737) Receiving objects: 2% (15/737) Receiving objects: 3% (23/737) Receiving objects: 4% (30/737) Receiving objects: 5% (37/737) Receiving objects: 6% (45/737) Receiving objects: 7% (52/737) Receiving objects: 8% (59/737) Receiving objects: 9% (67/737) Receiving objects: 10% (74/737) Receiving objects: 11% (82/737) Receiving objects: 12% (89/737) Receiving objects: 13% (96/737) Receiving objects: 14% (104/737) Receiving objects: 15% (111/737) Receiving objects: 16% (118/737) Receiving objects: 17% (126/737) Receiving objects: 18% (133/737) Receiving objects: 19% (141/737) Receiving objects: 20% (148/737) Receiving objects: 21% (155/737) Receiving objects: 22% (163/737) Receiving objects: 23% (170/737) Receiving objects: 24% (177/737) Receiving objects: 25% (185/737) Receiving objects: 26% (192/737) Receiving objects: 27% (199/737) Receiving objects: 28% (207/737) Receiving objects: 29% (214/737) Receiving objects: 30% (222/737) Receiving objects: 31% (229/737) Receiving objects: 32% (236/737) Receiving objects: 33% (244/737) Receiving objects: 34% (251/737) Receiving objects: 35% (258/737) Receiving objects: 36% (266/737) Receiving objects: 37% (273/737) Receiving objects: 38% (281/737) Receiving objects: 39% (288/737) Receiving objects: 40% (295/737) Receiving objects: 41% (303/737) Receiving objects: 42% (310/737) Receiving objects: 43% (317/737) Receiving objects: 44% (325/737) Receiving objects: 45% (332/737) Receiving objects: 46% (340/737) Receiving objects: 47% (347/737) Receiving objects: 48% (354/737) Receiving objects: 49% (362/737) Receiving objects: 50% (369/737) Receiving objects: 51% (376/737) Receiving objects: 52% (384/737) Receiving objects: 53% (391/737) Receiving objects: 54% (398/737) Receiving objects: 55% (406/737) Receiving objects: 56% (413/737) Receiving objects: 57% (421/737) Receiving objects: 58% (428/737) Receiving objects: 59% (435/737) Receiving objects: 60% (443/737) Receiving objects: 61% (450/737) Receiving objects: 62% (457/737) Receiving objects: 63% (465/737) Receiving objects: 64% (472/737) Receiving objects: 65% (480/737) Receiving objects: 66% (487/737) Receiving objects: 67% (494/737) Receiving objects: 68% (502/737) Receiving objects: 69% (509/737) Receiving objects: 70% (516/737) Receiving objects: 71% (524/737) Receiving objects: 72% (531/737) Receiving objects: 73% (539/737) Receiving objects: 74% (546/737) Receiving objects: 75% (553/737) Receiving objects: 76% (561/737) Receiving objects: 77% (568/737) Receiving objects: 78% (575/737) Receiving objects: 79% (583/737) Receiving objects: 80% (590/737) Receiving objects: 81% (597/737) Receiving objects: 82% (605/737) Receiving objects: 83% (612/737) Receiving objects: 84% (620/737) Receiving objects: 85% (627/737) Receiving objects: 86% (634/737) Receiving objects: 87% (642/737) Receiving objects: 88% (649/737) Receiving objects: 89% (656/737) Receiving objects: 90% (664/737) Receiving objects: 91% (671/737) remote: Total 737 (delta 394), reused 514 (delta 261), pack-reused 0 Receiving objects: 92% (679/737) Receiving objects: 93% (686/737) Receiving objects: 94% (693/737) Receiving objects: 95% (701/737) Receiving objects: 96% (708/737) Receiving objects: 97% (715/737) Receiving objects: 98% (723/737) Receiving objects: 99% (730/737) Receiving objects: 100% (737/737) Receiving objects: 100% (737/737), 203.99 KiB | 815.00 KiB/s, done. Resolving deltas: 0% (0/394) Resolving deltas: 1% (4/394) Resolving deltas: 2% (8/394) Resolving deltas: 3% (13/394) Resolving deltas: 4% (16/394) Resolving deltas: 5% (20/394) Resolving deltas: 6% (24/394) Resolving deltas: 7% (29/394) Resolving deltas: 8% (32/394) Resolving deltas: 9% (36/394) Resolving deltas: 10% (40/394) Resolving deltas: 11% (44/394) Resolving deltas: 12% (48/394) Resolving deltas: 13% (52/394) Resolving deltas: 14% (56/394) Resolving deltas: 15% (60/394) Resolving deltas: 16% (64/394) Resolving deltas: 17% (67/394) Resolving deltas: 18% (71/394) Resolving deltas: 19% (75/394) Resolving deltas: 20% (79/394) Resolving deltas: 21% (83/394) Resolving deltas: 22% (87/394) Resolving deltas: 23% (91/394) Resolving deltas: 24% (95/394) Resolving deltas: 25% (99/394) Resolving deltas: 26% (103/394) Resolving deltas: 27% (107/394) Resolving deltas: 28% (111/394) Resolving deltas: 29% (115/394) Resolving deltas: 30% (119/394) Resolving deltas: 31% (123/394) Resolving deltas: 32% (127/394) Resolving deltas: 33% (131/394) Resolving deltas: 34% (134/394) Resolving deltas: 35% (139/394) Resolving deltas: 36% (142/394) Resolving deltas: 37% (147/394) Resolving deltas: 38% (150/394) Resolving deltas: 39% (154/394) Resolving deltas: 40% (158/394) Resolving deltas: 41% (162/394) Resolving deltas: 42% (166/394) Resolving deltas: 43% (170/394) Resolving deltas: 44% (175/394) Resolving deltas: 45% (178/394) Resolving deltas: 46% (182/394) Resolving deltas: 47% (186/394) Resolving deltas: 48% (190/394) Resolving deltas: 49% (194/394) Resolving deltas: 50% (198/394) Resolving deltas: 51% (201/394) Resolving deltas: 52% (205/394) Resolving deltas: 53% (209/394) Resolving deltas: 54% (213/394) Resolving deltas: 55% (217/394) Resolving deltas: 56% (221/394) Resolving deltas: 57% (225/394) Resolving deltas: 58% (229/394) Resolving deltas: 59% (233/394) Resolving deltas: 60% (237/394) Resolving deltas: 61% (241/394) Resolving deltas: 62% (245/394) Resolving deltas: 63% (249/394) Resolving deltas: 64% (253/394) Resolving deltas: 65% (257/394) Resolving deltas: 66% (261/394) Resolving deltas: 67% (264/394) Resolving deltas: 68% (268/394) Resolving deltas: 69% (272/394) Resolving deltas: 70% (276/394) Resolving deltas: 71% (281/394) Resolving deltas: 72% (284/394) Resolving deltas: 73% (288/394) Resolving deltas: 74% (292/394) Resolving deltas: 75% (296/394) Resolving deltas: 76% (300/394) Resolving deltas: 77% (304/394) Resolving deltas: 78% (308/394) Resolving deltas: 79% (312/394) Resolving deltas: 80% (316/394) Resolving deltas: 81% (320/394) Resolving deltas: 82% (324/394) Resolving deltas: 83% (328/394) Resolving deltas: 84% (331/394) Resolving deltas: 85% (336/394) Resolving deltas: 86% (339/394) Resolving deltas: 87% (343/394) Resolving deltas: 88% (347/394) Resolving deltas: 89% (351/394) Resolving deltas: 90% (355/394) Resolving deltas: 91% (360/394) Resolving deltas: 92% (363/394) Resolving deltas: 93% (367/394) Resolving deltas: 94% (371/394) Resolving deltas: 95% (375/394) Resolving deltas: 96% (379/394) Resolving deltas: 97% (383/394) Resolving deltas: 98% (387/394) Resolving deltas: 99% (391/394) Resolving deltas: 100% (394/394) Resolving deltas: 100% (394/394), done. HEAD is now at 2da050d01c95468cc31c7f0e66d1888fdbea28d6 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.3% ############################ 39.1% ############################################################ 84.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-8e92d25b8a09886cb1b89a844c1e64a8', using key 'node-modules-8e92d25b8a09886cb1b89a844c1e64a8'. Downloading key 'node-modules-8e92d25b8a09886cb1b89a844c1e64a8'... Download complete. Duration: 192.895343ms. Size: 19.7M bytes. Unpacking '/tmp/node-modules-8e92d25b8a09886cb1b89a844c1e64a8-3480175338'... Unpack complete. Duration: 632.625631ms. 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 (8 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 (1 ms) authenticateUserWithCode ✓ sends a token authentication request (1 ms) when the code is for an impersonator ✓ deserializes the impersonator metadata authenticateWithRefreshToken ✓ sends a refresh_token authentication request authenticateUserWithTotp ✓ sends a token authentication request 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 (5 ms) verifyEmail ✓ sends a Complete Email Verification request (1 ms) 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 (1 ms) 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 (2 ms) deleteUser ✓ sends a deleteUser request getOrganizationMembership ✓ sends a Get OrganizationMembership request listOrganizationMemberships ✓ lists organization memberships (4 ms) ✓ sends the correct params when filtering (1 ms) createOrganizationMembership ✓ sends a create organization membership request (1 ms) updateOrganizationMembership ✓ sends an update organization membership request deleteOrganizationMembership ✓ sends a deleteOrganizationMembership request getInvitation ✓ sends a Get Invitation request (1 ms) listInvitations ✓ lists invitations (1 ms) ✓ sends the correct params when filtering (1 ms) 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 (1 ms) 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 (1 ms) with a provider ✓ generates an authorize url with the provider with a connectionId ✓ generates an authorize url with the connection (1 ms) with an organizationId ✓ 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 (1 ms) getLogoutUrl ✓ returns a logout url getJwksUrl ✓ returns the jwks url (1 ms) ✓ throws an error if the clientId is blank (31 ms) PASS src/mfa/mfa.spec.ts MFA getFactor ✓ returns the requested factor (2 ms) deleteFactor ✓ sends request to delete a Factor enrollFactor with generic ✓ enrolls a factor with generic type with totp ✓ enrolls a factor with totp type (1 ms) with sms ✓ enrolls a factor with sms type (1 ms) when phone number is invalid ✓ throws an exception (7 ms) challengeFactor with no sms template ✓ challenge a factor with no sms template with sms template ✓ challenge a factor with sms template verifyChallenge verify with successful response ✓ verifies a successful factor (1 ms) 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 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 (1 ms) getGroup ✓ requests a Directory Group listGroups with a Directory ✓ requests a Directory's Groups with a User ✓ requests a Directory's Groups listUsers with a Directory ✓ requests a Directory's Users (1 ms) with custom attributes ✓ returns the custom attributes, using the provided type with a Group ✓ requests a Directory's Users (1 ms) getUser ✓ requests a Directory User (1 ms) (node:3709) WorkOS: The `domain` parameter for `getAuthorizationURL` is deprecated. Please use `organization` instead. (Use `node --trace-warnings ...` to show where the warning was created) (node:3709) WorkOS: The `domain` parameter for `getAuthorizationURL` is deprecated. Please use `organization` instead. (node:3709) 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 (1 ms) with no domain or provider ✓ throws an error for incomplete arguments (1 ms) 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 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 (3 ms) without a groups attribute ✓ sends a request to the WorkOS api for a profile (1 ms) getProfile ✓ calls the `/sso/profile` endpoint with the provided access token (1 ms) deleteConnection ✓ sends request to delete a Connection getConnection ✓ requests a Connection (1 ms) listConnections ✓ requests a list of Connections (12 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 (16 ms) when the api responds with a 400 ✓ throws an BadRequestException (2 ms) createExport when the api responds with a 201 ✓ returns `audit_log_export` (1 ms) when additional filters are defined ✓ returns `audit_log_export` 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 (7 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 (1 ms) with the after option ✓ forms the proper request to the API (1 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 with an invalid payload ✓ returns an error (8 ms) getOrganization ✓ requests an Organization (2 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 (3 ms) with the correct payload, sig_header, secret, and tolerance ✓ returns a webhook event (1 ms) with an empty header ✓ raises an error (11 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 (1 ms) 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 getTimestampAndSignatureHash ✓ returns the timestamp and signature when the signature is valid (1 ms) computeSignature ✓ returns the computed signature PASS src/workos.spec.ts WorkOS constructor when no API key is provided ✓ throws a NoApiKeyFoundException error (16 ms) when API key is provided with environment variable ✓ initializes (1 ms) when API key is provided with constructor ✓ initializes with https option ✓ sets baseURL (1 ms) with apiHostname option ✓ sets baseURL 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` (1 ms) post when the api responds with a 404 ✓ throws a NotFoundException (1 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 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 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 (1 ms) with the dsync intent ✓ returns an Admin Portal link 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 (8 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 (2 ms) PASS src/passwordless/passwordless.spec.ts Passwordless createSession with valid options ✓ creates a passwordless session (2 ms) sendEmail with a valid session id ✓ sends a request to send a magic link email 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: 6.342 s Ran all test suites. Done in 6.95s. Exporting environment variables Exporting SEMAPHORE_JOB_RESULT