@clerk/testing
Version:
Utilities to help you create E2E test suites for apps using Clerk
2 lines • 1.64 kB
JavaScript
import{a as p,b as a}from"../chunk-XQ3MBH5Q.mjs";import{a as s}from"../chunk-YFUXUEZ5.mjs";import"../chunk-M5YIJ3SE.mjs";var c=async e=>{let{CLERK_FAPI:r,CLERK_TESTING_TOKEN:t}=await p(e);process.env.CLERK_FAPI=r,process.env.CLERK_TESTING_TOKEN=t};import{createClerkClient as w}from"@clerk/backend";var o=async({page:e})=>{await e.waitForFunction(()=>window.Clerk!==void 0),await e.waitForFunction(()=>window.Clerk.loaded)},C=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=w({secretKey:l});try{let i=await g.users.getUserList({emailAddress:[t]});if(!i.data||i.data.length===0)throw new Error(`No user found with email: ${t}`);let m=i.data[0],k=await g.signInTokens.createSignInToken({userId:m.id,expiresInSeconds:300});await n.evaluate(a,{signInParams:{strategy:"ticket",ticket:k.token}}),await n.waitForFunction(()=>window.Clerk?.user!==null)}catch(i){throw new Error(`Failed to sign in with email ${t}: ${i?.message}`)}}else{let{page:t,signInParams:n}=e;await t.evaluate(a,{signInParams:n})}},d=async({page:e,signOutOptions:r})=>{await o({page:e}),await e.evaluate(async t=>{await window.Clerk.signOut(t)},r)},P={signIn:C,signOut:d,loaded:o};export{P as clerk,c as clerkSetup,s as setupClerkTestingToken};
//# sourceMappingURL=index.mjs.map