WIP pilot tests: basic OIDC flow works

This commit is contained in:
pedro 2024-03-09 20:30:36 +01:00
parent eb4cf56178
commit fdfbd3746e
2 changed files with 86 additions and 1 deletions

View file

@ -2,6 +2,9 @@
export const ADMIN_EMAIL = "idhub_admin@pangea.org" export const ADMIN_EMAIL = "idhub_admin@pangea.org"
export const ADMIN_K = "1234" export const ADMIN_K = "1234"
export const KO_ADMIN_K = "876" export const KO_ADMIN_K = "876"
export const IDHUB_WALLET = process.env.IDHUB_WALLET || "https://idhub1-autotest.demo.pangea.org"
export const IDHUB_VERIFIER = process.env.IDHUB_VERIFIER || "https://idhub2-autotest.demo.pangea.org"
export const URL_IDHUB = "https://idhub1-autotest.demo.pangea.org" export const URL_IDHUB = "https://idhub1-autotest.demo.pangea.org"
//export const URL_IDHUB = "https://idhub-nightly.demo.pangea.org" //export const URL_IDHUB = "https://idhub-nightly.demo.pangea.org"
@ -15,4 +18,4 @@ export const USER_K = "1234"
export const KO_USER_K = "876" export const KO_USER_K = "876"
export const URL_PASS_RESET = URL_IDHUB + "/auth/password_reset/" export const URL_PASS_RESET = URL_IDHUB + "/auth/password_reset/"
export const URL_SCHEMAS = URL_IDHUB + "/admin/schemas/" export const URL_SCHEMAS = URL_IDHUB + "/admin/schemas/"

82
tests/pilot-tests.spec.ts Normal file
View file

@ -0,0 +1,82 @@
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