import { test} from '@playwright/test' import { URL_IDHUB, USER1_EMAIL, USER2_EMAIL, USER3_EMAIL } from '../src/constants/env_constants'; import { ALERT_FILE_TO_IMPORT_IS_EMPTY, ALERT_FILE_TO_IMPORT_WITHOUT_REQUIRED_COLUMS_MC, ALERT_FILE_TO_IMPORT_WITH_ALIEN_COLUMS, ALERT_FILE_TO_IMPORT_WITH_REQUIRED_COLUMS_EMPTY, ENABLED_ST, FILE_TO_IMPORT_MC, FILE_TO_IMPORT_MC_2, FILE_TO_IMPORT_MC_EMPTY, FILE_TO_IMPORT_MC_WITHOUT_REQUIRED_COLUMNS, FILE_TO_IMPORT_MC_WITH_ALIEN_COLUMNS, FILE_TO_IMPORT_MC_WITH_REQUIRED_EMPTY, ISSUED_ST, JSON_SCHEMA_MC, SCHEMA_MC, SCHEMA_TYPE_MC } from '../src/constants/constants'; import { loginAsAdmin, loginAsUser, testImportDataFile_HappyPath, testImportDataFile_SadPath, test_RequestAndCheckIssuedCredentialByUser, test_ViewAndCheckEnabledCredentialbyUser } from '../src/steps.js'; /** * Testing Admin->Data Section functionality with the Membership Credential (MC) */ test.describe('ADMIN-> DATA -> Import MC excel files', () => { test.beforeEach(async ({ page }) => { await loginAsAdmin(page, URL_IDHUB); }) test.afterEach(async ({ page }) => { await page.click('.logout'); await page.close(); }) /** * Load an excel file - Happy Path * Expected behavior: * - the file is loaded, the message: "The file was imported successfully!" is displayed. * - the file appears in the imported files view. */ test('ADMIN-> DATA -> Import MC excel file - Happy Path', async ({ page }) => { const fileToImport = FILE_TO_IMPORT_MC; const jsonSchema = JSON_SCHEMA_MC; const schema = SCHEMA_MC; await testImportDataFile_HappyPath(page, fileToImport, jsonSchema, schema); }); /** * Load of an excel file - Sad Path: * Try to load a well-formatted excel file but without data. * Expected behavior: The error message: "The file you try to import is empty" */ test('ADMIN-> DATA -> Import MC excel file - Sad path (file well formatted but empty', async ({ page }) => { const fileToImport = FILE_TO_IMPORT_MC_EMPTY; const jsonSchema = JSON_SCHEMA_MC; const schema = SCHEMA_MC; const unsuccessAlertMessage = ALERT_FILE_TO_IMPORT_IS_EMPTY; await testImportDataFile_SadPath(page, fileToImport, jsonSchema, schema, unsuccessAlertMessage); }); test('ADMIN-> DATA -> Import MC excel file - Sad path (bad formatted file, without required columns', async ({ page }) => { const fileToImport = FILE_TO_IMPORT_MC_WITHOUT_REQUIRED_COLUMNS; const jsonSchema = JSON_SCHEMA_MC; const schema = SCHEMA_MC; const unsuccessAlertMessage = ALERT_FILE_TO_IMPORT_WITHOUT_REQUIRED_COLUMS_MC; await testImportDataFile_SadPath(page, fileToImport, jsonSchema, schema, unsuccessAlertMessage); }); test('ADMIN-> DATA -> Import MC excel file - Sad path (bad formatted file, with alien columns)', async ({ page }) => { const fileToImport = FILE_TO_IMPORT_MC_WITH_ALIEN_COLUMNS; const jsonSchema = JSON_SCHEMA_MC; const schema = SCHEMA_MC; const unsuccessAlertMessage = ALERT_FILE_TO_IMPORT_WITH_ALIEN_COLUMS; await testImportDataFile_SadPath(page, fileToImport, jsonSchema, schema, unsuccessAlertMessage); }); test('ADMIN-> DATA -> Import MC excel file - Sad path (file with required columns present but empty)', async ({ page }) => { const fileToImport = FILE_TO_IMPORT_MC_WITH_REQUIRED_EMPTY; const jsonSchema = JSON_SCHEMA_MC; const schema = SCHEMA_MC; const unsuccessAlertMessage = ALERT_FILE_TO_IMPORT_WITH_REQUIRED_COLUMS_EMPTY; await testImportDataFile_SadPath(page, fileToImport, jsonSchema, schema, unsuccessAlertMessage); }); }) test.describe('USER -> My Credentials - enable and issue credentials', () => { test.afterEach(async ({ page }) => { await page.click('.logout'); await page.close(); }) /** * PRE-CONDITIONS: the admin has enabled sucessfully a credential in the previous test (DATA -> Import data- HAPPY PATH has been passed sucessfully) * SUMMARY: * - Check if the user can visualize the credentials that has been enabled in "My Credentials" * - Check that the fields displayed in "View" Credential are the expected ones */ test('USER -> My Credentials -> View MC enabled Credential for user1', async ({ page }) => { let schemaType = SCHEMA_TYPE_MC; let user = USER1_EMAIL; await loginAsUser(page, user, URL_IDHUB); await test_ViewAndCheckEnabledCredentialbyUser(page, schemaType, user); }); test('USER -> My Credentials -> View MC enabled Credential for user3', async ({ page }) => { let schemaType = SCHEMA_TYPE_MC; let user = USER3_EMAIL; await loginAsUser(page, user, URL_IDHUB); await test_ViewAndCheckEnabledCredentialbyUser(page, schemaType, user); }); test.fixme('USER -> My Credentials -> Request the issuance of a MC for user3', async ({ page }) => { let schemaType = SCHEMA_TYPE_MC; let user = USER3_EMAIL; await loginAsUser(page, user, URL_IDHUB); await test_RequestAndCheckIssuedCredentialByUser(page, schemaType, user); }); })