@clerk/testing
Version:
Utilities to help you create E2E test suites for apps using Clerk
2 lines • 1.8 kB
JavaScript
import{a as p,b as k,c as i}from"../chunk-I4TOP4AO.mjs";import{a as s}from"../chunk-RFJIERBJ.mjs";import"../chunk-M5YIJ3SE.mjs";var C=async e=>{let{CLERK_FAPI:r,CLERK_TESTING_TOKEN:t}=await k(e);process.env.CLERK_FAPI=r,process.env.CLERK_TESTING_TOKEN=t};function w(e){return p({...e,apiUrl:e.apiUrl||process.env.CLERK_API_URL,secretKey:e.secretKey||process.env.CLERK_SECRET_KEY})}import{createClerkClient as P}from"@clerk/backend";var o=async({page:e})=>{await e.waitForFunction(()=>window.Clerk!==void 0),await e.waitForFunction(()=>window.Clerk.loaded)},d=async e=>{let r=e.page.context();if(!r)throw new Error("Page context is not available. Make sure the page is properly initialized.");if(await s({context:r,options:"setupClerkTestingTokenOptions"in e?e.setupClerkTestingTokenOptions:void 0}),await o({page:e.page}),"emailAddress"in e){let{emailAddress:t,page:n}=e,l=process.env.CLERK_SECRET_KEY;if(!l)throw new Error("CLERK_SECRET_KEY environment variable is required for email-based sign-in");let g=P({secretKey:l});try{let a=await g.users.getUserList({emailAddress:[t]});if(!a.data||a.data.length===0)throw new Error(`No user found with email: ${t}`);let m=a.data[0],c=await g.signInTokens.createSignInToken({userId:m.id,expiresInSeconds:300});await n.evaluate(i,{signInParams:{strategy:"ticket",ticket:c.token}}),await n.waitForFunction(()=>window.Clerk?.user!==null)}catch(a){throw new Error(`Failed to sign in with email ${t}: ${a?.message}`)}}else{let{page:t,signInParams:n}=e;await t.evaluate(i,{signInParams:n})}},u=async({page:e,signOutOptions:r})=>{await o({page:e}),await e.evaluate(async t=>{await window.Clerk.signOut(t)},r)},T={signIn:d,signOut:u,loaded:o};export{T as clerk,C as clerkSetup,w as createAgentTestingTask,s as setupClerkTestingToken};
//# sourceMappingURL=index.mjs.map