import { test, expect } from '@playwright/test'; // TODO import domain WALLET y VERIFIER // TODO env var // optional page (decrypt) // src https://playwright.dev/docs/locators#matching-one-of-the-two-alternative-locators async function accept_data_protection(page) { // TODO cannot be, because of this inconsistency: Data Protection (user) vs Data protection (admin) //const data_protection = await page.getByRole('heading', { name: 'Data protection', exact: true }) const data_protection = await page.getByRole('heading', { name: 'Data protection' }) if (await data_protection.isVisible()) { await page.locator('#id_accept_privacy').check(); await page.locator('#id_accept_legal').check(); await page.locator('#id_accept_cookies').check(); await page.getByRole('link', { name: 'Confirm' }).click(); } } // useful for DEBUG // await page.pause(); test('test', async ({ page }) => { // TODO hardcoded domain WALLET await page.goto('http://localhost/login/'); await page.getByPlaceholder('Email address').click(); await page.getByPlaceholder('Email address').fill('idhub_admin@pangea.org'); await page.getByPlaceholder('Password').fill('1234'); await page.getByRole('button', { name: 'Log in' }).click(); //const encryption_key_page = page.getByText('Encryption Key') const encryption_key_page_admin = await page.getByRole('heading', { name: 'Encryption Key', exact: true }) if (await encryption_key_page_admin.isVisible()) { await page.getByPlaceholder('Key for encrypt the secrets').click(); await page.getByPlaceholder('Key for encrypt the secrets').fill('1234'); await page.getByRole('button', { name: 'Save' }).click(); } await accept_data_protection(page); await page.getByRole('link', { name: ' Data' }).click(); await page.getByRole('link', { name: 'Import data ' }).click(); // src https://playwright.dev/docs/input#select-options await page.getByLabel('Schema').selectOption('Financial Vulnerability Credential'); // src https://playwright.dev/docs/input#upload-files // TODO hardcoded URL await page.getByLabel('File to import').setInputFiles('/home/music/trustchain-oc1-orchestral-docker/IdHub/examples/excel_examples/financial-vulnerability.xlsx'); //await page.setInputFiles('input[type="file"]', '/home/music/trustchain-oc1-orchestral-docker/IdHub/examples/excel_examples/financial-vulnerability.xlsx'); await page.getByRole('button', { name: 'Save' }).click(); await page.getByRole('link', { name: '', exact: true }).click(); await page.getByPlaceholder('Email address').click(); await page.getByPlaceholder('Email address').fill('user1@example.org'); await page.getByPlaceholder('Password').click(); await page.getByPlaceholder('Password').fill('1234'); await page.getByRole('button', { name: 'Log in' }).click(); await accept_data_protection(page); await page.getByRole('link', { name: 'Identities (DIDs)' }).click(); await page.getByRole('link', { name: 'Add Identity ' }).click(); await page.getByPlaceholder('Label').click(); await page.getByPlaceholder('Label').fill('default'); await page.getByLabel('Type').selectOption('1'); 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('http://idhub2/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) // 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 // TODO test que hace la presentación de la credencial al revés