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 3075 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: 729, done. remote: Counting objects: 0% (1/729) remote: Counting objects: 1% (8/729) remote: Counting objects: 2% (15/729) remote: Counting objects: 3% (22/729) remote: Counting objects: 4% (30/729) remote: Counting objects: 5% (37/729) remote: Counting objects: 6% (44/729) remote: Counting objects: 7% (52/729) remote: Counting objects: 8% (59/729) remote: Counting objects: 9% (66/729) remote: Counting objects: 10% (73/729) remote: Counting objects: 11% (81/729) remote: Counting objects: 12% (88/729) remote: Counting objects: 13% (95/729) remote: Counting objects: 14% (103/729) remote: Counting objects: 15% (110/729) remote: Counting objects: 16% (117/729) remote: Counting objects: 17% (124/729) remote: Counting objects: 18% (132/729) remote: Counting objects: 19% (139/729) remote: Counting objects: 20% (146/729) remote: Counting objects: 21% (154/729) remote: Counting objects: 22% (161/729) remote: Counting objects: 23% (168/729) remote: Counting objects: 24% (175/729) remote: Counting objects: 25% (183/729) remote: Counting objects: 26% (190/729) remote: Counting objects: 27% (197/729) remote: Counting objects: 28% (205/729) remote: Counting objects: 29% (212/729) remote: Counting objects: 30% (219/729) remote: Counting objects: 31% (226/729) remote: Counting objects: 32% (234/729) remote: Counting objects: 33% (241/729) remote: Counting objects: 34% (248/729) remote: Counting objects: 35% (256/729) remote: Counting objects: 36% (263/729) remote: Counting objects: 37% (270/729) remote: Counting objects: 38% (278/729) remote: Counting objects: 39% (285/729) remote: Counting objects: 40% (292/729) remote: Counting objects: 41% (299/729) remote: Counting objects: 42% (307/729) remote: Counting objects: 43% (314/729) remote: Counting objects: 44% (321/729) remote: Counting objects: 45% (329/729) remote: Counting objects: 46% (336/729) remote: Counting objects: 47% (343/729) remote: Counting objects: 48% (350/729) remote: Counting objects: 49% (358/729) remote: Counting objects: 50% (365/729) remote: Counting objects: 51% (372/729) remote: Counting objects: 52% (380/729) remote: Counting objects: 53% (387/729) remote: Counting objects: 54% (394/729) remote: Counting objects: 55% (401/729) remote: Counting objects: 56% (409/729) remote: Counting objects: 57% (416/729) remote: Counting objects: 58% (423/729) remote: Counting objects: 59% (431/729) remote: Counting objects: 60% (438/729) remote: Counting objects: 61% (445/729) remote: Counting objects: 62% (452/729) remote: Counting objects: 63% (460/729) remote: Counting objects: 64% (467/729) remote: Counting objects: 65% (474/729) remote: Counting objects: 66% (482/729) remote: Counting objects: 67% (489/729) remote: Counting objects: 68% (496/729) remote: Counting objects: 69% (504/729) remote: Counting objects: 70% (511/729) remote: Counting objects: 71% (518/729) remote: Counting objects: 72% (525/729) remote: Counting objects: 73% (533/729) remote: Counting objects: 74% (540/729) remote: Counting objects: 75% (547/729) remote: Counting objects: 76% (555/729) remote: Counting objects: 77% (562/729) remote: Counting objects: 78% (569/729) remote: Counting objects: 79% (576/729) remote: Counting objects: 80% (584/729) remote: Counting objects: 81% (591/729) remote: Counting objects: 82% (598/729) remote: Counting objects: 83% (606/729) remote: Counting objects: 84% (613/729) remote: Counting objects: 85% (620/729) remote: Counting objects: 86% (627/729) remote: Counting objects: 87% (635/729) remote: Counting objects: 88% (642/729) remote: Counting objects: 89% (649/729) remote: Counting objects: 90% (657/729) remote: Counting objects: 91% (664/729) remote: Counting objects: 92% (671/729) remote: Counting objects: 93% (678/729) remote: Counting objects: 94% (686/729) remote: Counting objects: 95% (693/729) remote: Counting objects: 96% (700/729) remote: Counting objects: 97% (708/729) remote: Counting objects: 98% (715/729) remote: Counting objects: 99% (722/729) remote: Counting objects: 100% (729/729) remote: Counting objects: 100% (729/729), done. remote: Compressing objects: 0% (1/463) remote: Compressing objects: 1% (5/463) remote: Compressing objects: 2% (10/463) remote: Compressing objects: 3% (14/463) remote: Compressing objects: 4% (19/463) remote: Compressing objects: 5% (24/463) remote: Compressing objects: 6% (28/463) remote: Compressing objects: 7% (33/463) remote: Compressing objects: 8% (38/463) remote: Compressing objects: 9% (42/463) remote: Compressing objects: 10% (47/463) remote: Compressing objects: 11% (51/463) remote: Compressing objects: 12% (56/463) remote: Compressing objects: 13% (61/463) remote: Compressing objects: 14% (65/463) remote: Compressing objects: 15% (70/463) remote: Compressing objects: 16% (75/463) remote: Compressing objects: 17% (79/463) remote: Compressing objects: 18% (84/463) remote: Compressing objects: 19% (88/463) remote: Compressing objects: 20% (93/463) remote: Compressing objects: 21% (98/463) remote: Compressing objects: 22% (102/463) remote: Compressing objects: 23% (107/463) remote: Compressing objects: 24% (112/463) remote: Compressing objects: 25% (116/463) remote: Compressing objects: 26% (121/463) remote: Compressing objects: 27% (126/463) remote: Compressing objects: 28% (130/463) remote: Compressing objects: 29% (135/463) remote: Compressing objects: 30% (139/463) remote: Compressing objects: 31% (144/463) remote: Compressing objects: 32% (149/463) remote: Compressing objects: 33% (153/463) remote: Compressing objects: 34% (158/463) remote: Compressing objects: 35% (163/463) remote: Compressing objects: 36% (167/463) remote: Compressing objects: 37% (172/463) remote: Compressing objects: 38% (176/463) remote: Compressing objects: 39% (181/463) remote: Compressing objects: 40% (186/463) remote: Compressing objects: 41% (190/463) remote: Compressing objects: 42% (195/463) remote: Compressing objects: 43% (200/463) remote: Compressing objects: 44% (204/463) remote: Compressing objects: 45% (209/463) remote: Compressing objects: 46% (213/463) remote: Compressing objects: 47% (218/463) remote: Compressing objects: 48% (223/463) remote: Compressing objects: 49% (227/463) remote: Compressing objects: 50% (232/463) remote: Compressing objects: 51% (237/463) remote: Compressing objects: 52% (241/463) remote: Compressing objects: 53% (246/463) remote: Compressing objects: 54% (251/463) remote: Compressing objects: 55% (255/463) remote: Compressing objects: 56% (260/463) remote: Compressing objects: 57% (264/463) remote: Compressing objects: 58% (269/463) remote: Compressing objects: 59% (274/463) remote: Compressing objects: 60% (278/463) remote: Compressing objects: 61% (283/463) remote: Compressing objects: 62% (288/463) remote: Compressing objects: 63% (292/463) remote: Compressing objects: 64% (297/463) remote: Compressing objects: 65% (301/463) remote: Compressing objects: 66% (306/463) remote: Compressing objects: 67% (311/463) remote: Compressing objects: 68% (315/463) remote: Compressing objects: 69% (320/463) remote: Compressing objects: 70% (325/463) remote: Compressing objects: 71% (329/463) remote: Compressing objects: 72% (334/463) remote: Compressing objects: 73% (338/463) remote: Compressing objects: 74% (343/463) remote: Compressing objects: 75% (348/463) remote: Compressing objects: 76% (352/463) remote: Compressing objects: 77% (357/463) remote: Compressing objects: 78% (362/463) remote: Compressing objects: 79% (366/463) remote: Compressing objects: 80% (371/463) remote: Compressing objects: 81% (376/463) remote: Compressing objects: 82% (380/463) remote: Compressing objects: 83% (385/463) remote: Compressing objects: 84% (389/463) remote: Compressing objects: 85% (394/463) remote: Compressing objects: 86% (399/463) remote: Compressing objects: 87% (403/463) remote: Compressing objects: 88% (408/463) remote: Compressing objects: 89% (413/463) remote: Compressing objects: 90% (417/463) remote: Compressing objects: 91% (422/463) remote: Compressing objects: 92% (426/463) remote: Compressing objects: 93% (431/463) remote: Compressing objects: 94% (436/463) remote: Compressing objects: 95% (440/463) remote: Compressing objects: 96% (445/463) remote: Compressing objects: 97% (450/463) remote: Compressing objects: 98% (454/463) remote: Compressing objects: 99% (459/463) remote: Compressing objects: 100% (463/463) remote: Compressing objects: 100% (463/463), done. Receiving objects: 0% (1/729) Receiving objects: 1% (8/729) Receiving objects: 2% (15/729) Receiving objects: 3% (22/729) Receiving objects: 4% (30/729) Receiving objects: 5% (37/729) Receiving objects: 6% (44/729) Receiving objects: 7% (52/729) Receiving objects: 8% (59/729) Receiving objects: 9% (66/729) Receiving objects: 10% (73/729) Receiving objects: 11% (81/729) Receiving objects: 12% (88/729) Receiving objects: 13% (95/729) Receiving objects: 14% (103/729) Receiving objects: 15% (110/729) Receiving objects: 16% (117/729) Receiving objects: 17% (124/729) Receiving objects: 18% (132/729) Receiving objects: 19% (139/729) Receiving objects: 20% (146/729) Receiving objects: 21% (154/729) Receiving objects: 22% (161/729) Receiving objects: 23% (168/729) Receiving objects: 24% (175/729) Receiving objects: 25% (183/729) Receiving objects: 26% (190/729) Receiving objects: 27% (197/729) Receiving objects: 28% (205/729) Receiving objects: 29% (212/729) Receiving objects: 30% (219/729) Receiving objects: 31% (226/729) Receiving objects: 32% (234/729) Receiving objects: 33% (241/729) Receiving objects: 34% (248/729) Receiving objects: 35% (256/729) Receiving objects: 36% (263/729) Receiving objects: 37% (270/729) Receiving objects: 38% (278/729) Receiving objects: 39% (285/729) Receiving objects: 40% (292/729) Receiving objects: 41% (299/729) Receiving objects: 42% (307/729) Receiving objects: 43% (314/729) Receiving objects: 44% (321/729) Receiving objects: 45% (329/729) Receiving objects: 46% (336/729) Receiving objects: 47% (343/729) Receiving objects: 48% (350/729) Receiving objects: 49% (358/729) Receiving objects: 50% (365/729) Receiving objects: 51% (372/729) Receiving objects: 52% (380/729) Receiving objects: 53% (387/729) Receiving objects: 54% (394/729) Receiving objects: 55% (401/729) Receiving objects: 56% (409/729) Receiving objects: 57% (416/729) Receiving objects: 58% (423/729) Receiving objects: 59% (431/729) Receiving objects: 60% (438/729) Receiving objects: 61% (445/729) Receiving objects: 62% (452/729) Receiving objects: 63% (460/729) Receiving objects: 64% (467/729) Receiving objects: 65% (474/729) Receiving objects: 66% (482/729) Receiving objects: 67% (489/729) Receiving objects: 68% (496/729) Receiving objects: 69% (504/729) Receiving objects: 70% (511/729) Receiving objects: 71% (518/729) Receiving objects: 72% (525/729) Receiving objects: 73% (533/729) Receiving objects: 74% (540/729) Receiving objects: 75% (547/729) Receiving objects: 76% (555/729) Receiving objects: 77% (562/729) Receiving objects: 78% (569/729) Receiving objects: 79% (576/729) Receiving objects: 80% (584/729) Receiving objects: 81% (591/729) Receiving objects: 82% (598/729) Receiving objects: 83% (606/729) remote: Total 729 (delta 387), reused 489 (delta 236), pack-reused 0 Receiving objects: 84% (613/729) Receiving objects: 85% (620/729) Receiving objects: 86% (627/729) Receiving objects: 87% (635/729) Receiving objects: 88% (642/729) Receiving objects: 89% (649/729) Receiving objects: 90% (657/729) Receiving objects: 91% (664/729) Receiving objects: 92% (671/729) Receiving objects: 93% (678/729) Receiving objects: 94% (686/729) Receiving objects: 95% (693/729) Receiving objects: 96% (700/729) Receiving objects: 97% (708/729) Receiving objects: 98% (715/729) Receiving objects: 99% (722/729) Receiving objects: 100% (729/729) Receiving objects: 100% (729/729), 204.80 KiB | 1.06 MiB/s, done. Resolving deltas: 0% (0/387) Resolving deltas: 1% (4/387) Resolving deltas: 2% (8/387) Resolving deltas: 3% (12/387) Resolving deltas: 4% (16/387) Resolving deltas: 5% (20/387) Resolving deltas: 6% (24/387) Resolving deltas: 7% (28/387) Resolving deltas: 8% (31/387) Resolving deltas: 9% (35/387) Resolving deltas: 10% (39/387) Resolving deltas: 11% (43/387) Resolving deltas: 12% (47/387) Resolving deltas: 13% (51/387) Resolving deltas: 14% (55/387) Resolving deltas: 15% (59/387) Resolving deltas: 16% (62/387) Resolving deltas: 17% (66/387) Resolving deltas: 18% (70/387) Resolving deltas: 19% (74/387) Resolving deltas: 20% (78/387) Resolving deltas: 21% (82/387) Resolving deltas: 22% (86/387) Resolving deltas: 23% (90/387) Resolving deltas: 24% (93/387) Resolving deltas: 25% (97/387) Resolving deltas: 26% (101/387) Resolving deltas: 27% (105/387) Resolving deltas: 28% (109/387) Resolving deltas: 29% (113/387) Resolving deltas: 30% (117/387) Resolving deltas: 31% (120/387) Resolving deltas: 32% (124/387) Resolving deltas: 33% (129/387) Resolving deltas: 34% (132/387) Resolving deltas: 35% (136/387) Resolving deltas: 36% (140/387) Resolving deltas: 37% (144/387) Resolving deltas: 38% (148/387) Resolving deltas: 39% (151/387) Resolving deltas: 40% (155/387) Resolving deltas: 41% (159/387) Resolving deltas: 42% (163/387) Resolving deltas: 43% (167/387) Resolving deltas: 44% (171/387) Resolving deltas: 45% (175/387) Resolving deltas: 46% (179/387) Resolving deltas: 47% (182/387) Resolving deltas: 48% (186/387) Resolving deltas: 49% (190/387) Resolving deltas: 50% (194/387) Resolving deltas: 51% (198/387) Resolving deltas: 52% (202/387) Resolving deltas: 53% (206/387) Resolving deltas: 54% (209/387) Resolving deltas: 55% (213/387) Resolving deltas: 56% (217/387) Resolving deltas: 57% (221/387) Resolving deltas: 58% (225/387) Resolving deltas: 59% (229/387) Resolving deltas: 60% (233/387) Resolving deltas: 61% (237/387) Resolving deltas: 62% (240/387) Resolving deltas: 63% (245/387) Resolving deltas: 64% (248/387) Resolving deltas: 65% (252/387) Resolving deltas: 66% (256/387) Resolving deltas: 67% (260/387) Resolving deltas: 68% (264/387) Resolving deltas: 69% (268/387) Resolving deltas: 70% (271/387) Resolving deltas: 71% (275/387) Resolving deltas: 72% (279/387) Resolving deltas: 73% (283/387) Resolving deltas: 74% (287/387) Resolving deltas: 75% (292/387) Resolving deltas: 76% (295/387) Resolving deltas: 77% (298/387) Resolving deltas: 78% (302/387) Resolving deltas: 79% (306/387) Resolving deltas: 80% (310/387) Resolving deltas: 81% (314/387) Resolving deltas: 82% (318/387) Resolving deltas: 83% (322/387) Resolving deltas: 84% (326/387) Resolving deltas: 85% (329/387) Resolving deltas: 86% (333/387) Resolving deltas: 87% (337/387) Resolving deltas: 88% (341/387) Resolving deltas: 89% (345/387) Resolving deltas: 90% (349/387) Resolving deltas: 91% (353/387) Resolving deltas: 92% (357/387) Resolving deltas: 93% (361/387) Resolving deltas: 94% (364/387) Resolving deltas: 95% (368/387) Resolving deltas: 96% (373/387) Resolving deltas: 97% (376/387) Resolving deltas: 98% (380/387) Resolving deltas: 99% (384/387) Resolving deltas: 100% (387/387) Resolving deltas: 100% (387/387), done. HEAD is now at 4377ab305553e9ee8d28f6efa641699f49716574 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.0% #################################################### 73.0% ######################################################################## 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: 173.860897ms. Size: 18.4M bytes. Unpacking '/tmp/node-modules-8bcf3785e9f3c1278ca0b89eb81d5f06-792259871'... Unpack complete. Duration: 454.596441ms. 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 (5 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 (1 ms) when the code is for an impersonator ✓ deserializes the impersonator metadata (1 ms) authenticateWithRefreshToken ✓ sends a refresh_token authentication request (1 ms) authenticateUserWithTotp ✓ sends a token authentication request (1 ms) authenticateUserWithEmailVerification ✓ sends an email verification authentication request authenticateWithOrganizationSelection ✓ sends an Organization Selection Authentication request (1 ms) sendVerificationEmail ✓ sends a Create Email Verification Challenge request (1 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 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 enrollAuthFactor ✓ sends an enrollAuthFactor request listAuthFactors ✓ sends a listAuthFactors request (1 ms) deleteUser ✓ sends a deleteUser request (1 ms) getOrganizationMembership ✓ sends a Get OrganizationMembership request listOrganizationMemberships ✓ lists organization memberships (1 ms) ✓ sends the correct params when filtering (1 ms) createOrganizationMembership ✓ sends a create organization membership request updateOrganizationMembership ✓ sends an update organization membership request (1 ms) deleteOrganizationMembership ✓ sends a deleteOrganizationMembership request getInvitation ✓ sends a Get Invitation request listInvitations ✓ lists invitations (1 ms) ✓ sends the correct params when filtering (2 ms) sendInvitation ✓ sends a Send Invitation request (9 ms) ✓ sends the correct params when provided (1 ms) revokeInvitation ✓ send a Revoke Invitation request revokeSession ✓ sends a Revoke Session request 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 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 (1 ms) 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 (28 ms) PASS src/mfa/mfa.spec.ts MFA getFactor ✓ returns the requested factor (1 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 (7 ms) challengeFactor with no sms template ✓ challenge a factor with no sms template (1 ms) with sms template ✓ challenge a factor with sms template (1 ms) verifyChallenge verify with successful response ✓ verifies a successful factor when the challenge has been previously verified ✓ throws an exception 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 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 (1 ms) getUser ✓ requests a Directory User (node:3786) WorkOS: The `domain` parameter for `getAuthorizationURL` is deprecated. Please use `organization` instead. (Use `node --trace-warnings ...` to show where the warning was created) (node:3786) WorkOS: The `domain` parameter for `getAuthorizationURL` is deprecated. Please use `organization` instead. (node:3786) 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 (1 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 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 with loginHint ✓ generates an authorize url with the provided login hint (1 ms) getProfileAndToken with all information provided ✓ sends a request to the WorkOS api for a profile (1 ms) without a groups attribute ✓ sends a request to the WorkOS api for a profile (5 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 (1 ms) PASS src/audit-logs/audit-logs.spec.ts AuditLogs createEvent with an idempotency key ✓ includes an idempotency key with request (2 ms) when the api responds with a 200 ✓ returns void when the api responds with a 401 ✓ throws an UnauthorizedException (13 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` 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 (2 ms) with the domain option ✓ forms the proper request to the API with the before option ✓ forms the proper request to the API 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 (1 ms) 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 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 (7 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 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 verifyHeader ✓ returns true when the signature is valid 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 (14 ms) when API key is provided with environment variable ✓ initializes 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 (1 ms) when the `config` option is provided ✓ applies the configuration to the fetch client (1 ms) version ✓ matches the version in `package.json` (12 ms) post when the api responds with a 404 ✓ throws a NotFoundException (8 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 when the api responds with a 400 and an error/error_description ✓ throws an OauthException (8 ms) 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 (1 ms) with the `audit_logs` intent ✓ returns an Admin Portal link (1 ms) with the `log_streams` intent ✓ returns an Admin Portal link with an invalid organization ✓ throws an error (9 ms) PASS src/organization-domains/organization-domains.spec.ts OrganizationDomains get ✓ requests an Organization Domain (1 ms) ✓ requests an Organization Domain verify ✓ start Organization Domain verification flow 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 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 Test Suites: 13 passed, 13 total Tests: 146 passed, 146 total Snapshots: 24 passed, 24 total Time: 5.378 s Ran all test suites. Done in 5.76s. Exporting environment variables Exporting SEMAPHORE_JOB_RESULT