Tengo el siguiente código Playwright-TS. Estoy pasando la identificación del correo electrónico dinámicamente al método de prueba y la quiero dentro de la página. Evaluar pero el correo electrónico: correo electrónico Id en el siguiente código falla como indefinido.
apiData = { name: faker.name.firstName(), domain: process.env['DOMAIN'], }; async tester(page: Page, emailId: string) { await page.evaluate((apiData) => { const authentication = { userId: window.localStorage.getItem('userId') }; const data = { email:emailId }; fetch(`${apiData.domain}/api/v1/user`, { method: 'POST', headers: { 'content-type': 'application/json', cookie: authentication.allCookies, }, body: JSON.stringify(data), }) .then(response => response.json()) .then(myJson => { newUserId = JSON.stringify(myJson.data.id).replace(/\"/g, ""); },this.apiData); }Intenté pasarlo como:
await page.evaluate(([apiData, emailReceived] => { },[this.apiData, emailId]);Pero luego los valores de apiData arrojan un error: la propiedad 'dominio' no existe en el tipo 'cadena'.
Probé otras soluciones, pero ninguna parece funcionar para mí. ¿Cómo puedo implementar esto?
Puede agregar el ID de apiData emailId
await page.evaluate(([apiData, emailReceived] => { }, { ...this.apiData, emailId }); Y luego podrá usar apiData.emailId dentro de la función que está evaluando.