diff --git a/tests/test-pilots.spec.ts b/tests/test-pilots.spec.ts index 5d35e7f..d4751cc 100644 --- a/tests/test-pilots.spec.ts +++ b/tests/test-pilots.spec.ts @@ -40,7 +40,7 @@ async function set_org_key(page) { // useful for DEBUG // await page.pause(); -test('oidc_flow', async ({ page }) => { +async function oidc_flow(page) { await login(page); @@ -52,12 +52,16 @@ test('oidc_flow', async ({ page }) => { // 1. make it relative // 2. add file in e2e test directory (maybe already exists) // see ./vc_excel/financial-vulnerability.xlsx (visto, no es el mismo) + // TODO change hardcoded paths if (/setem/.test(hostname)) { vcred_schema='Membership Card' vcred_file='/home/music/trustchain-oc1-orchestral-docker/IdHub/examples/excel_examples/membership-card.xlsx' - } else { + } else if (/xo9b/.test(hostname)) { vcred_schema='Financial Vulnerability Credential' vcred_file='/home/music/trustchain-oc1-orchestral-docker/IdHub/examples/excel_examples/financial-vulnerability.xlsx' + } else if (/ereuse/.test(hostname)) { + vcred_schema='Product and waste electronics operator claim' + vcred_file='/home/music/trustchain-oc1-orchestral-docker/IdHub/examples/excel_examples/e-operator-claim.xlsx' } await set_org_key(page); @@ -92,18 +96,19 @@ test('oidc_flow', async ({ page }) => { await page.getByRole('button', { name: 'Save' }).click(); await page.getByRole('link', { name: 'Request a credential' }).click(); await page.getByRole('button', { name: 'Request' }).click(); - // TODO hardcoded domain VERIFIER - await page.goto(IDHUB_VERIFIER + '/promotion/'); - await page.getByRole('link', { name: 'Contractar amb credencial' }).click(); - await page.getByRole('button', { name: 'Go' }).click(); - await page.getByRole('radio').first().check(); - await page.getByRole('checkbox').check(); - await page.getByRole('button', { name: 'Present' }).click(); - await page.pause(); - // TODO averiguar si devuelve código es final 1 (OIDC_REDIRECT=false) + if (/xo9b/.test(hostname)) { + await page.goto(IDHUB_VERIFIER + '/promotion/'); + await page.getByRole('link', { name: 'Contractar amb credencial' }).click(); + await page.getByRole('button', { name: 'Go' }).click(); + await page.getByRole('radio').first().check(); + await page.getByRole('checkbox').check(); + await page.getByRole('button', { name: 'Present' }).click(); + } + + // TODO averiguar si devuelve código es final 1 (OIDC_REDIRECT=false) // TODO averiguar si hace redirección a 2 es final 2 (OIDC_REDIRECT=true) -}); +} // TODO test que hace la presentación de la credencial al revés @@ -178,7 +183,49 @@ test('sign_pdf', async ({ page }) => { await page.pause(); }); +test('oidc_flow', async ({ page }) => { + await oidc_flow(page); + await page.pause(); +}); + test('login', async ({ page }) => { await login(page); await page.pause(); }); + +test('ereuse_pilot', async ({ page }) => { + // TEMP reenable + await oidc_flow(page); + + // TODO hardcoded domain + await page.goto('https://devicehub.demo.pangea.org/'); + await page.getByPlaceholder('Email').fill('manufacturer@hp.es'); + await page.getByPlaceholder('Email').press('Tab'); + await page.getByPlaceholder('Password').fill('1234'); + await page.getByPlaceholder('Password').press('Enter'); + + await page.getByRole('button', { name: ' Snapshots' }).click(); + await page.getByRole('link', { name: ' Upload files' }).click(); + + // TODO hardcoded URL + await page.locator('#snapshot').setInputFiles('/home/music/org-extra/projects-2024/2024_17_tchain/2024-04-02__piloto-ereuse/snapshot-2022-6-9-10-21_usody@pangea.org_7928afeb-e6a4-464a-a842-0c3de0d01677.json'); + await page.getByRole('button', { name: 'Send' }).click(); + await page.getByRole('link', { name: ' Unassigned devices' }).click(); + + await page.getByRole('link', { name: ' Laptop hewlett-packard hp' }).click(); + await page.getByRole('button', { name: 'Digital Passports' }).click(); + + const page1Promise = page.waitForEvent('popup'); + await page.getByRole('link', { name: '169f2c6c0b60a529fce65ba619b2fa5ddc02207e0cbe8b7d64afe39bb247e02f:' }).click(); + const page1 = await page1Promise; + + await page1.getByRole('link', { name: 'Logout' }).click(); + await page1.getByRole('button', { name: 'Validate' }).click(); + await page1.getByRole('link', { name: 'Use a wallet' }).click(); + await page1.getByRole('button', { name: 'Go' }).click(); + await page1.getByRole('radio').check(); + await page1.getByRole('checkbox').check(); + await page1.getByRole('button', { name: 'Present' }).click(); + + await page.pause(); +});