2024-03-15 10:15:26 +00:00
import { IDHUB_WALLET , IDHUB_VERIFIER } from '../src/constants/env_constants' ;
2024-03-09 19:30:36 +00:00
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
2024-03-15 10:15:26 +00:00
await page . goto ( IDHUB_WALLET + '/login/' ) ;
2024-03-09 19:30:36 +00:00
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
2024-03-15 10:15:26 +00:00
await page . goto ( IDHUB_VERIFIER + '/promotion/' ) ;
2024-03-09 19:30:36 +00:00
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