149 lines
5.7 KiB
TypeScript
149 lines
5.7 KiB
TypeScript
import { test } from '@playwright/test';
|
|
import { loginAsAdmin, loginAsUser, testImportDataFile_SadPath, testImportDataFile_HappyPath, test_ViewAndCheckEnabledCredentialbyUser, test_RequestAndCheckIssuedCredentialByUser } from '../src/steps';
|
|
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, ALERT_FILE_TO_IMPORT_WITH_ALIEN_COLUMS, ALERT_FILE_TO_IMPORT_WITH_REQUIRED_COLUMS_EMPTY, FILE_TO_IMPORT_FVC, FILE_TO_IMPORT_FVC_EMPTY, FILE_TO_IMPORT_FVC_WITHOUT_REQUIRED_COLUMNS, FILE_TO_IMPORT_FVC_WITH_ALIEN_COLUMNS, FILE_TO_IMPORT_FVC_WITH_REQUIRED_EMPTY, JSON_SCHEMA_FVC, SCHEMA_FVC, SCHEMA_TYPE_FVC } from '../src/constants/constants';
|
|
|
|
/**
|
|
* Testing Admin->Data Section functionality with the Financial Vulnerability Credential (FVC)
|
|
*/
|
|
|
|
test.describe('ADMIN-> DATA -> Import FVC 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 FVC excel file - Happy Path', async ({ page }) => {
|
|
|
|
const fileToImport = FILE_TO_IMPORT_FVC;
|
|
const jsonSchema = JSON_SCHEMA_FVC;
|
|
const schema = SCHEMA_FVC;
|
|
|
|
await testImportDataFile_HappyPath(page, fileToImport, jsonSchema, schema);
|
|
|
|
});
|
|
|
|
/**
|
|
* Load 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 FVC excel file - Sad path (file well formatted but empty)', async ({ page }) => {
|
|
|
|
const fileToImport = FILE_TO_IMPORT_FVC_EMPTY;
|
|
const jsonSchema = JSON_SCHEMA_FVC;
|
|
const schema = SCHEMA_FVC;
|
|
const unsuccessAlertMessage = ALERT_FILE_TO_IMPORT_IS_EMPTY;
|
|
|
|
await testImportDataFile_SadPath(page, fileToImport, jsonSchema, schema, unsuccessAlertMessage);
|
|
|
|
});
|
|
|
|
/**
|
|
* Load an excel file - Sad Path:
|
|
* Try to load a bad formatted file, without required data.
|
|
*/
|
|
|
|
test('ADMIN-> DATA -> Import FVC excel file - Sad path (bad formatted file, without required columns)', async ({ page }) => {
|
|
const fileToImport = FILE_TO_IMPORT_FVC_WITHOUT_REQUIRED_COLUMNS;
|
|
const jsonSchema = JSON_SCHEMA_FVC;
|
|
const schema = SCHEMA_FVC;
|
|
const unsuccessAlertMessage = ALERT_FILE_TO_IMPORT_WITHOUT_REQUIRED_COLUMS;
|
|
|
|
await testImportDataFile_SadPath(page, fileToImport, jsonSchema, schema, unsuccessAlertMessage);
|
|
|
|
});
|
|
|
|
/**
|
|
* Load an excel file - Sad Path:
|
|
* Try to load a bad formatted file, with alien columns.
|
|
* Expected behavior: The error message: "line 2: Additional properties are not allowed ('alien1', 'alien2' were unexpected)"
|
|
*/
|
|
|
|
test('ADMIN-> DATA -> Import FVC excel file - Sad path (bad formatted file, with alien columns)', async ({ page }) => {
|
|
const fileToImport = FILE_TO_IMPORT_FVC_WITH_ALIEN_COLUMNS;
|
|
const jsonSchema = JSON_SCHEMA_FVC;
|
|
const schema = SCHEMA_FVC;
|
|
const unsuccessAlertMessage = ALERT_FILE_TO_IMPORT_WITH_ALIEN_COLUMS;
|
|
|
|
await testImportDataFile_SadPath(page, fileToImport, jsonSchema, schema, unsuccessAlertMessage);
|
|
|
|
});
|
|
|
|
/**
|
|
* Load an excel file - Sad Path:
|
|
* Try to load a file bad formatted, with alien columns.
|
|
* Expected behavior: The error message: "line 3: 'firstName' is a required property"
|
|
*/
|
|
|
|
test('ADMIN-> DATA -> Import FVC excel file - Sad path (file with required columns present but empty)', async ({ page }) => {
|
|
|
|
const fileToImport = FILE_TO_IMPORT_FVC_WITH_REQUIRED_EMPTY;
|
|
const jsonSchema = JSON_SCHEMA_FVC;
|
|
const schema = SCHEMA_FVC;
|
|
const unsuccessAlertMessage = ALERT_FILE_TO_IMPORT_WITH_REQUIRED_COLUMS_EMPTY;
|
|
|
|
await testImportDataFile_SadPath(page, fileToImport, jsonSchema, schema, unsuccessAlertMessage);
|
|
|
|
});
|
|
|
|
}) //end describe
|
|
|
|
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 FVC enabled Credential for user1', async ({ page }) => {
|
|
|
|
let schemaType = SCHEMA_TYPE_FVC;
|
|
let user = USER1_EMAIL;
|
|
|
|
await loginAsUser(page, user, URL_IDHUB);
|
|
await test_ViewAndCheckEnabledCredentialbyUser(page, schemaType, user);
|
|
|
|
});
|
|
|
|
test('USER -> My Credentials -> View FVC enabled Credential for user2', async ({ page }) => {
|
|
let schemaType = SCHEMA_TYPE_FVC;
|
|
let user = USER2_EMAIL;
|
|
|
|
await loginAsUser(page, user, URL_IDHUB);
|
|
await test_ViewAndCheckEnabledCredentialbyUser(page, schemaType, user);
|
|
|
|
});
|
|
|
|
test.fixme('USER -> My Credentials -> Request the issuance of a FVC for user3', async ({ page }) => {
|
|
|
|
let schemaType = SCHEMA_TYPE_FVC;
|
|
let user = USER3_EMAIL;
|
|
|
|
await loginAsUser(page, user, URL_IDHUB);
|
|
|
|
await test_RequestAndCheckIssuedCredentialByUser(page, schemaType, user);
|
|
|
|
});
|
|
})
|