2330 lines
152 KiB
TypeScript
2330 lines
152 KiB
TypeScript
//npx playwright test tests/opt.spec.ts
|
||
//npx playwright test tests/opt.spec.ts --headed
|
||
//npx playwright test tests/opt.spec.ts --debug
|
||
//allure serve allure-results
|
||
|
||
import { Page, test, expect } from '@playwright/test';
|
||
|
||
// Réutilisation de la session
|
||
|
||
let finess = '640780417';
|
||
|
||
test.describe('Module T2A', () => {
|
||
|
||
test.beforeEach(async ({ page }) => {
|
||
await page.goto('http://localhost:8090/amadeaweb/AIVA_T2A_PREPROD');
|
||
await page.locator('input[class="ISTxtFld IS_LoginInput"]').fill('JENKINS');
|
||
await page.locator('input[class="ISPwdFld IS_PasswordInput"]').fill('JENKINSES');
|
||
await page.locator('a[class="IS_button IS_SubmitButton"]').click();
|
||
await page.getByText('Vos contrôles').waitFor({ state: 'visible', timeout: 20000 });
|
||
});
|
||
|
||
test.describe('I) Initialisation', () => {
|
||
test.describe('1- Vos contrôles', () => {
|
||
test('a) Nouveau contrôle', async ({ page }) => {
|
||
await page.getByTitle('Nouveau contrôle').nth(1).click();
|
||
await expect.soft(page.getByText('Nouveau Contrôle', { exact: true })).toBeVisible();
|
||
await expect.soft(page.getByText('Vous pouvez initier un nouveau contrôle dès la réception du premier courrier d’information. Pour cela, vous aurez besoin des fichiers PMSI')).toBeVisible();
|
||
await page.getByText('Démarrer').click();
|
||
// Etape 1
|
||
await expect(page.getByText('Etape 1 - Documenter le contrôle')).toBeVisible();
|
||
await expect.soft(page.getByRole('combobox', { name: 'Saisir un finess ou un nom d' })).toBeVisible();
|
||
await page.getByRole('combobox', { name: 'Saisir un finess ou un nom d' }).fill("0");
|
||
await expect.soft(page.getByRole('option', { name: '640780417 - CENTRE' })).toBeVisible();
|
||
await page.getByRole('option', { name: '640780417 - CENTRE' }).click();
|
||
await page.getByRole('row', { name: '*Année des dossiers contrôlés', exact: true }).getByRole('spinbutton').fill('2024');
|
||
await page.waitForTimeout(1000);
|
||
await page.getByRole('row', { name: '*Nom du Médecin Dim', exact: true }).getByRole('textbox').fill('JENKINS');
|
||
await page.getByRole('row', { name: '*Nom du Médecin Dim', exact: true }).getByRole('textbox').fill('JENKINS');
|
||
await page.waitForTimeout(1000);
|
||
await page.getByRole('row', { name: '*Nombre de champs contrôlés', exact: true }).getByRole('spinbutton').fill('3');
|
||
await page.waitForTimeout(1000);
|
||
await page.getByRole('row', { name: '*Nombre de champs contrôlés', exact: true }).getByRole('spinbutton').fill('3');
|
||
|
||
await page.getByText('ETAPE SUIVANTE').click();
|
||
await expect.soft(page.getByText('Les informations préfixées d\'')).toBeVisible();
|
||
await page.locator('label[is_id="0/sanctionable"] input').click();
|
||
await expect.soft(page.locator('label[is_id="0/sanctionable"] input')).toBeChecked();
|
||
await page.waitForTimeout(500);
|
||
await page.locator('label[is_id="0/CMA"] input').click();
|
||
await expect.soft(page.locator('label[is_id="0/CMA"] input')).toBeChecked();
|
||
await page.waitForTimeout(500);
|
||
await page.locator('label[is_id="0/P_HDJ"] input').click();
|
||
await expect.soft(page.locator('label[is_id="0/P_HDJ"] input')).toBeChecked();
|
||
await page.waitForTimeout(500);
|
||
await page.locator('label[is_id="0/P_UHCD"] input').click();
|
||
await expect.soft(page.locator('label[is_id="0/P_UHCD"] input')).toBeChecked();
|
||
await page.waitForTimeout(500);
|
||
await page.locator('label[is_id="0/AUTRE"] input').click();
|
||
await expect.soft(page.locator('label[is_id="0/AUTRE"] input')).toBeChecked();
|
||
await page.waitForTimeout(500);
|
||
await page.locator('label[is_id="0/S_CONTIGUS"] input').click();
|
||
await expect.soft(page.locator('label[is_id="0/S_CONTIGUS"] input')).toBeChecked();
|
||
await page.waitForTimeout(500);
|
||
await page.locator('label[is_id="0/R_GHM"] input').click();
|
||
await expect.soft(page.locator('label[is_id="0/R_GHM"] input')).toBeChecked();
|
||
await page.waitForTimeout(500);
|
||
await page.locator('label[is_id="0/S_NONFACT_AM"] input').click();
|
||
await expect.soft(page.locator('label[is_id="0/S_NONFACT_AM"] input')).toBeChecked();
|
||
await page.waitForTimeout(500);
|
||
await page.locator('label[is_id="0/DP_CCAM"] input').click();
|
||
await expect.soft(page.locator('label[is_id="0/DP_CCAM"] input')).toBeChecked();
|
||
await page.waitForTimeout(500);
|
||
await page.locator('label[is_id="0/PIE"] input').click();
|
||
await expect.soft(page.locator('label[is_id="0/PIE"] input')).toBeChecked();
|
||
await page.waitForTimeout(500);
|
||
await page.locator('label[is_id="1/sanctionable"] input').click();
|
||
await expect.soft(page.locator('label[is_id="1/sanctionable"] input')).toBeChecked();
|
||
await page.waitForTimeout(500);
|
||
await page.locator('label[is_id="2/sanctionable"] input').click();
|
||
await expect.soft(page.locator('label[is_id="2/sanctionable"] input')).toBeChecked();
|
||
|
||
await page.getByText('ETAPE SUIVANTE').click();
|
||
|
||
await expect(page.getByText('Etape 2 - Centraliser les')).toBeVisible();
|
||
await expect.soft(page.getByText('Télécharger des documents PDF')).toBeVisible();
|
||
await expect.soft(page.getByRole('textbox', { name: 'Document à télécharger' })).toBeVisible();
|
||
await page.getByRole('textbox', { name: 'Document à télécharger' }).click();
|
||
await expect.soft(page.getByRole('cell', { name: 'AVANT-Courrier Annonce du' })).toBeVisible();
|
||
await page.getByRole('cell', { name: 'AVANT-Courrier Annonce du' }).click();
|
||
await expect.soft(page.getByRole('button', { name: 'Choose File' })).toBeVisible();
|
||
const [fileChooser] = await Promise.all([
|
||
page.waitForEvent('filechooser'),
|
||
page.getByRole('button', { name: 'Choose File' }).click()
|
||
]);
|
||
//await fileChooser.setFiles('tests/testfiles/sample.pdf'); // A compléter
|
||
|
||
await page.getByText('ETAPE SUIVANTE').click();
|
||
|
||
await expect(page.getByText('Etape 3- Importer les')).toBeVisible();
|
||
await expect.soft(page.getByText('Télécharger les fichiers à traiter')).toBeVisible();
|
||
await expect(page.getByRole('textbox', { name: 'Type de fichier à télécharger' })).toBeVisible();
|
||
await page.getByRole('textbox', { name: 'Type de fichier à télécharger' }).click();
|
||
await expect.soft(page.getByRole('cell', { name: 'Fichier DRUIDES' })).toBeVisible();
|
||
await page.getByRole('cell', { name: 'Fichier DRUIDES' }).click();
|
||
await expect.soft(page.getByRole('button', { name: 'Choose File' })).toBeVisible();
|
||
const [fileChooser3] = await Promise.all([
|
||
page.waitForEvent('filechooser'),
|
||
page.getByRole('button', { name: 'Choose File' }).click()
|
||
]);
|
||
//await fileChooser3.setFiles('tests/testfiles/sample.pdf'); // A compléter
|
||
|
||
await page.getByText('ETAPE SUIVANTE').click();
|
||
|
||
await expect.soft(page.getByRole('cell', { name: 'Il n\'y a aucun fichier à' })).toBeVisible();
|
||
await page.getByText('OK').click();
|
||
|
||
await page.locator('i.fa.fa-close').click();
|
||
|
||
await page.getByTitle('Ouvrir un contrôle').click();
|
||
//await page.getByRole('row', { name: ' 330000662 - INSTITUT' }).locator('a').nth(2).click();
|
||
await page.locator('i.fa.fa-trash').first().click();
|
||
await expect.soft(page.getByRole('heading', { name: 'SUPPRESSION' })).toBeVisible();
|
||
await page.getByText('OK').click();
|
||
//await expect.soft(page.getByRole('heading', { name: 'CONFIRMER' })).toBeVisible();
|
||
//await page.getByText('Oui').click();
|
||
//await page.getByRole('option', { name: '640780417 - CENTRE' }).waitFor({ state: 'hidden' });
|
||
});
|
||
|
||
test('b) Modifier les informations du contrôle', async ({ page }) => {
|
||
await page.getByTitle('Modifier des informations sur le contrôle').last().click();
|
||
await expect(page.getByText(`Editer Contrôle 1 - ${finess} - CENTRE MEDICO-PSYCHOLOGIQUE 2023`)).toBeVisible();
|
||
// Etape 1
|
||
await expect(page.getByText(`Etape 1 - Documenter le contrôle N° 1 - ${finess}`)).toBeVisible();
|
||
|
||
await expect.soft(page.getByText('*Finess')).toBeVisible();
|
||
await expect.soft(page.getByPlaceholder('Saisir un finess ou un nom d\'établissement e')).toHaveValue(`${finess} - CENTRE HOSPITALIER DE LA COTE BASQUE`);
|
||
await expect.soft(page.getByText('*Année des dossiers contrôlés')).toBeVisible();
|
||
await expect.soft(page.locator('input[is_id="0/annee"]')).toHaveValue('2023');
|
||
await expect.soft(page.getByText('*Nom du Médecin Dim')).toBeVisible();
|
||
await expect.soft(page.locator('input[is_id="0/md"]')).toHaveValue('Amina ETTORCHI');
|
||
await expect.soft(page.getByText('*Nombre de champs contrôlés')).toBeVisible();
|
||
await expect.soft(page.locator('input[is_id="0/nb_champs_controles"]')).toHaveValue('5');
|
||
|
||
// Etape 2
|
||
await page.getByText('ETAPE SUIVANTE').click();
|
||
await expect(page.getByText('Etape 2 - Centraliser les documents reçus')).toBeVisible();
|
||
await expect(page.getByText('Télécharger des documents PDF')).toBeVisible();
|
||
await expect(page.getByRole('textbox', { name: 'Document à télécharger' })).toBeVisible();
|
||
|
||
// Retour Etape 1
|
||
await page.getByText('ETAPE PRÉCÉDENTE').click();
|
||
await expect(page.getByText(`Etape 1 - Documenter le contrôle N° 1 - ${finess}`)).toBeVisible();
|
||
|
||
// Etape 3
|
||
await page.getByText('ETAPE SUIVANTE').click();
|
||
await page.getByText('Etape 2 - Centraliser les documents reçus').waitFor({ state: 'visible'});
|
||
await page.getByText('ETAPE SUIVANTE').click();
|
||
await expect(page.getByText('Etape 3- Importer les fichiers DRUIDES à traiter')).toBeVisible();
|
||
await expect.soft(page.getByText('Télécharger les fichiers à traiter')).toBeVisible();
|
||
await expect.soft(page.getByRole('textbox', { name: 'Type de fichier à télécharger' })).toBeVisible();
|
||
|
||
// Retour Etape 2
|
||
await page.getByText('ETAPE PRÉCÉDENTE').click();
|
||
await expect(page.getByText('Etape 2 - Centraliser les documents reçus')).toBeVisible();
|
||
|
||
// Etape 4
|
||
await page.getByText('ETAPE SUIVANTE').click();
|
||
await page.getByText('Etape 3- Importer les fichiers DRUIDES à traiter').waitFor({ state: 'visible'});
|
||
await page.getByText('ETAPE SUIVANTE').click();
|
||
await expect(page.getByRole('cell', { name: 'Il n\'y a aucun fichier à traiter' })).toBeVisible();
|
||
await page.getByText('OK').click();
|
||
|
||
// Quiter
|
||
await page.locator('i.fa.fa-close').first().click();
|
||
await page.getByText('Vos contrôles').waitFor({ state: 'visible' });
|
||
|
||
});
|
||
test('c) Ouvrir un contrôle', async ({ page }) => {
|
||
// Informations du contrôle
|
||
const nomEtablissement = await page.getByTitle('Ouvrir 0').textContent();
|
||
const nomEtab = nomEtablissement?.split(' - ').pop()?.trim();
|
||
const annee = "2023"; //await page.locator('span[is_id="1/annee"]').textContent();
|
||
const nbChamps = "5"; //await page.locator('span[is_id="1/nb_champs_controles"]').textContent();
|
||
const phaseDuControle = 'GERER l\'après contrôle';
|
||
|
||
// Clic sur l'icone dossier
|
||
//await expect(page.getByTitle('Ouvrir 0').first()).toBeVisible();
|
||
//await page.getByTitle('Ouvrir 0').first().click();
|
||
|
||
await expect(page.locator('a[is_id="2/Voir"]').last()).toBeVisible();
|
||
await page.locator('a[is_id="2/Voir"]').last().click();
|
||
|
||
//Première arrivée
|
||
const titre = `Contrôle ${nomEtab} ${annee}${nbChamps} Champs contrôlés`;
|
||
await expect(page.getByText(titre)).toBeVisible();
|
||
await expect(page.locator('li.active span')).toHaveText(`${phaseDuControle}`);
|
||
|
||
});
|
||
});
|
||
test.describe('2- Menu', () => {
|
||
|
||
test.beforeEach(async ({ page }) => {
|
||
// Clic sur l'icone dossier
|
||
const nomEtablissement = await page.getByTitle('Ouvrir 0').textContent();
|
||
const nomEtab = nomEtablissement?.split(' - ').pop()?.trim();
|
||
const annee = "2023"; //await page.locator('span[is_id="1/annee"]').textContent();
|
||
const nbChamps = "5"; //await page.locator('span[is_id="1/nb_champs_controles"]').textContent();
|
||
const phaseDuControle = 'GERER l\'après contrôle';
|
||
|
||
// Clic sur l'icone dossier
|
||
//await expect(page.getByTitle('Ouvrir 0').first()).toBeVisible();
|
||
//await page.getByTitle('Ouvrir 0').first().click();
|
||
|
||
await expect(page.locator('a[is_id*="/Voir"]').last()).toBeVisible();
|
||
await page.locator('a[is_id*="/Voir"]').last().click();
|
||
|
||
//Première arrivée
|
||
const titre = `Contrôle ${nomEtab} ${annee}${nbChamps} Champs contrôlés`;
|
||
await page.getByText(titre).waitFor({ state: 'visible', timeout: 20000 });
|
||
await page.getByText(`${phaseDuControle}`).waitFor({ state: 'visible'});
|
||
});
|
||
|
||
test.describe('a) Rapports', () => {
|
||
test('i) Initialiser le contrôle', async ({ page }) => {
|
||
|
||
await page.getByText('INITIER LE CONTRÔLE', { exact: true }).click();
|
||
await page.locator('h3.t').waitFor({ state: 'visible'});
|
||
//await expect(page.locator('h3.t')).toHaveText('Rapports');
|
||
await expect.soft(page.getByText('RSS Candidats- Evaluation PMSI -')).toBeVisible();
|
||
|
||
await expect.soft(page.locator('li.active span').nth(1)).toHaveText('Indicateurs clés');
|
||
// Analyses
|
||
await page.locator('a').filter({ hasText: 'Analyses' }).click();
|
||
await expect(page.getByText('Valorisation des dossiers potentiels')).toBeVisible();
|
||
// Tableau avec tout les champs
|
||
await expect.soft(page.getByText('Champ 1')).toBeVisible();
|
||
await expect.soft(page.getByText('Champ 2')).toBeVisible();
|
||
await expect.soft(page.getByText('Champ 3')).toBeVisible();
|
||
await expect.soft(page.getByText('Champ 4')).toBeVisible();
|
||
await expect.soft(page.getByText('Champ 5')).toBeVisible();
|
||
|
||
// const total = Number(await page.locator('span[is_id="0/Nb"]').textContent()) + Number(await page.locator('span[is_id="1/Nb"]').textContent()) + Number(await page.locator('span[is_id="2/Nb"]').textContent())
|
||
// + Number(await page.locator('span[is_id="3/Nb"]').textContent()) + Number(await page.locator('span[is_id="4/Nb"]').textContent());
|
||
// await expect.soft(page.locator('span[is_id="5/Nb"]')).toHaveText(total.toString());
|
||
|
||
// Filtrer par champs 1
|
||
await page.getByRole('textbox', { name: 'Tous les champs' }).click();
|
||
await page.getByRole('row', { name: 'Champ 1', exact: true }).getByRole('cell').click();
|
||
await expect.soft(page.getByText('Champ 1')).toBeVisible();
|
||
await expect.soft(page.getByText('Champ 2')).not.toBeVisible();
|
||
await expect.soft(page.getByText('Champ 3')).not.toBeVisible();
|
||
await expect.soft(page.getByText('Champ 4')).not.toBeVisible();
|
||
await expect.soft(page.getByText('Champ 5')).not.toBeVisible();
|
||
|
||
// Activité de soin
|
||
await page.getByText('Activité de soin').click();
|
||
await expect.soft(page.getByText('Champs déclinés par Activité de soin')).toBeVisible();
|
||
await expect.soft(page.locator('span', {hasText: 'Activité de soin'}).nth(1)).toBeVisible();
|
||
|
||
// Exporter sous Excel
|
||
const downloadPromise = page.waitForEvent('download');
|
||
await page.getByText('Exporter sous Excel').click();
|
||
await page.waitForTimeout(3000); // attente du téléchargement
|
||
//tester si le nom du fichier est correct
|
||
const download = await downloadPromise;
|
||
const suggestedName = download.suggestedFilename();
|
||
expect.soft(suggestedName).toBe('P0-R1.xlsx');
|
||
// Enregistrer le fichier
|
||
await download.saveAs('downloads/' + suggestedName);
|
||
|
||
});
|
||
|
||
test('ii) Preparer le contrôle', async ({ page }) => {
|
||
await page.getByText('PREPARER LE CONTRÖLE', { exact: true }).click();
|
||
await expect(page.locator('h3.t')).toHaveText('Rapports');
|
||
await expect.soft(page.getByText('Rapport des dossiers contrôlés au')).toBeVisible();
|
||
await expect.soft(page.getByText('Vue d\'ensemble des séjours contrôlés')).toBeVisible();
|
||
|
||
await expect.soft(page.locator('li.active span').nth(1)).toHaveText('Indicateurs clés');
|
||
|
||
// Analyses
|
||
await page.locator('a').filter({ hasText: 'Analyse' }).click();
|
||
await expect(page.getByText('Valorisation des dossiers potentiels')).toBeVisible();
|
||
await expect.soft(page.getByText('Champ 1')).toBeVisible();
|
||
await expect.soft(page.getByText('Champ 2')).toBeVisible();
|
||
await expect.soft(page.getByText('Champ 3')).toBeVisible();
|
||
await expect.soft(page.getByText('Champ 4')).toBeVisible();
|
||
await expect.soft(page.getByText('Champ 5')).toBeVisible();
|
||
|
||
const total = Number(await page.locator('span[is_id="0/Nb"]').textContent()) + Number(await page.locator('span[is_id="1/Nb"]').textContent()) + Number(await page.locator('span[is_id="2/Nb"]').textContent())
|
||
+ Number(await page.locator('span[is_id="3/Nb"]').textContent()) + Number(await page.locator('span[is_id="4/Nb"]').textContent());
|
||
await expect.soft(page.locator('span[is_id="5/Nb"]')).toHaveText(total.toString());
|
||
|
||
// Filtrer par champs 1
|
||
await page.getByRole('textbox', { name: 'Tous les champs' }).click();
|
||
await page.getByRole('row', { name: 'Champ 1', exact: true }).getByRole('cell').click();
|
||
await expect.soft(page.getByText('Champ 1')).toBeVisible();
|
||
await expect.soft(page.getByText('Champ 2')).not.toBeVisible();
|
||
await expect.soft(page.getByText('Champ 3')).not.toBeVisible();
|
||
await expect.soft(page.getByText('Champ 4')).not.toBeVisible();
|
||
await expect.soft(page.getByText('Champ 5')).not.toBeVisible();
|
||
|
||
// Activité de soin
|
||
await page.getByText('Activité de soin').click();
|
||
await expect.soft(page.getByText('Champs déclinés par Activité de soin')).toBeVisible();
|
||
await expect.soft(page.locator('span', {hasText: 'Activité de soin'}).nth(1)).toBeVisible();
|
||
|
||
// Exporter sous Excel
|
||
const downloadPromise = page.waitForEvent('download');
|
||
await page.getByText('Exporter sous Excel').click();
|
||
await page.waitForTimeout(3000); // attente du téléchargement
|
||
//tester si le nom du fichier est correct
|
||
const download = await downloadPromise;
|
||
const suggestedName = download.suggestedFilename();
|
||
expect.soft(suggestedName).toBe('P1-R1.xlsx');
|
||
// Enregistrer le fichier
|
||
await download.saveAs('downloads/' + suggestedName);
|
||
|
||
});
|
||
|
||
test('iii) Suivre le contrôle', async ({ page }) => {
|
||
await page.getByText('SUIVRE LE CONTRÔLE', { exact: true }).click();
|
||
await expect(page.locator('h3.t')).toHaveText('Rapports');
|
||
await expect.soft(page.getByText('Rapport du contrôle sur site au ')).toBeVisible();
|
||
await expect.soft(page.getByText('Vue d\'ensemble de la Concertation')).toBeVisible();
|
||
|
||
await expect.soft(page.locator('li.active span').nth(1)).toHaveText('Indicateurs clés');
|
||
|
||
// Analyses
|
||
await page.locator('a').filter({ hasText: 'Analyse Concertation' }).click();
|
||
await expect(page.getByText('Analyse des résultats')).toBeVisible();
|
||
await expect.soft(page.getByText('Champ 1')).toBeVisible();
|
||
await expect.soft(page.getByText('Champ 2')).toBeVisible();
|
||
await expect.soft(page.getByText('Champ 3')).toBeVisible();
|
||
await expect.soft(page.getByText('Champ 4')).toBeVisible();
|
||
await expect.soft(page.getByText('Champ 5')).toBeVisible();
|
||
|
||
const total = Number(await page.locator('span[is_id="0/Nb"]').first().textContent()) + Number(await page.locator('span[is_id="1/Nb"]').first().textContent()) + Number(await page.locator('span[is_id="2/Nb"]').first().textContent())
|
||
+ Number(await page.locator('span[is_id="3/Nb"]').first().textContent()) + Number(await page.locator('span[is_id="4/Nb"]').first().textContent());
|
||
await expect.soft(page.locator('span[is_id="5/Nb"]').first()).toHaveText(total.toString());
|
||
|
||
// Filtrer par champs 1
|
||
await page.locator('input[value^="Tous les champs"]').click();
|
||
await page.getByRole('row', { name: 'Champ 1', exact: true }).getByRole('cell').click();
|
||
await expect.soft(page.getByText('Champ 1')).toBeVisible();
|
||
await expect.soft(page.getByText('Champ 2')).not.toBeVisible();
|
||
await expect.soft(page.getByText('Champ 3')).not.toBeVisible();
|
||
await expect.soft(page.getByText('Champ 4')).not.toBeVisible();
|
||
await expect.soft(page.getByText('Champ 5')).not.toBeVisible();
|
||
|
||
// Résultats de la concertation
|
||
await page.getByText('Résultat de la concertation').click();
|
||
await expect.soft(page.getByText('Champs déclinés par Résultat')).toBeVisible();
|
||
await expect.soft(page.locator('span', {hasText: 'Résultats'}).nth(1)).toBeVisible();
|
||
|
||
// Exporter sous Excel
|
||
const downloadPromise = page.waitForEvent('download');
|
||
await page.getByText('Exporter sous Excel').click();
|
||
await page.waitForTimeout(3000); // attente du téléchargement
|
||
//tester si le nom du fichier est correct
|
||
const download = await downloadPromise;
|
||
const suggestedName = download.suggestedFilename();
|
||
expect.soft(suggestedName).toBe('P2-R1.xlsx.xlsx');
|
||
// Enregistrer le fichier
|
||
await download.saveAs('downloads/' + suggestedName);
|
||
|
||
// Analyse des DAS
|
||
await page.locator('a').filter({ hasText: 'Analyse des DAS' }).click();
|
||
await expect(page.getByText('Analyse des Résultats')).toBeVisible();
|
||
await expect.soft(page.getByText('Champ 1')).toBeVisible();
|
||
await expect.soft(page.getByText('Champ 3')).toBeVisible();
|
||
await expect.soft(page.getByText('Champ 4')).toBeVisible();
|
||
await expect.soft(page.getByText('Champ 5')).toBeVisible();
|
||
|
||
// Filtrer par champs 1
|
||
await page.locator('input[value^="Tous les champs"]').click();
|
||
await page.getByRole('row', { name: 'Champ 1', exact: true }).getByRole('cell').click();
|
||
await expect.soft(page.getByText('Champ 1')).toBeVisible();
|
||
await expect.soft(page.getByText('Champ 3')).not.toBeVisible();
|
||
await expect.soft(page.getByText('Champ 4')).not.toBeVisible();
|
||
await expect.soft(page.getByText('Champ 5')).not.toBeVisible();
|
||
|
||
// Exporter sous Excel
|
||
const downloadPromiseDAS = page.waitForEvent('download');
|
||
await page.getByText('Exporter sous Excel').click();
|
||
await page.waitForTimeout(3000); // attente du téléchargement
|
||
//tester si le nom du fichier est correct
|
||
const downloadDAS = await downloadPromiseDAS;
|
||
const suggestedNameDAS = downloadDAS.suggestedFilename();
|
||
expect.soft(suggestedNameDAS).toBe('P2-DAS.xlsx');
|
||
// Enregistrer le fichier
|
||
await downloadDAS.saveAs('downloads/' + suggestedNameDAS);
|
||
});
|
||
|
||
test('iv) Gerer l\'apres controle', async ({ page }) => {
|
||
await page.getByText('GERER L\'APRES CONTRÔLE', { exact: true }).click();
|
||
await page.locator('h3.t').waitFor({ state: 'visible'});
|
||
await expect.soft(page.getByText('Synthèse des indus').nth(1)).toBeVisible();
|
||
|
||
// Naviguer vers les autres onglets
|
||
//SUIVRE LE CONTRÖLE
|
||
await page.getByText('SUIVRE LE CONTRÔLE', { exact: true }).nth(1).click();
|
||
await expect(page.locator('h3.t')).toHaveText('Rapports');
|
||
await expect.soft(page.getByText('Vue d\'ensemble de la Concertation')).toBeVisible();
|
||
//PREPARER LE CONTRÖLE
|
||
await page.getByText('PREPARER LE CONTRÖLE', { exact: true }).nth(1).click();
|
||
await expect(page.locator('h3.t')).toHaveText('Rapports');
|
||
await expect.soft(page.getByText('Rapport des dossiers contrôlés au')).toBeVisible();
|
||
await expect.soft(page.getByText('Vue d\'ensemble des séjours contrôlés')).toBeVisible();
|
||
//INITIER LE CONTRôLE
|
||
await page.getByText('INITIER LE CONTRÔLE', { exact: true }).nth(1).click();
|
||
await expect(page.locator('h3.t')).toHaveText('Rapports');
|
||
await expect.soft(page.getByText('RSS Candidats- Evaluation PMSI -')).toBeVisible();
|
||
});
|
||
});
|
||
|
||
|
||
test('b) Vos fichiers', async ({ page }) => {
|
||
// Deplier le menu Fichiers
|
||
await page.getByRole('row', { name: 'Vos fichiers' }).locator('a').nth(1).click();
|
||
await expect.soft(page.getByText('DRUIDES')).toBeVisible();
|
||
await expect.soft(page.getByText('RSS_def')).toBeVisible();
|
||
|
||
// Telecharger la fiche de liaison
|
||
const downloadPromise = page.waitForEvent('download');
|
||
await page.getByText('Fichede Liaison').click();
|
||
await page.waitForTimeout(3000); // attente du téléchargement
|
||
//tester si le nom du fichier est correct
|
||
const download = await downloadPromise;
|
||
const suggestedName = download.suggestedFilename();
|
||
expect.soft(suggestedName).toBe(`Fiche_liaison_${finess}.xlsx`);
|
||
// Enregistrer le fichier
|
||
await download.saveAs('downloads/' + suggestedName);
|
||
|
||
// Ajout de fichier
|
||
await page.getByTitle('Télécharger un nouveau fichier').nth(1).click();
|
||
await expect.soft(page.getByText('Télécharger les fichiers à traiter')).toBeVisible();
|
||
});
|
||
|
||
test('c) Vos Documents', async ({ page }) => {
|
||
// Deplier le menu Fichiers
|
||
await page.getByRole('row', { name: 'Vos Documents' }).locator('a').nth(1).click();
|
||
await expect(page.getByText('Courrier Annonce du Contrôle')).toBeVisible();
|
||
|
||
// Visualiser le courrier d'annonce du contrôle
|
||
await page.getByText('Courrier Annonce du Contrôle').click();
|
||
await expect.soft(page.getByText(' DOCUMENT DU CONTRÔLE')).toBeVisible();
|
||
await expect.soft(page.getByText('Composant utilisateur inaccessible')).not.toBeVisible();
|
||
|
||
// Fermer le document
|
||
await page.locator('a.IS_icon.IS_FrameCloseButton').click();
|
||
await expect.soft(page.getByText('DOCUMENT DU CONTRÔLE')).not.toBeVisible();
|
||
|
||
// Ajout d'un document
|
||
await page.getByTitle('Voir ou rechercher un document').click();
|
||
await expect.soft(page.getByText('Télécharger des documents PDF')).toBeVisible();
|
||
|
||
await page.getByRole('textbox', { name: 'Document à télécharger' }).click();
|
||
await expect(page.getByRole('cell', { name: 'APRES-UCR - Argumentaire' })).toBeVisible();
|
||
await page.getByRole('cell', { name: 'APRES-UCR - Argumentaire' }).click();
|
||
await expect.soft(page.getByRole('button', { name: 'Choose File' })).toBeVisible();
|
||
await page.getByText('Valider').click();
|
||
await expect.soft(page.getByText('Télécharger des documents PDF')).not.toBeVisible();
|
||
});
|
||
|
||
test('d) Vos Envoies', async ({ page }) => {
|
||
// Deplier le menu Envoies
|
||
await page.getByRole('row', { name: 'Vos envois' }).locator('a').nth(1).click();
|
||
await expect.soft(page.getByText('Document généré pour UCR').first()).toBeVisible();
|
||
|
||
// Visualiser le document généré pour UCR
|
||
await page.getByRole('article').filter({ hasText: 'Vos Envois Type de' }).locator('a').nth(2).click();
|
||
await expect(page.getByText(' DOCUMENT GENERE POUR: UCR')).toBeVisible();
|
||
await expect.soft(page.getByText('Composant utilisateur inaccessible')).not.toBeVisible();
|
||
await expect.soft(page.getByText('Template inaccessible')).not.toBeVisible();
|
||
|
||
// Telecharger le fichier
|
||
const downloadPromise = page.waitForEvent('download');
|
||
await page.getByTitle('Télécharger le fichier').click();
|
||
await page.waitForTimeout(3000); // attente du téléchargement
|
||
//tester si le nom du fichier est correct
|
||
const download = await downloadPromise;
|
||
const suggestedName = download.suggestedFilename();
|
||
expect.soft(suggestedName).toBe(`0-${finess}_DocumentPourUCR.html`);
|
||
// Enregistrer le fichier
|
||
await download.saveAs('downloads/' + suggestedName);
|
||
|
||
// Fermer le document
|
||
await page.locator('a.IS_icon.IS_FrameCloseButton').click();
|
||
await expect.soft(page.getByText('DOCUMENT GENERE POUR: UCR')).not.toBeVisible();
|
||
});
|
||
|
||
test('e) Agenda et Notifications', async ({ page }) => {
|
||
// Agenda
|
||
await expect.soft(page.getByText('Agenda').nth(1)).not.toBeVisible();
|
||
await page.getByText('Agenda').first().click();
|
||
await expect.soft(page.getByText('Agenda').nth(1)).not.toBeVisible();
|
||
|
||
await expect.soft(page.locator('li.active span').nth(1)).toHaveText('Agenda');
|
||
// Notifications
|
||
await page.getByText('Notifications').first().click();
|
||
await expect.soft(page.locator('li.active span').nth(1)).toHaveText('Notifications');
|
||
|
||
// Passer d'un onglet à un autre
|
||
await page.locator('a').filter({ hasText: 'INITIER le contrôle' }).click();
|
||
await expect.soft(page.locator('li.active span').first()).toHaveText('INITIER le contrôle');
|
||
await expect.soft(page.getByText('Notifications').first()).toBeVisible();
|
||
await expect.soft(page.locator('li.active span').nth(1)).toHaveText('Notifications');
|
||
|
||
await page.getByText('Agenda').nth(1).click();
|
||
await expect.soft(page.locator('li.active span').nth(1)).toHaveText('Agenda');
|
||
|
||
await page.locator('a').filter({ hasText: 'PREPARER le contrôle' }).click();
|
||
await expect.soft(page.locator('li.active span').first()).toHaveText('PREPARER le contrôle');
|
||
await expect.soft(page.getByText('Agenda').nth(1)).toBeVisible();
|
||
await expect.soft(page.locator('li.active span').nth(1)).toHaveText('Agenda');
|
||
|
||
await page.locator('I.fa.fa-close').click();
|
||
await expect.soft(page.getByText('Agenda').nth(1)).not.toBeVisible();
|
||
await expect.soft(page.getByText('Notifications').first()).not.toBeVisible();
|
||
});
|
||
});
|
||
});
|
||
|
||
test.describe('II) INITIER le contrôle', () => {
|
||
test.beforeEach(async ({ page }) => {
|
||
// Clic sur l'icone dossier
|
||
const nomEtablissement = await page.getByTitle('Ouvrir 0').textContent();
|
||
const nomEtab = nomEtablissement?.split(' - ').pop()?.trim();
|
||
const annee = "2023"; //await page.locator('span[is_id="1/annee"]').textContent();
|
||
const nbChamps = "5"; //await page.locator('span[is_id="1/nb_champs_controles"]').textContent();
|
||
const phaseDuControle = 'GERER l\'après contrôle';
|
||
|
||
// Clic sur l'icone dossier
|
||
//await expect(page.getByTitle('Ouvrir 0').first()).toBeVisible();
|
||
//await page.getByTitle('Ouvrir 0').first().click();
|
||
|
||
await expect(page.locator('a[is_id*="/Voir"]').last()).toBeVisible();
|
||
await page.locator('a[is_id*="/Voir"]').last().click();
|
||
|
||
//Première arrivée
|
||
const titre = `Contrôle ${nomEtab} ${annee}${nbChamps} Champs contrôlés`;
|
||
await page.getByText(titre).waitFor({ state: 'visible', timeout: 20000 });
|
||
await page.getByText(`${phaseDuControle}`).waitFor({ state: 'visible'});
|
||
|
||
await page.locator('a').filter({ hasText: 'INITIER le contrôle' }).click();
|
||
await expect.soft(page.locator('li.active span').first()).toHaveText('INITIER le contrôle');
|
||
|
||
await expect(page.getByText(`Le contrôle comporte ${nbChamps} champs`)).toBeVisible();
|
||
|
||
});
|
||
|
||
test('1- Liste des champs configurés', async ({ page }) => {
|
||
// Cliquer sur le plus rouge
|
||
await page.getByText('+', { exact: true }).click();
|
||
await expect.soft(page.getByText(' AJOUT CONFIGURATION')).toBeVisible();
|
||
await page.getByPlaceholder('Numéro du champ').fill('2');
|
||
await page.getByText('Valider').click();
|
||
|
||
await expect.soft(page.getByText('Configuration du champ 2')).toBeVisible();
|
||
await page.getByText('Afficher les champs configurés').click();
|
||
await expect.soft(page.getByText('Liste des champs configurés')).toBeVisible();
|
||
|
||
await page.locator('td[is_id="0/supp"]').click();
|
||
await expect.soft(page.getByRole('cell', { name: 'Confirmer-vous la suppression' })).toBeVisible();
|
||
await page.getByText('Non').last().click(); // Ne pas supprimer le champ
|
||
|
||
});
|
||
|
||
test('2- Valorisation des dossiers du RSSDEF', async ({ page }) => {
|
||
// Telecharger le fichier
|
||
const downloadPromise = page.waitForEvent('download');
|
||
await page.getByText('Exporter sous Excel').click();
|
||
await page.waitForTimeout(3000); // attente du téléchargement
|
||
//tester si le nom du fichier est correct
|
||
const download = await downloadPromise;
|
||
const suggestedName = download.suggestedFilename();
|
||
expect.soft(suggestedName).toBe('P0-R1.xlsx');
|
||
// Enregistrer le fichier
|
||
await download.saveAs('downloads/' + suggestedName);
|
||
|
||
// Filtrer par champs 1
|
||
await page.getByRole('textbox', { name: 'Tous les champs' }).click();
|
||
await page.getByRole('row', { name: 'Champ 1', exact: true }).getByRole('cell').click();
|
||
await expect.soft(page.getByRole('cell', { name: 'Champ 1', exact: true }).nth(1)).toBeVisible();
|
||
await expect.soft(page.getByText('Champ 2').nth(1)).not.toBeVisible();
|
||
await expect.soft(page.getByText('Champ 3').nth(1)).not.toBeVisible();
|
||
await expect.soft(page.getByText('Champ 4').nth(1)).not.toBeVisible();
|
||
await expect.soft(page.getByText('Champ 5').nth(3)).not.toBeVisible();
|
||
|
||
// Activité de soin
|
||
await page.getByText('Activité de soin').click();
|
||
await expect.soft(page.getByText('Champs déclinés par Activité de soin')).toBeVisible();
|
||
await expect.soft(page.locator('span', {hasText: 'Activité de soin'}).nth(1)).toBeVisible();
|
||
|
||
// Sévérité GHM
|
||
await page.getByText('Sévérité GHM').click();
|
||
await expect.soft(page.getByText('Champs déclinés par Sévérité GHM')).toBeVisible();
|
||
await expect.soft(page.locator('span', {hasText: 'Sévérité GHM'}).nth(1)).toBeVisible();
|
||
|
||
// Spécialité
|
||
await page.getByText('Spécialité').click();
|
||
await expect.soft(page.getByText('Champs déclinés par Spécialité')).toBeVisible();
|
||
await expect.soft(page.locator('span', {hasText: 'Spécialité'}).nth(1)).toBeVisible();
|
||
|
||
// Fermer
|
||
await page.locator('i.fa.fa-remove').click();
|
||
await expect.soft(page.locator('span', {hasText: 'Activité de soin'}).nth(1)).not.toBeVisible();
|
||
await expect.soft(page.locator('span', {hasText: 'Sévérité GHM'}).nth(1)).not.toBeVisible();
|
||
await expect.soft(page.locator('span', {hasText: 'Sévérité GHM'}).nth(1)).not.toBeVisible();
|
||
});
|
||
|
||
});
|
||
|
||
test.describe('III) PREPARER le contrôle', () => {
|
||
test.beforeEach(async ({ page }) => {
|
||
// Clic sur l'icone dossier
|
||
const nomEtablissement = await page.getByTitle('Ouvrir 0').textContent();
|
||
const nomEtab = nomEtablissement?.split(' - ').pop()?.trim();
|
||
const annee = "2023"; //await page.locator('span[is_id="1/annee"]').textContent();
|
||
const nbChamps = "5"; //await page.locator('span[is_id="1/nb_champs_controles"]').textContent();
|
||
const phaseDuControle = 'GERER l\'après contrôle';
|
||
|
||
// Clic sur l'icone dossier
|
||
//await expect(page.getByTitle('Ouvrir 0').first()).toBeVisible();
|
||
//await page.getByTitle('Ouvrir 0').first().click();
|
||
|
||
await expect(page.locator('a[is_id*="/Voir"]').last()).toBeVisible();
|
||
await page.locator('a[is_id*="/Voir"]').last().click();
|
||
|
||
//Première arrivée
|
||
const titre = `Contrôle ${nomEtab} ${annee}${nbChamps} Champs contrôlés`;
|
||
//await page.getByText(titre).waitFor({ state: 'visible', timeout: 20000 });
|
||
await page.getByText(`${phaseDuControle}`).waitFor({ state: 'visible'});
|
||
|
||
await page.locator('a').filter({ hasText: 'PREPARER le contrôle' }).click();
|
||
await expect.soft(page.locator('li.active span').first()).toHaveText('PREPARER le contrôle');
|
||
|
||
await page.getByText('Synthèse Préparation').waitFor({ state: 'visible' });
|
||
//await expect.soft(page.getByText('Synthèse Préparation')).toBeVisible();
|
||
await expect.soft(page.getByText('Suivi de la Préparation')).toBeVisible();
|
||
});
|
||
|
||
test.describe('1- Synthèse Préparation (Fiche OGC)', () => {
|
||
test.beforeEach(async ({ page }, testInfo) => {
|
||
if (testInfo.title === 'g) Ouvrir la fiche avec le numero de séjour') {
|
||
return;
|
||
}
|
||
await page.getByRole('textbox', { name: 'Taper un numéro de séjour ou' }).fill('57');
|
||
await page.locator('header, .IS_Container, body').first().click(); // dehors du champ
|
||
|
||
await page.getByText('Fiche OGC 57').waitFor({ state: 'visible' });
|
||
await expect.soft(page.getByText('Label inaccessible')).not.toBeVisible(); // vérifier que les labels d'accessibilité ne sont pas présents sur les icônes ATIH
|
||
await expect.soft(page.getByText('Aucun DP / DR ou IGC pour ce RUM')).not.toBeVisible(); // vérifier que les données du séjour sont présentes et que ce n'est pas une fiche générique pour les séjours sans DP/DR ou IGC
|
||
|
||
|
||
});
|
||
|
||
test('a) Changer l\état du dossier', async ({ page }) => {
|
||
// Cliquee sur "A risque"
|
||
await expect.soft(page.locator('a.IS_button.success').last()).toHaveText('Défendable')
|
||
await page.getByText('A risque', { exact: true }).click();
|
||
await expect.soft(page.locator('a.IS_button.warning')).toHaveText('A risque');
|
||
|
||
// Cliquer sur Non défendable
|
||
await page.getByText('Non défendable').click();
|
||
await expect.soft(page.locator('a.IS_button.danger')).toHaveText('Non défendable');
|
||
|
||
});
|
||
|
||
test('b) Déplier pour plus d\informations', async ({ page }) => {
|
||
await page.locator('a.IS_icon.IS_Minimize_Button.IS_Restore').nth(5).click();
|
||
await expect(page.getByText('Homme de')).toBeVisible();
|
||
await expect(page.getByText('taux de remboursement AM ')).toBeVisible();
|
||
await expect(page.getByText('Le patient a été hospitalisé pendant')).toBeVisible();
|
||
});
|
||
|
||
test('c) Montants brut / AM', async ({ page }) => {
|
||
await expect.soft(page.getByRole('radio', { name: 'Montants AM' })).toBeChecked();
|
||
await expect.soft(page.getByText('MNT AM GHS-EXB+EXH', { exact: true })).toBeVisible();
|
||
await expect.soft(page.getByText('MNT AM SUPPL')).toBeVisible();
|
||
await expect.soft(page.getByText('MNT AM GAINS PERTE DU GHS')).toBeVisible();
|
||
|
||
await expect(page.getByRole('radio', { name: 'Montants Brut' })).not.toBeChecked();
|
||
await page.getByRole('radio', { name: 'Montants Brut' }).click();
|
||
await expect(page.getByRole('radio', { name: 'Montants Brut' })).toBeChecked();
|
||
await expect.soft(page.getByText('MNT BR GHS-EXB+EXH', { exact: true })).toBeVisible();
|
||
await expect.soft(page.getByText('MNT BR SUPPL')).toBeVisible();
|
||
await expect.soft(page.getByText('MNT BR GAINS PERTE DU GHS')).toBeVisible();
|
||
});
|
||
|
||
test('d) Forcer le MNT AM = 0', async ({ page }) => {
|
||
await page.getByText('Forcer les MNT AM = 0').click();
|
||
await expect(page.getByRole('heading', { name: 'Cochez les étapes' })).toBeVisible();
|
||
await expect.soft(page.getByRole('cell', { name: 'PREPA', exact: true })).toBeVisible();
|
||
await expect.soft(page.getByRole('cell', { name: 'Toutes les étapes', exact: true })).toBeVisible();
|
||
|
||
await page.getByText('valider et quitter').click();
|
||
await expect.soft(page.getByRole('heading', { name: 'Cochez les étapes' })).not.toBeVisible();
|
||
});
|
||
|
||
test('e) Filtrer les diags et actes modifiés', async ({ page }) => {
|
||
await page.getByText('Filtrer les diags et actes modifiés').click();
|
||
await expect(page.getByText('Annuler le filtrage')).toBeVisible();
|
||
|
||
await page.getByText('Annuler le filtrage').click();
|
||
await expect.soft(page.getByText('Filtrer les diags et actes modifiés')).toBeVisible();
|
||
});
|
||
|
||
test('f) Plier déplier', async ({ page }) => {
|
||
// Donnees du séjour
|
||
await expect.soft(page.getByText('Unité médicale')).toBeVisible();
|
||
await page.locator('a.IS_icon.IS_Minimize_Button').nth(7).click();
|
||
await expect.soft(page.getByText('Unité médicale')).not.toBeVisible();
|
||
|
||
// Tableau de synthése
|
||
await expect.soft(page.getByRole('cell', { name: 'NB EXH', exact: true })).not.toBeVisible();
|
||
await expect.soft(page.getByRole('cell', { name: 'NB SUPPL SRC', exact: true })).not.toBeVisible();
|
||
await expect.soft(page.getByRole('cell', { name: 'NB SUPPL STF', exact: true })).not.toBeVisible();
|
||
await expect.soft(page.getByRole('cell', { name: 'IGS', exact: true })).not.toBeVisible();
|
||
await page.locator('a.IS_icon.IS_Minimize_Button').nth(9).click();
|
||
await page.waitForTimeout(1000); // attendre l'animation
|
||
await expect.soft(page.getByRole('cell', { name: 'NB EXH', exact: true })).toBeVisible();
|
||
await expect.soft(page.getByRole('cell', { name: 'NB SUPPL SRC', exact: true })).toBeVisible();
|
||
await expect.soft(page.getByRole('cell', { name: 'NB SUPPL STF', exact: true })).toBeVisible();
|
||
await expect.soft(page.getByRole('cell', { name: 'IGS', exact: true })).toBeVisible();
|
||
|
||
// Dates et modes d'entrée sortie
|
||
await expect.soft(page.getByRole('cell', { name: 'Prépa', exact: true })).toBeVisible();
|
||
await expect.soft(page.getByRole('cell', { name: 'Entrée Sortie', exact: true })).toBeVisible();
|
||
await page.locator('a.IS_icon.IS_Minimize_Button').nth(10).click();
|
||
await page.waitForTimeout(1000); // attendre l'animation
|
||
await expect.soft(page.getByRole('cell', { name: 'Prépa', exact: true })).not.toBeVisible();
|
||
await expect.soft(page.getByRole('cell', { name: 'Entrée Sortie', exact: true })).not.toBeVisible();
|
||
|
||
// Diagnostiques
|
||
await expect.soft(page.getByRole('cell', { name: 'ETAB', exact: true }).nth(2)).toBeVisible();
|
||
await expect.soft(page.getByRole('cell', { name: 'DP', exact: true }).nth(1)).toBeVisible();
|
||
await expect.soft(page.getByRole('cell', { name: 'DR', exact: true })).toBeVisible();
|
||
await page.locator('a.IS_icon.IS_Minimize_Button').nth(11).click();
|
||
await page.waitForTimeout(1000); // attendre l'animation
|
||
await expect.soft(page.getByRole('cell', { name: 'ETAB', exact: true }).nth(2)).not.toBeVisible();
|
||
await expect.soft(page.getByRole('cell', { name: 'DP', exact: true }).nth(1)).not.toBeVisible();
|
||
await expect.soft(page.getByRole('cell', { name: 'DR', exact: true })).not.toBeVisible();
|
||
|
||
// Actes
|
||
await expect.soft(page.getByRole('cell', { name: 'ETAB', exact: true }).nth(1)).toBeVisible();
|
||
await page.locator('a.IS_icon.IS_Minimize_Button').nth(12).click();
|
||
await page.waitForTimeout(1000); // attendre l'animation
|
||
await expect.soft(page.getByRole('cell', { name: 'ETAB', exact: true }).nth(1)).not.toBeVisible();
|
||
|
||
// Fermer sans sauvegarder
|
||
await page.getByTitle('Fermer la fenêtre').click();
|
||
await expect.soft(page.getByRole('heading', { name: 'Confirmez' })).toBeVisible(); // vérifier que les modifications n'ont pas été sauvegardées
|
||
await page.getByText('Oui', { exact: true }).click();
|
||
await expect.soft(page.getByText('Fiche OGC 57')).not.toBeVisible();
|
||
});
|
||
|
||
test('g) Ouvrir la fiche avec le numero de séjour', async ({ page }) => {
|
||
await page.getByRole('textbox', { name: 'Taper un numéro de séjour ou' }).fill('2300394920230301');
|
||
await page.locator('header, .IS_Container, body').first().click(); // dehors du champ
|
||
|
||
await page.getByText('Fiche OGC 57').waitFor({ state: 'visible' });
|
||
await expect.soft(page.getByText('Label inaccessible')).not.toBeVisible(); // vérifier que les labels d'accessibilité ne sont pas présents sur les icônes ATIH
|
||
await expect.soft(page.getByText('Aucun DP / DR ou IGC pour ce RUM')).not.toBeVisible(); // vérifier que les données du séjour sont présentes et que ce n'est pas une fiche générique pour les séjours sans DP/DR ou IGC
|
||
|
||
});
|
||
|
||
});
|
||
|
||
test.describe('2- Suivi de Préparation', () => {
|
||
test('a) Filtre dossier défondables', async ({ page }) => {
|
||
await page.getByRole('row', { name: 'Dossiers défendables ?' }).locator('a').click();
|
||
await expect.soft(page.getByRole('cell', { name: '706 séj', exact: true })).toBeVisible();
|
||
|
||
await page.getByText('Rien').click();
|
||
await expect.soft(page.locator('td[is_id="0/choix"] input')).not.toBeChecked();
|
||
await expect.soft(page.locator('td[is_id="1/choix"] input')).not.toBeChecked();
|
||
await expect.soft(page.locator('td[is_id="2/choix"] input')).not.toBeChecked();
|
||
await expect.soft(page.locator('td[is_id="3/choix"] input')).not.toBeChecked();
|
||
|
||
// Cocher A risque
|
||
await page.locator('td[is_id="1/choix"] input').click();
|
||
await expect.soft(page.locator('td[is_id="1/choix"] input')).toBeChecked();
|
||
await expect.soft(page.getByText('Filtre Défendable = A risque')).toBeVisible();
|
||
|
||
// Tout cocher
|
||
await page.getByText('Tout', { exact: true }).click();
|
||
await expect.soft(page.locator('td[is_id="0/choix"] input')).toBeChecked();
|
||
await expect.soft(page.locator('td[is_id="1/choix"] input')).toBeChecked();
|
||
await expect.soft(page.locator('td[is_id="2/choix"] input')).toBeChecked();
|
||
await expect.soft(page.locator('td[is_id="3/choix"] input')).toBeChecked();
|
||
|
||
});
|
||
|
||
test('Filtrage UM', async ({ page }) => {
|
||
await page.getByRole('row', { name: 'Filtrage UM ...+' }).locator('a').click();
|
||
await expect(page.getByText('Séléctionner un UM dans la liste')).toBeVisible();
|
||
await expect(page.getByRole('textbox', { name: 'Liste des UM' })).toBeVisible();
|
||
|
||
await page.getByRole('textbox', { name: 'Liste des UM' }).click();
|
||
await page.getByRole('cell', { name: '0147' }).click();
|
||
await expect.soft(page.getByText('Filtre UM = 047')).toBeVisible();
|
||
|
||
await page.locator('i.fa.fa-close').click();
|
||
await expect.soft(page.getByText('Filtre UM = 047')).not.toBeVisible();
|
||
});
|
||
|
||
test('c) CMA et GHM', async ({ page }) => {
|
||
await expect(page.getByRole('radio', { name: 'Sévérité du GHM' })).toBeChecked();
|
||
await expect(page.getByRole('radio', { name: 'CMA du diagnostic' })).not.toBeChecked();
|
||
await expect.soft(page.getByText('Répartition des OGC par champ et sévérité du GHM')).toBeVisible();
|
||
await page.getByRole('radio', { name: 'CMA du diagnostic' }).click();
|
||
await expect(page.getByRole('radio', { name: 'CMA du diagnostic' })).toBeChecked();
|
||
await expect(page.getByRole('radio', { name: 'Sévérité du GHM' })).not.toBeChecked();
|
||
await expect.soft(page.getByText('Répartition des OGC par champ et par CMA(DA)')).toBeVisible();
|
||
});
|
||
});
|
||
|
||
test.describe('3- Liste des OGC', () => {
|
||
test.beforeEach(async ({ page }, testInfo) => {
|
||
if (testInfo.title === 'f) Ouvrir la liste OGC spécifique') {
|
||
return;
|
||
}
|
||
await page.getByText('56séj').click();
|
||
await page.getByRole('cell', { name: 'Liste des OGC filtrés' }).waitFor({ state: 'visible' });
|
||
});
|
||
|
||
test('a) Exporter la liste', async ({ page }) => {
|
||
const downloadPromise = page.waitForEvent('download');
|
||
await page.getByText('Exporter La liste des OGC').click();
|
||
await page.waitForTimeout(3000); // attente du téléchargement
|
||
//tester si le nom du fichier est correct
|
||
const download = await downloadPromise;
|
||
const suggestedName = download.suggestedFilename();
|
||
expect.soft(suggestedName).toBe('Liste_OGC_Selectionnés_PREPA.xlsx');
|
||
// Enregistrer le fichier
|
||
await download.saveAs('downloads/' + suggestedName);
|
||
});
|
||
|
||
test('b) Exporter les argumentaires', async ({ page }) => {
|
||
const downloadPromise = page.waitForEvent('download');
|
||
await page.getByText('Exporter les argumentaires').click();
|
||
await expect.soft(page.getByRole('heading', { name: 'Fichiers Argumentaires' })).toBeVisible();
|
||
await page.getByText('Oui', { exact: true }).click();
|
||
await page.waitForTimeout(3000); // attente du téléchargement
|
||
//tester si le nom du fichier est correct
|
||
const download = await downloadPromise;
|
||
const suggestedName = download.suggestedFilename();
|
||
expect.soft(suggestedName).toContain('Argufiles_');
|
||
expect.soft(suggestedName).toContain('.zip');
|
||
// Enregistrer le fichier
|
||
await download.saveAs('downloads/' + suggestedName);
|
||
});
|
||
|
||
test('c) Ouvrir les argumentaires', async ({ page }) => {
|
||
await page.locator('Div[style="top:0px"] div.l0.r0 a').first().click();
|
||
await page.getByRole('heading', { name: 'OGC : 1 - Séjour' }).waitFor({ state: 'visible' });
|
||
await expect.soft(page.getByText('ARGUMENTAIRES OGC ')).toBeVisible();
|
||
// Télécharger les argumentaires
|
||
const downloadPromise = page.waitForEvent('download');
|
||
await page.getByText('Exporter les argumentaires').nth(1).click();
|
||
const download = await downloadPromise;
|
||
const suggestedName = download.suggestedFilename();
|
||
expect.soft(suggestedName).toContain('ExportArgu.html');
|
||
// Enregistrer le fichier
|
||
await download.saveAs('downloads/' + suggestedName);
|
||
|
||
// Memo
|
||
await page.getByText('Mémo').nth(1).click();
|
||
await expect.soft(page.getByRole('heading', { name: 'Mémo', exact: true })).toBeVisible();
|
||
await page.locator('a.IS_icon.IS_FrameCloseButton').nth(1).click();
|
||
|
||
// Recherche de saisines
|
||
await page.getByText('Recherche de saisines').click();
|
||
await expect.soft(page.getByRole('textbox', { name: 'Rechercher un code ou un terme' })).toBeVisible();
|
||
await expect.soft(page.getByText('Saisines : 191')).toBeVisible();
|
||
await expect.soft(page.getByText('Agora :')).toBeVisible();
|
||
await page.getByRole('textbox', { name: 'Rechercher un code ou un terme' }).fill('transfusion');
|
||
await page.getByTitle('Rechercher', { exact: true }).click();
|
||
await expect.soft(page.getByText('Saisines : 6')).toBeVisible();
|
||
await expect.soft(page.getByText('Agora : ')).toBeVisible();
|
||
await expect.soft(page.getByText('Transfusion sanguine en DAS')).toBeVisible();
|
||
await page.getByText('Transfusion sanguine en DAS').click();
|
||
await expect.soft(page.getByText('transfusion sanguine en DAS').nth(1)).toBeVisible();
|
||
await expect.soft(page.getByText('Un dossier concerne un')).toBeVisible();
|
||
|
||
// Agora
|
||
await page.getByText('Agora : ').click();
|
||
await expect.soft(page.getByText('sujets trouvés sur Agora')).toBeVisible();
|
||
await expect.soft(page.locator('td[is_id="34/titre"]')).toBeVisible();
|
||
await page.getByText('Patient avec anémie traitée par transfusion : choix du DP (8 occurences)').click();
|
||
await expect.soft(page.getByText('Patient avec anémie traitée par transfusion : choix du DP', { exact: true })).toBeVisible();
|
||
await expect.soft(page.getByText('Source : Agora, sujet N°')).toBeVisible();
|
||
const tdAgora = page.locator('div.IS_Container.IS_VFlowLayout.verticalScroll').nth(3);
|
||
|
||
// Vérifier que tous les "transfusion" sont dans des <mark>
|
||
const allMarked = await tdAgora.evaluate((element) => {
|
||
const text = element.textContent || '';
|
||
const totalCount = (text.match(/transfusion/gi) || []).length;
|
||
|
||
const markedCount = element.querySelectorAll('mark').length;
|
||
const markedTexts = Array.from(element.querySelectorAll('mark'))
|
||
.filter(mark => /transfusion/i.test(mark.textContent || ''))
|
||
.length;
|
||
|
||
return {
|
||
totalTransfusions: totalCount,
|
||
markedTransfusions: markedTexts,
|
||
allAreMarked: totalCount === markedTexts && totalCount > 0
|
||
};
|
||
});
|
||
|
||
expect.soft(allMarked.allAreMarked).toBe(true);
|
||
await page.getByRole('link', { name: '53310' }).click();
|
||
const [newPage] = await Promise.all([
|
||
page.waitForEvent('popup'),
|
||
page.getByRole('link', { name: '53310' }).click()
|
||
]);
|
||
|
||
await newPage.waitForLoadState();
|
||
|
||
await expect(newPage).toHaveURL(/connect-pasrel\.atih\.sante\.fr\/cas\/login/);
|
||
|
||
// Recherche de Diags ou Actes
|
||
await page.getByText('Recherche de Diags ou Actes').click();
|
||
await expect.soft(page.getByText('Recherche de code')).toBeVisible();
|
||
await expect.soft(page.getByRole('combobox', { name: 'Saisir un code ou un mot clé' })).toBeVisible();
|
||
await page.getByRole('combobox', { name: 'Saisir un code ou un mot clé' }).fill('K8');
|
||
await expect.soft(page.getByRole('option', { name: 'K803 - CALCUL DES CANAUX BIL. AVEC ANGIOCHOLITE' })).toBeVisible();
|
||
await page.getByRole('option', { name: 'K803 - CALCUL DES CANAUX BIL. AVEC ANGIOCHOLITE' }).click();
|
||
|
||
// changement d'onglet
|
||
await expect.soft(page.locator('ul.IS_hmenu li a.active')).toHaveText('Résumé cas clinique');
|
||
await page.getByText('DIM Argumentaire').click();
|
||
await expect.soft(page.locator('ul.IS_hmenu li a.active')).toHaveText('DIM Argumentaire');
|
||
await page.getByText('Contrôleur Argumentaire').click();
|
||
await expect.soft(page.locator('ul.IS_hmenu li a.active')).toHaveText('Contrôleur Argumentaire');
|
||
|
||
await page.locator('a.IS_icon.IS_FrameCloseButton.hideCloseButton.hideCloseButton').click();
|
||
await expect.soft(page.locator('Div[style="top:0px"] div.l0.r0 a').first()).toHaveAttribute('title', 'Des argumentaires et un mémo ont été saisis');
|
||
});
|
||
|
||
test('d) Documments justificatifs', async ({ page }) => {
|
||
await page.locator('Div[style="top:0px"] div.l1.r1 a').first().click();
|
||
await expect(page.getByText('Documents Justificatifs', { exact: true })).toBeVisible();
|
||
await expect.soft(page.getByText('Seuls les documents PDF sont affichables')).toBeVisible();
|
||
|
||
//await page.getByTitle('Télécharger un scan').click();
|
||
//await expect.soft(page.getByRole('heading', { name: 'Télécharger des documents PDF' })).toBeVisible();
|
||
|
||
//await page.getByRole('row', { name: 'Télécharger des documents PDF' }).locator('a').click();
|
||
//await expect.soft(page.getByRole('heading', { name: 'Télécharger des documents PDF' })).not.toBeVisible();
|
||
|
||
await page.locator('i.fa.fa-folder').first().click();
|
||
await expect.soft(page.locator('ul.active li')).toBeVisible();
|
||
await page.locator('ul.active li').click();
|
||
// Version originale
|
||
await expect(page.getByRole('heading', { name: '.pdf' })).toBeVisible();
|
||
await expect.soft(page.locator('nav ul.IS_hmenu li a.active')).toHaveText('Version originale');
|
||
|
||
// Télecharger le justificatif original
|
||
const downloadPromise = page.waitForEvent('download');
|
||
await page.getByTitle('Télécharger la version').click();
|
||
const download = await downloadPromise;
|
||
const suggestedName = download.suggestedFilename();
|
||
expect.soft(suggestedName).toContain('.pdf');
|
||
// Enregistrer le fichier
|
||
await download.saveAs('downloads/' + suggestedName);
|
||
|
||
// Version modifiée
|
||
await page.getByText('Version modifiée').click();
|
||
await expect.soft(page.locator('nav ul.IS_hmenu li a.active')).toContainText('Version modifiée');
|
||
|
||
//Défiler entre les pages
|
||
await page.getByRole('cell', { name: 'Page 1' }).locator('a').click();
|
||
await page.waitForTimeout(1000); // attendre le chargement
|
||
//if (await page.getByRole('cell', { name: 'Page 2' }).first().isVisible()) {
|
||
await page.getByRole('cell', { name: 'Page 2' }).first().click();
|
||
|
||
//}
|
||
await expect.soft(page.getByRole('cell', { name: 'Page 2' })).toBeVisible();
|
||
// Retour à la page 1 avec la flèche gauche
|
||
await page.getByTitle('Page précédente').click();
|
||
await expect.soft(page.getByRole('cell', { name: 'Page 1' })).toBeVisible();
|
||
|
||
|
||
// Télecharger le justificatif modifié
|
||
const downloadPromiseModif = page.waitForEvent('download');
|
||
await page.getByTitle('Télécharger la version').click();
|
||
const downloadModif = await downloadPromiseModif;
|
||
const suggestedNameModif = downloadModif.suggestedFilename();
|
||
expect.soft(suggestedNameModif).toContain('modif.pdf');
|
||
// Enregistrer le fichier
|
||
await downloadModif.saveAs('downloads/' + suggestedNameModif);
|
||
|
||
await page.locator('a.IS_icon.IS_FrameCloseButton').last().click();
|
||
await expect(page.getByRole('heading', { name: '.pdf' })).not.toBeVisible();
|
||
await page.locator('a.IS_icon.IS_FrameCloseButton').last().click();
|
||
await expect.soft(page.getByText('Documents Justificatifs', { exact: true })).not.toBeVisible();
|
||
|
||
});
|
||
|
||
test('e) Ouvrir la fiche OGC', async({page}) => {
|
||
await page.locator('div[style="top:0px"] div.l2.r2 span').click();
|
||
await page.getByText('Fiche OGC').waitFor({ state: 'visible' });
|
||
await expect.soft(page.getByText('Label inaccessible')).not.toBeVisible(); // vérifier que les labels d'accessibilité ne sont pas présents sur les icônes ATIH
|
||
await expect.soft(page.getByText('Aucun DP / DR ou IGC pour ce RUM')).not.toBeVisible(); // vérifier que les données du séjour sont présentes et que ce n'est pas une fiche générique pour les séjours sans DP/DR ou IGC
|
||
|
||
// Argumentaire
|
||
await page.locator('i.fa.fa-Commenting').last().click();
|
||
await page.getByRole('heading', { name: 'Saisie et visualisation des argumentaires' }).waitFor({ state: 'visible' });
|
||
await expect.soft(page.locator('ul.IS_hmenu li a.active')).toHaveText('Résumé cas clinique');
|
||
await page.getByText('DIM Argumentaire').click();
|
||
await expect.soft(page.locator('ul.IS_hmenu li a.active')).toHaveText(/DIM\s*ARGUMENTAIRE/i);
|
||
|
||
// Quitter
|
||
//await page.getByText('Quitter La page Argumentaires').click();
|
||
await page.locator('a.IS_icon.IS_FrameCloseButton').last().click();
|
||
await expect.soft(page.getByRole('heading', { name: 'Saisie et visualisation des argumentaires' })).not.toBeVisible();
|
||
});
|
||
|
||
test('f) Ouvrir la liste OGC spécifique', async({page}) => {
|
||
await page.getByTitle('montant 40 706€').click();
|
||
await page.getByText('Liste des OGC filtrés').waitFor({ state: 'visible' });
|
||
await expect.soft(page.getByText('num champ 1')).toBeVisible();
|
||
await expect.soft(page.getByText('Nb séjours préparation Reval 8')).toBeVisible();
|
||
});
|
||
});
|
||
|
||
test.describe('4- Fiche OGC', () => {
|
||
test.beforeEach(async ({ page }) => {
|
||
await page.getByTitle('montant 40 706€').click();
|
||
await page.getByText('Liste des OGC filtrés').waitFor({ state: 'visible' });
|
||
await expect.soft(page.getByText('num champ 1')).toBeVisible();
|
||
await expect.soft(page.getByText('Nb séjours préparation Reval 8')).toBeVisible();
|
||
|
||
await page.getByText('n°3', { exact: true }).click();
|
||
await page.getByText('Fiche OGC 3').waitFor({ state: 'visible' });
|
||
await expect.soft(page.getByText('Label inaccessible')).not.toBeVisible(); // vérifier que les labels d'accessibilité ne sont pas présents sur les icônes ATIH
|
||
await expect.soft(page.getByText('Aucun DP / DR ou IGC pour ce RUM')).not.toBeVisible(); // vérifier que les données du séjour sont présentes et que ce n'est pas une fiche générique pour les séjours sans DP/DR ou IGC
|
||
|
||
|
||
});
|
||
|
||
test('a) Ajouter/Supprimer un diagnostique', async ({ page }) => {
|
||
// Ajout
|
||
await page.getByTitle('Ajouter des diagnostics').first().click();
|
||
await expect(page.getByRole('heading', { name: 'Ajout de diagnostics' })).toBeVisible();
|
||
|
||
await page.getByRole('textbox', { name: 'Saisir un code ou un mot et cliquer sur entrée pour voir les resultats' }).fill('K850');
|
||
await page.locator('a.IS_button.transparentBackGround i.fa.fa-search').click();
|
||
await expect(page.getByText('K850*PANCREATITE AIG. IDIOP')).toBeVisible();
|
||
await page.getByText('K850*PANCREATITE AIG. IDIOP').click();
|
||
await expect(page.getByTitle('Cliquer pour ajouter ce diagnostic')).toBeVisible();
|
||
await page.getByTitle('Cliquer pour ajouter ce diagnostic').click();
|
||
await expect.soft(page.getByText('DA : K850-PANCREATITE AIG. IDIOP')).toBeVisible();
|
||
|
||
await page.locator('a.IS_icon.IS_FrameCloseButton').last().click();
|
||
await expect(page.getByRole('row', { name: 'K850 Pancreatite Aig.' })).toBeVisible();
|
||
|
||
// Suppression
|
||
await page.getByRole('row', { name: 'K850 Pancreatite Aig.' }).locator('a[title="supprimmer le DA"]').click();
|
||
await expect.soft(page.getByRole('row', { name: 'K850 Pancreatite Aig.' })).not.toBeVisible();
|
||
});
|
||
|
||
test('a) Ajouter/Supprimer un Acte', async ({ page }) => {
|
||
// Ajout
|
||
await page.getByTitle('Ajouter des diagnostics').last().click();
|
||
await expect(page.getByRole('heading', { name: 'Saisie des actes' })).toBeVisible();
|
||
|
||
await page.getByRole('combobox', { name: 'Taper des mots clé' }).fill('Neurochirurgie');
|
||
await expect(page.getByRole('option', { name: 'YYYY189' })).toBeVisible();
|
||
await page.getByRole('option', { name: 'YYYY189' }).click();
|
||
await expect(page.getByTitle('Cliquer pour ajouter ce diagnostic')).toBeVisible();
|
||
await page.getByTitle('Cliquer pour ajouter ce diagnostic').click();
|
||
await expect.soft(page.getByText('YYYY189 Activite 1 ajouté')).toBeVisible();
|
||
await expect.soft(page.locator('a[is_id="0/delete"]')).toBeVisible();
|
||
|
||
await page.locator('a.IS_icon.IS_FrameCloseButton').last().click();
|
||
await expect(page.getByRole('heading', { name: 'Saisie des actes' })).not.toBeVisible();
|
||
await expect(page.getByRole('row', { name: 'YYYY189' })).toBeVisible();
|
||
|
||
// Suppression
|
||
await page.getByText('Prépa', { exact: true }).nth(3).click();
|
||
await page.waitForTimeout(1000);
|
||
await page.getByRole('row', { name: 'YYYY189' }).locator('a[title="supprimmer le DA"]').click();
|
||
await expect.soft(page.getByRole('row', { name: 'YYYY189' })).not.toBeVisible();
|
||
});
|
||
});
|
||
|
||
});
|
||
|
||
test.describe('IV) Suivre le contrôle', () => {
|
||
test.beforeEach(async ({ page }) => {
|
||
// Clic sur l'icone dossier
|
||
const nomEtablissement = await page.getByTitle('Ouvrir 0').textContent();
|
||
const nomEtab = nomEtablissement?.split(' - ').pop()?.trim();
|
||
const annee = "2023"; //await page.locator('span[is_id="1/annee"]').textContent();
|
||
const nbChamps = "5"; //await page.locator('span[is_id="1/nb_champs_controles"]').textContent();
|
||
const phaseDuControle = 'GERER l\'après contrôle';
|
||
|
||
// Clic sur l'icone dossier
|
||
//await expect(page.getByTitle('Ouvrir 0').first()).toBeVisible();
|
||
//await page.getByTitle('Ouvrir 0').first().click();
|
||
|
||
await expect(page.locator('a[is_id*="/Voir"]').last()).toBeVisible();
|
||
await page.locator('a[is_id*="/Voir"]').last().click();
|
||
|
||
//Première arrivée
|
||
const titre = `Contrôle ${nomEtab} ${annee}${nbChamps} Champs contrôlés`;
|
||
//await page.getByText(titre).waitFor({ state: 'visible', timeout: 20000 });
|
||
await page.getByText(`${phaseDuControle}`).waitFor({ state: 'visible'});
|
||
|
||
await page.locator('a').filter({ hasText: 'SUIVRE le contrôle' }).click();
|
||
await expect.soft(page.locator('li.active span').first()).toHaveText('SUIVRE le contrôle');
|
||
|
||
await expect.soft(page.getByText('Synthèse des dossiers')).toBeVisible();
|
||
await expect.soft(page.getByText('Suivi du contrôle')).toBeVisible();
|
||
});
|
||
|
||
test('1- Filtre', async ({ page }) => {
|
||
await page.getByRole('row', { name: 'Déplier pour filtrer' }).locator('a').click();
|
||
|
||
// OGC
|
||
await expect.soft(page.getByText('706 OGC', { exact: true })).toBeVisible();
|
||
await page.getByPlaceholder('Ogc ou Séj').fill('57');
|
||
await page.locator('header, .IS_Container, body').first().click(); //Cliquer en dehors du champ
|
||
await expect.soft(page.getByText('1 OGC', { exact: true }).first()).toBeVisible();
|
||
// Réinitialiser le filtre
|
||
await page.getByPlaceholder('Ogc ou Séj').fill('');
|
||
await page.getByText('Déplier pour filtrer').click(); //Cliquer en dehors du champ
|
||
await expect.soft(page.getByText('706 OGC', { exact: true })).toBeVisible();
|
||
|
||
// Champs
|
||
await page.getByRole('textbox', { name: 'Tous les champs de contrôle' }).click();
|
||
await page.getByRole('row', { name: 'Champ 1', exact: true }).getByRole('cell').click();
|
||
await expect.soft(page.getByText('TotalChamp 1')).toBeVisible();
|
||
await expect.soft(page.getByText('56 OGC', { exact: true }).first()).toBeVisible();
|
||
// Réinitialiser le filtre
|
||
await page.getByRole('textbox', { name: 'Tous les champs de contrôle' }).click();
|
||
await page.getByRole('row', { name: 'Tous les champs', exact: true }).getByRole('cell').click();
|
||
|
||
// Dossiers préparés ou non
|
||
await page.getByRole('textbox', { name: 'Tous les dossiers préparés ou non' }).click();
|
||
await page.getByRole('row', { name: 'Tous les OGC préparés', exact: true }).getByRole('cell').click();
|
||
await expect.soft(page.getByText('699 OGC', { exact: true }).first()).toBeVisible();
|
||
|
||
// Dossiers concertés ou non
|
||
await page.getByRole('textbox', { name: 'Tous les dossiers concertés ou non' }).click();
|
||
await page.getByRole('row', { name: 'OGC Concertés Accord', exact: true }).getByRole('cell').click();
|
||
await expect.soft(page.getByText('552 OGC', { exact: true }).first()).toBeVisible();
|
||
|
||
// Dossier défendable ?
|
||
await page.getByRole('row', { name: 'Dossiers défendables ?' }).locator('a').click();
|
||
//await expect.soft(page.getByRole('cell', { name: '706 séj', exact: true })).toBeVisible();
|
||
|
||
await page.getByText('Rien').click();
|
||
await expect.soft(page.locator('td[is_id="0/choix"] input')).not.toBeChecked();
|
||
await expect.soft(page.locator('td[is_id="1/choix"] input')).not.toBeChecked();
|
||
await expect.soft(page.locator('td[is_id="2/choix"] input')).not.toBeChecked();
|
||
await expect.soft(page.locator('td[is_id="3/choix"] input')).not.toBeChecked();
|
||
|
||
// Cocher A risque
|
||
await page.locator('td[is_id="1/choix"] input').click();
|
||
await expect.soft(page.locator('td[is_id="1/choix"] input')).toBeChecked();
|
||
await expect.soft(page.getByText('Supprimmer les filtres')).toBeVisible();
|
||
|
||
// Tout cocher
|
||
await page.getByText('Tout', { exact: true }).click();
|
||
await expect.soft(page.locator('td[is_id="0/choix"] input')).toBeChecked();
|
||
await expect.soft(page.locator('td[is_id="1/choix"] input')).toBeChecked();
|
||
await expect.soft(page.locator('td[is_id="2/choix"] input')).toBeChecked();
|
||
await expect.soft(page.locator('td[is_id="3/choix"] input')).toBeChecked();
|
||
|
||
// Filtrage UM
|
||
await page.getByRole('row', { name: 'Filtrage UM ...+' }).locator('a').click();
|
||
await expect(page.getByText('Séléctionner un UM dans la liste')).toBeVisible();
|
||
await expect(page.getByRole('textbox', { name: 'Liste des UM' })).toBeVisible();
|
||
|
||
await page.getByRole('textbox', { name: 'Liste des UM' }).click();
|
||
await page.getByRole('cell', { name: '0147' }).click();
|
||
await expect.soft(page.getByRole('cell', { name: '2 OGC', exact: true })).toBeVisible();
|
||
|
||
await page.locator('i.fa.fa-close').click();
|
||
await page.getByRole('cell', { name: '552 OGC', exact: true }).waitFor({ state: 'visible'});
|
||
//await expect.soft(page.getByRole('cell', { name: '552 OGC', exact: true })).toBeVisible();
|
||
|
||
});
|
||
|
||
test.describe('3- Liste des OGC', () => {
|
||
test.beforeEach(async ({ page }, testInfo) => {
|
||
await page.locator('a[is_id^="0/MD R"]').click();
|
||
await page.getByRole('cell', { name: 'Liste des OGC filtrés' }).waitFor({ state: 'visible' });
|
||
});
|
||
|
||
test('a) Exporter la liste', async ({ page }) => {
|
||
const downloadPromise = page.waitForEvent('download');
|
||
await page.getByText('Exporter La liste des OGC').click();
|
||
await page.waitForTimeout(3000); // attente du téléchargement
|
||
//tester si le nom du fichier est correct
|
||
const download = await downloadPromise;
|
||
const suggestedName = download.suggestedFilename();
|
||
expect.soft(suggestedName).toBe('Liste_OGC_Selectionnés_PENDANT.xlsx');
|
||
// Enregistrer le fichier
|
||
await download.saveAs('downloads/' + suggestedName);
|
||
});
|
||
|
||
test('b) Exporter les argumentaires', async ({ page }) => {
|
||
const downloadPromise = page.waitForEvent('download');
|
||
await page.getByText('Exporter les argumentaires').click();
|
||
await expect.soft(page.getByRole('heading', { name: 'Fichiers Argumentaires' })).toBeVisible();
|
||
await page.getByText('Oui', { exact: true }).click();
|
||
await page.waitForTimeout(3000); // attente du téléchargement
|
||
//tester si le nom du fichier est correct
|
||
const download = await downloadPromise;
|
||
const suggestedName = download.suggestedFilename();
|
||
expect.soft(suggestedName).toContain('Argufiles_');
|
||
expect.soft(suggestedName).toContain('.zip');
|
||
// Enregistrer le fichier
|
||
await download.saveAs('downloads/' + suggestedName);
|
||
});
|
||
|
||
test('c) Ouvrir les argumentaires', async ({ page }) => {
|
||
await page.locator('Div[style="top:0px"] div.l0.r0 a').first().click();
|
||
await page.getByRole('heading', { name: 'OGC : 17 - Séjour' }).waitFor({ state: 'visible'});
|
||
await expect.soft(page.getByText('ARGUMENTAIRES OGC ')).toBeVisible();
|
||
// Télécharger les argumentaires
|
||
//const downloadPromise = page.waitForEvent('download');
|
||
//await page.getByText('Exporter les argumentaires').nth(1).click();
|
||
//const download = await downloadPromise;
|
||
//const suggestedName = download.suggestedFilename();
|
||
//expect.soft(suggestedName).toContain('ExportArgu.html');
|
||
// Enregistrer le fichier
|
||
//await download.saveAs('downloads/' + suggestedName);
|
||
|
||
// Memo
|
||
await page.getByText('Mémo').nth(1).click();
|
||
await expect.soft(page.getByRole('heading', { name: 'Mémo', exact: true })).toBeVisible();
|
||
await page.locator('a.IS_icon.IS_FrameCloseButton').nth(1).click();
|
||
|
||
// Recherche de saisines
|
||
await page.getByText('Recherche de saisines').click();
|
||
await expect.soft(page.getByRole('textbox', { name: 'Rechercher un code ou un terme' })).toBeVisible();
|
||
await expect.soft(page.getByText('Saisines :')).toBeVisible();
|
||
await expect.soft(page.getByText('Agora : ')).toBeVisible();
|
||
await page.getByRole('textbox', { name: 'Rechercher un code ou un terme' }).fill('transfusion');
|
||
await page.getByTitle('Rechercher', { exact: true }).click();
|
||
await expect.soft(page.getByText('Saisines :')).toBeVisible();
|
||
await expect.soft(page.getByText('Agora :')).toBeVisible();
|
||
await expect.soft(page.getByText('Transfusion sanguine en DAS')).toBeVisible();
|
||
await page.getByText('Transfusion sanguine en DAS').click();
|
||
await expect.soft(page.getByText('transfusion sanguine en DAS').nth(1)).toBeVisible();
|
||
await expect.soft(page.getByText('Un dossier concerne un')).toBeVisible();
|
||
|
||
// Agora
|
||
await page.getByText('Agora :').click();
|
||
await expect.soft(page.getByText(' sujets trouvés sur Agora')).toBeVisible();
|
||
await expect.soft(page.locator('td[is_id="34/titre"]')).toBeVisible();
|
||
await page.getByText('Patient avec anémie traitée par transfusion : choix du DP (8 occurences)').click();
|
||
await expect.soft(page.getByText('Patient avec anémie traitée par transfusion : choix du DP', { exact: true })).toBeVisible();
|
||
await expect.soft(page.getByText('Source : Agora, sujet N°')).toBeVisible();
|
||
await page.getByRole('link', { name: '53310' }).click();
|
||
const [newPage] = await Promise.all([
|
||
page.waitForEvent('popup'),
|
||
page.getByRole('link', { name: '53310' }).click()
|
||
]);
|
||
|
||
await newPage.waitForLoadState();
|
||
|
||
await expect(newPage).toHaveURL(/connect-pasrel\.atih\.sante\.fr\/cas\/login/);
|
||
|
||
// Recherche de Diags ou Actes
|
||
await page.getByText('Recherche de Diags ou Actes').click();
|
||
await expect.soft(page.getByText('Recherche de code')).toBeVisible();
|
||
await expect.soft(page.getByRole('combobox', { name: 'Saisir un code ou un mot clé' })).toBeVisible();
|
||
await page.getByRole('combobox', { name: 'Saisir un code ou un mot clé' }).fill('K8');
|
||
await expect.soft(page.getByRole('option', { name: 'K803 - CALCUL DES CANAUX BIL. AVEC ANGIOCHOLITE' })).toBeVisible();
|
||
await page.getByRole('option', { name: 'K803 - CALCUL DES CANAUX BIL. AVEC ANGIOCHOLITE' }).click();
|
||
|
||
// changement d'onglet
|
||
await expect.soft(page.locator('ul.IS_hmenu li a.active')).toHaveText('Résumé cas clinique');
|
||
await page.getByText('DIM Argumentaire').click();
|
||
await expect.soft(page.locator('ul.IS_hmenu li a.active')).toHaveText('DIM Argumentaire');
|
||
await page.getByText('Contrôleur Argumentaire').click();
|
||
await expect.soft(page.locator('ul.IS_hmenu li a.active')).toHaveText('Contrôleur Argumentaire');
|
||
|
||
await page.locator('a.IS_icon.IS_FrameCloseButton.hideCloseButton.hideCloseButton').click();
|
||
await expect.soft(page.locator('Div[style="top:0px"] div.l0.r0 a').first()).toHaveAttribute('title', 'Des argumentaires et un mémo ont été saisis');
|
||
});
|
||
|
||
test('d) Documments justificatifs', async ({ page }) => {
|
||
await page.locator('Div[style="top:0px"] div.l1.r1 a').first().click();
|
||
await expect(page.getByText('Documents Justificatifs', { exact: true })).toBeVisible();
|
||
await expect.soft(page.getByText('Seuls les documents PDF sont affichables')).toBeVisible();
|
||
|
||
//await page.getByTitle('Télécharger un scan').click();
|
||
//await expect.soft(page.getByRole('heading', { name: 'Télécharger des documents PDF' })).toBeVisible();
|
||
|
||
//await page.getByRole('row', { name: 'Télécharger des documents PDF' }).locator('a').click();
|
||
//await expect.soft(page.getByRole('heading', { name: 'Télécharger des documents PDF' })).not.toBeVisible();
|
||
|
||
await page.locator('i.fa.fa-folder').first().click();
|
||
await expect.soft(page.locator('ul.active li')).toBeVisible();
|
||
await page.locator('ul.active li').click();
|
||
// Version originale
|
||
await expect(page.getByRole('heading', { name: '.pdf' })).toBeVisible();
|
||
await expect.soft(page.locator('nav ul.IS_hmenu li a.active')).toHaveText('Version originale');
|
||
|
||
// Télecharger le justificatif original
|
||
const downloadPromise = page.waitForEvent('download');
|
||
await page.getByTitle('Télécharger la version').click();
|
||
const download = await downloadPromise;
|
||
const suggestedName = download.suggestedFilename();
|
||
expect.soft(suggestedName).toContain('.pdf');
|
||
// Enregistrer le fichier
|
||
await download.saveAs('downloads/' + suggestedName);
|
||
|
||
// Version modifiée
|
||
await page.getByText('Version modifiée').click();
|
||
await expect.soft(page.locator('nav ul.IS_hmenu li a.active')).toContainText('Version modifiée');
|
||
|
||
//Défiler entre les pages
|
||
await page.getByRole('cell', { name: 'Page 1' }).locator('a').click();
|
||
await page.waitForTimeout(1000); // attendre le chargement
|
||
//if (await page.getByRole('cell', { name: 'Page 2' }).first().isVisible()) {
|
||
await page.getByRole('cell', { name: 'Page 2' }).first().click();
|
||
|
||
//}
|
||
await expect.soft(page.getByRole('cell', { name: 'Page 2' })).toBeVisible();
|
||
// Retour à la page 1 avec la flèche gauche
|
||
await page.getByTitle('Page précédente').click();
|
||
await expect.soft(page.getByRole('cell', { name: 'Page 1' })).toBeVisible();
|
||
|
||
|
||
// Télecharger le justificatif modifié
|
||
const downloadPromiseModif = page.waitForEvent('download');
|
||
await page.getByTitle('Télécharger la version').click();
|
||
const downloadModif = await downloadPromiseModif;
|
||
const suggestedNameModif = downloadModif.suggestedFilename();
|
||
expect.soft(suggestedNameModif).toContain('modif.pdf');
|
||
// Enregistrer le fichier
|
||
await downloadModif.saveAs('downloads/' + suggestedNameModif);
|
||
|
||
await page.locator('a.IS_icon.IS_FrameCloseButton').last().click();
|
||
await expect(page.getByRole('heading', { name: '.pdf' })).not.toBeVisible();
|
||
await page.locator('a.IS_icon.IS_FrameCloseButton').last().click();
|
||
await expect.soft(page.getByText('Documents Justificatifs', { exact: true })).not.toBeVisible();
|
||
|
||
});
|
||
|
||
test.describe('e) Fiche OGC', () => {
|
||
test.beforeEach(async ({ page }) => {
|
||
await page.locator('div[style="top:0px"] div.l2.r2 span').click();
|
||
await page.getByText('Fiche OGC').waitFor({ state: 'visible' });
|
||
await expect.soft(page.getByText('Label inaccessible')).not.toBeVisible(); // vérifier que les labels d'accessibilité ne sont pas présents sur les icônes ATIH
|
||
await expect.soft(page.getByText('Aucun DP / DR ou IGC pour ce RUM')).not.toBeVisible(); // vérifier que les données du séjour sont présentes et que ce n'est pas une fiche générique pour les séjours sans DP/DR ou IGC
|
||
|
||
await expect.soft(page.locator('a[is_id="0/PMD"]').first()).toBeVisible();
|
||
await expect.soft(page.locator('a[is_id="0/MC"]').first()).toBeVisible();
|
||
await expect.soft(page.locator('a[is_id="0/MD"]').first()).toBeVisible();
|
||
await expect.soft(page.locator('a[is_id="0/CC"]').first()).toBeVisible();
|
||
});
|
||
|
||
test('i) Contrôleur', async ({ page }) => {
|
||
// Recopie l'ensemble du codage de la prepa
|
||
await expect.soft(page.getByRole('cell', { name: '07C131' }).nth(2)).toBeVisible();
|
||
await expect.soft(page.getByRole('cell', { name: '2347' }).nth(2)).toBeVisible();
|
||
await expect.soft(page.getByRole('cell', { name: '3 261 €' }).nth(2)).toBeVisible();
|
||
await expect.soft(page.getByRole('cell', { name: '-1 545 €' }).nth(2)).toBeVisible();
|
||
await page.getByTitle('Recopie l\'ensemble du codage de la PREPA (tout rum)').click();
|
||
await expect.soft(page.locator('td[is_id="1/MC"] i.fa.fa-check').first()).toBeVisible();
|
||
await expect.soft(page.locator('td[is_id="2/MC"] i.fa.fa-check').first()).toBeVisible();
|
||
await expect.soft(page.locator('td[is_id="3/MC"] i.fa.fa-check').first()).toBeVisible();
|
||
await expect.soft(page.locator('td[is_id="4/MC"] i.fa.fa-check').first()).toBeVisible();
|
||
await expect.soft(page.getByRole('cell', { name: '0 €' }).nth(4)).toBeVisible();
|
||
|
||
// Recopie l'ensemble du codage de l'etab
|
||
await page.getByTitle('Recopie l\'ensemble du codage de l\'ETAB (tout rum)').click();
|
||
await expect.soft(page.locator('td[is_id="0/MC"] i.fa.fa-check').first()).toBeVisible();
|
||
|
||
// Ajout Diagnostic
|
||
await page.getByTitle('Ajouter des diagnostic', { exact: true }).nth(1).click();
|
||
await expect(page.getByRole('heading', { name: 'Ajout de diagnostics' })).toBeVisible();
|
||
|
||
await page.getByRole('textbox', { name: 'Saisir un code ou un mot et cliquer sur entrée pour voir les resultats' }).fill('K850');
|
||
await page.locator('a.IS_button.transparentBackGround i.fa.fa-search').click();
|
||
await expect(page.getByText('K850*PANCREATITE AIG. IDIOP')).toBeVisible();
|
||
await page.getByText('K850*PANCREATITE AIG. IDIOP').click();
|
||
await expect(page.getByTitle('Cliquer pour ajouter ce diagnostic')).toBeVisible();
|
||
await page.getByTitle('Cliquer pour ajouter ce diagnostic').click();
|
||
await expect.soft(page.getByText('DA : K850-PANCREATITE AIG. IDIOP')).toBeVisible();
|
||
|
||
await page.locator('a.IS_icon.IS_FrameCloseButton').last().click();
|
||
await expect(page.getByRole('row', { name: 'K850 Pancreatite Aig.' })).toBeVisible();
|
||
|
||
// Suppression
|
||
await page.getByRole('row', { name: 'K850 Pancreatite Aig.' }).locator('i.fa.fa-trash').nth(1).click();
|
||
await expect.soft(page.getByRole('row', { name: 'K850 Pancreatite Aig.' })).not.toBeVisible();
|
||
|
||
// Ajout Acte
|
||
await page.getByTitle('Ajouter des diagnostic', { exact: true }).nth(3).click();
|
||
await expect(page.getByRole('heading', { name: 'Saisie des actes' })).toBeVisible();
|
||
|
||
await page.getByRole('combobox', { name: 'Taper des mots clé' }).fill('Neurochirurgie');
|
||
await expect(page.getByRole('option', { name: 'YYYY189' })).toBeVisible();
|
||
await page.getByRole('option', { name: 'YYYY189' }).click();
|
||
await expect(page.getByTitle('Cliquer pour ajouter ce diagnostic')).toBeVisible();
|
||
await page.getByTitle('Cliquer pour ajouter ce diagnostic').click();
|
||
await expect.soft(page.getByText('YYYY189 Activite 1 ajouté')).toBeVisible();
|
||
await expect.soft(page.locator('a[is_id="0/delete"]')).toBeVisible();
|
||
|
||
await page.locator('a.IS_icon.IS_FrameCloseButton').last().click();
|
||
await expect(page.getByRole('heading', { name: 'Saisie des actes' })).not.toBeVisible();
|
||
await expect(page.getByRole('row', { name: 'YYYY189' })).toBeVisible();
|
||
|
||
// Suppression
|
||
await page.getByText('Contrôleur', { exact: true }).nth(3).click();
|
||
await page.waitForTimeout(1000);
|
||
await page.locator('a[is_id="0/MC_del"]').nth(6).click();
|
||
await expect.soft(page.getByRole('row', { name: 'YYYY189' })).not.toBeVisible();
|
||
|
||
// Argumentaire
|
||
await page.locator('a[is_id="0/MC"] i.fa.fa-Commenting').click();
|
||
await page.getByRole('heading', { name: 'Saisie et visualisation des argumentaires' }).waitFor({ state: 'visible' });
|
||
await expect.soft(page.locator('ul.IS_hmenu li a.active')).toHaveText(/Contrôleur\s*ARGUMENTAIRE/i);
|
||
// Quitter
|
||
//await page.getByText('Quitter La page Argumentaires').click();
|
||
await page.locator('a.IS_icon.IS_FrameCloseButton').last().click();
|
||
await expect.soft(page.getByRole('heading', { name: 'Saisie et visualisation des argumentaires' })).not.toBeVisible();
|
||
|
||
});
|
||
|
||
test('ii) DIM', async ({ page }) => {
|
||
// Recopie l'ensemble du codage du medecin controleur
|
||
await expect.soft(page.getByRole('cell', { name: '07C133', exact: true })).toBeVisible();
|
||
await expect.soft(page.getByRole('cell', { name: '2349', exact: true })).toBeVisible();
|
||
await expect.soft(page.getByRole('cell', { name: '6 977 €'}).nth(2)).toBeVisible();
|
||
await expect.soft(page.getByRole('cell', { name: '2 171 €'}).nth(2)).toBeVisible();
|
||
await page.getByTitle('Recopie l\'ensemble du codage du Médecin contrôleur(tout rum)').click();
|
||
await expect.soft(page.getByRole('cell', { name: '07C131' }).nth(3)).toBeVisible();
|
||
await expect.soft(page.getByRole('cell', { name: '2347' }).nth(3)).toBeVisible();
|
||
await expect.soft(page.getByRole('cell', { name: '3 261 €' }).nth(3)).toBeVisible();
|
||
await expect.soft(page.getByRole('cell', { name: '-1 545 €' }).nth(3)).toBeVisible();
|
||
|
||
// Recopie l'ensemble du codage de la prepa
|
||
await page.getByTitle('recopie l\'ensemble du codage de la préparation(tout rum)').click();
|
||
await expect.soft(page.locator('td[is_id="1/MD"] i.fa.fa-check').first()).toBeVisible();
|
||
await expect.soft(page.locator('td[is_id="2/MD"] i.fa.fa-check').first()).toBeVisible();
|
||
await expect.soft(page.locator('td[is_id="3/MD"] i.fa.fa-check').first()).toBeVisible();
|
||
await expect.soft(page.locator('td[is_id="4/MD"] i.fa.fa-check').first()).toBeVisible();
|
||
await expect.soft(page.getByRole('cell', { name: '0 €' }).nth(4)).toBeVisible();
|
||
|
||
// Ajout Diagnostic
|
||
await page.getByTitle('Ajouter des diagnostics').nth(2).click();
|
||
await expect(page.getByRole('heading', { name: 'Ajout de diagnostics' })).toBeVisible();
|
||
|
||
await page.getByRole('textbox', { name: 'Saisir un code ou un mot et cliquer sur entrée pour voir les resultats' }).fill('K850');
|
||
await page.locator('a.IS_button.transparentBackGround i.fa.fa-search').click();
|
||
await expect(page.getByText('K850*PANCREATITE AIG. IDIOP')).toBeVisible();
|
||
await page.getByText('K850*PANCREATITE AIG. IDIOP').click();
|
||
await expect(page.getByTitle('Cliquer pour ajouter ce diagnostic')).toBeVisible();
|
||
await page.getByTitle('Cliquer pour ajouter ce diagnostic').click();
|
||
await expect.soft(page.getByText('DA : K850-PANCREATITE AIG. IDIOP')).toBeVisible();
|
||
|
||
await page.locator('a.IS_icon.IS_FrameCloseButton').last().click();
|
||
await expect(page.getByRole('row', { name: 'K850 Pancreatite Aig.' })).toBeVisible();
|
||
|
||
// Suppression
|
||
await page.getByRole('row', { name: 'K850 Pancreatite Aig.' }).locator('i.fa.fa-trash').nth(1).click();
|
||
await expect.soft(page.getByRole('row', { name: 'K850 Pancreatite Aig.' })).not.toBeVisible();
|
||
|
||
// Ajout Acte
|
||
await page.getByTitle('Ajouter des diagnostics').nth(4).click();
|
||
await expect(page.getByRole('heading', { name: 'Saisie des actes' })).toBeVisible();
|
||
|
||
await page.getByRole('combobox', { name: 'Taper des mots clé' }).fill('Neurochirurgie');
|
||
await expect(page.getByRole('option', { name: 'YYYY189' })).toBeVisible();
|
||
await page.getByRole('option', { name: 'YYYY189' }).click();
|
||
await expect(page.getByTitle('Cliquer pour ajouter ce diagnostic')).toBeVisible();
|
||
await page.getByTitle('Cliquer pour ajouter ce diagnostic').click();
|
||
await expect.soft(page.getByText('YYYY189 Activite 1 ajouté')).toBeVisible();
|
||
await expect.soft(page.locator('a[is_id="0/delete"]')).toBeVisible();
|
||
|
||
await page.locator('a.IS_icon.IS_FrameCloseButton').last().click();
|
||
await expect(page.getByRole('heading', { name: 'Saisie des actes' })).not.toBeVisible();
|
||
await expect(page.getByRole('row', { name: 'YYYY189' })).toBeVisible();
|
||
|
||
// Suppression
|
||
await page.getByText('DIM', { exact: true }).nth(5).click();
|
||
await page.waitForTimeout(1000);
|
||
await page.locator('a[is_id="0/MD_del"]').nth(6).click();
|
||
await expect.soft(page.getByRole('row', { name: 'YYYY189' })).not.toBeVisible();
|
||
|
||
// Argumentaire
|
||
// DIM
|
||
await page.locator('a[is_id="0/MD"] i.fa.fa-Commenting').click();
|
||
await page.getByRole('heading', { name: 'Saisie et visualisation des argumentaires' }).waitFor({ state: 'visible' });
|
||
await expect.soft(page.locator('ul.IS_hmenu li a.active')).toHaveText(/DIM\s*ARGUMENTAIRE/i);
|
||
// Quitter
|
||
//await page.getByText('Quitter La page Argumentaires').click();
|
||
await page.locator('a.IS_icon.IS_FrameCloseButton').last().click();
|
||
await expect.soft(page.getByRole('heading', { name: 'Saisie et visualisation des argumentaires' })).not.toBeVisible();
|
||
|
||
});
|
||
|
||
test('iii) Concertation', async ({ page }) => {
|
||
// Recopie l'ensemble du codage du medecin controleur
|
||
await expect.soft(page.getByRole('cell', { name: '07C131' }).nth(3)).toBeVisible();
|
||
await expect.soft(page.getByRole('cell', { name: '2347' }).nth(3)).toBeVisible();
|
||
await expect.soft(page.getByRole('cell', { name: '3 261' }).nth(3)).toBeVisible();
|
||
await expect.soft(page.getByRole('cell', { name: '-1 545 €' }).nth(3)).toBeVisible();
|
||
// Recopie l'ensemble du codage du DIM
|
||
await page.getByTitle('Recopie l\'ensemble du codage du DIM(tout rum)').click();
|
||
await expect.soft(page.getByRole('cell', { name: '07C133', exact: true }).nth(1)).toBeVisible();
|
||
await expect.soft(page.getByRole('cell', { name: '2349', exact: true }).nth(1)).toBeVisible();
|
||
await expect.soft(page.getByRole('cell', { name: '6 977 €'}).nth(3)).toBeVisible();
|
||
await expect.soft(page.getByRole('cell', { name: '2 171 €'}).nth(3)).toBeVisible();
|
||
|
||
// Recopie l'ensemble du codage du controleur
|
||
await page.getByTitle('recopie l\'ensemble du codage du MEDECIN CONTRÔLEUR(tout rum)').click();
|
||
await expect.soft(page.getByRole('cell', { name: '07C131' }).nth(3)).toBeVisible();
|
||
await expect.soft(page.getByRole('cell', { name: '2347' }).nth(3)).toBeVisible();
|
||
await expect.soft(page.getByRole('cell', { name: '3 261 €' }).nth(3)).toBeVisible();
|
||
await expect.soft(page.getByRole('cell', { name: '-1 545 €' }).nth(3)).toBeVisible();
|
||
|
||
// Ajout Diagnostic
|
||
await page.getByTitle('Ajouter des diagnostic', { exact: true }).nth(2).click();
|
||
await expect(page.getByRole('heading', { name: 'Ajout de diagnostics' })).toBeVisible();
|
||
|
||
await page.getByRole('textbox', { name: 'Saisir un code ou un mot et cliquer sur entrée pour voir les resultats' }).fill('K850');
|
||
await page.locator('a.IS_button.transparentBackGround i.fa.fa-search').click();
|
||
await expect(page.getByText('K850*PANCREATITE AIG. IDIOP')).toBeVisible();
|
||
await page.getByText('K850*PANCREATITE AIG. IDIOP').click();
|
||
await expect(page.getByTitle('Cliquer pour ajouter ce diagnostic')).toBeVisible();
|
||
await page.getByTitle('Cliquer pour ajouter ce diagnostic').click();
|
||
await expect.soft(page.getByText('DA : K850-PANCREATITE AIG. IDIOP')).toBeVisible();
|
||
|
||
await page.locator('a.IS_icon.IS_FrameCloseButton').last().click();
|
||
await expect(page.getByRole('row', { name: 'K850 Pancreatite Aig.' })).toBeVisible();
|
||
|
||
// Suppression
|
||
await page.getByRole('row', { name: 'K850 Pancreatite Aig.' }).locator('i.fa.fa-trash').nth(2).click();
|
||
await expect.soft(page.getByRole('row', { name: 'K850 Pancreatite Aig.' })).not.toBeVisible();
|
||
|
||
// Ajout Acte
|
||
await page.getByTitle('Ajouter des actes').nth(1).click();
|
||
await expect(page.getByRole('heading', { name: 'Saisie des actes' })).toBeVisible();
|
||
|
||
await page.getByRole('combobox', { name: 'Taper des mots clé' }).fill('Neurochirurgie');
|
||
await expect(page.getByRole('option', { name: 'YYYY189' })).toBeVisible();
|
||
await page.getByRole('option', { name: 'YYYY189' }).click();
|
||
await expect(page.getByTitle('Cliquer pour ajouter ce diagnostic')).toBeVisible();
|
||
await page.getByTitle('Cliquer pour ajouter ce diagnostic').click();
|
||
await expect.soft(page.getByText('YYYY189 Activite 1 ajouté')).toBeVisible();
|
||
await expect.soft(page.locator('a[is_id="0/delete"]')).toBeVisible();
|
||
|
||
await page.locator('a.IS_icon.IS_FrameCloseButton').last().click();
|
||
await expect(page.getByRole('heading', { name: 'Saisie des actes' })).not.toBeVisible();
|
||
await expect(page.getByRole('row', { name: 'YYYY189' })).toBeVisible();
|
||
|
||
// Suppression
|
||
await page.getByText('Concertation').nth(10).click();
|
||
await page.waitForTimeout(1000);
|
||
await page.getByRole('row', { name: '24/05/2023 1 acte YYYY189 R' }).locator('a').nth(3).click();
|
||
await expect.soft(page.getByRole('row', { name: 'YYYY189' })).not.toBeVisible();
|
||
|
||
});
|
||
});
|
||
|
||
});
|
||
});
|
||
/*
|
||
test.describe('V) Gérer l\'après contrôle', () => {
|
||
test.beforeEach(async ({ page }) => {
|
||
// Clic sur l'icone dossier
|
||
const nomEtablissement = await page.getByTitle('Ouvrir 0').textContent();
|
||
const nomEtab = nomEtablissement?.split(' - ').pop()?.trim();
|
||
const annee = "2023"; //await page.locator('span[is_id="1/annee"]').textContent();
|
||
const nbChamps = "5"; //await page.locator('span[is_id="1/nb_champs_controles"]').textContent();
|
||
const phaseDuControle = 'GERER l\'après contrôle';
|
||
|
||
// Clic sur l'icone dossier
|
||
//await expect(page.getByTitle('Ouvrir 0').first()).toBeVisible();
|
||
//await page.getByTitle('Ouvrir 0').first().click();
|
||
|
||
await expect(page.locator('a[is_id*="/Voir"]').last()).toBeVisible();
|
||
await page.locator('a[is_id*="/Voir"]').last().click();
|
||
|
||
//Première arrivée
|
||
const titre = `Contrôle ${nomEtab} ${annee}${nbChamps} Champs contrôlés`;
|
||
//await page.getByText(titre).waitFor({ state: 'visible', timeout: 20000 });
|
||
await page.getByText(`${phaseDuControle}`).waitFor({ state: 'visible'});
|
||
|
||
//await page.locator('a').filter({ hasText: 'GERER l\'après contrôle' }).click();
|
||
await expect.soft(page.locator('li.active span').first()).toHaveText('GERER l\'après contrôle');
|
||
|
||
await expect.soft(page.getByText('Suivi et actions post concertation')).toBeVisible();
|
||
await expect.soft(page.getByText('Synthèse des indus')).toBeVisible();
|
||
|
||
await expect.soft(page.locator('a.active').nth(1)).toHaveText('Vue d\'ensemble');
|
||
});
|
||
|
||
test.describe('1- UCR', () => {
|
||
test.beforeEach(async ({ page }, testInfo) => {
|
||
await page.getByText('UCR', { exact: true }).click();
|
||
await expect.soft(page.locator('a.active').nth(1)).toHaveText('UCR');
|
||
await expect.soft(page.locator('a.IS_Tab_WithCloseButton.active').last()).toHaveText('Préparer l\'Envoi UCR');
|
||
|
||
});
|
||
|
||
test.describe('a) Préparer l\'Envoi UCR', () => {
|
||
test('i) Filtre', async ({ page }) => {
|
||
// Tour désélectionner
|
||
await page.getByText('Désélectionner tout').click();
|
||
await expect.soft(page.locator('div.l0.r0 input').first()).not.toBeChecked();
|
||
await expect.soft(page.locator('div.l0.r0 input').nth(1)).not.toBeChecked();
|
||
await expect.soft(page.locator('div.l0.r0 input').nth(2)).not.toBeChecked();
|
||
|
||
// Cocher les désaccords
|
||
await page.getByText('Cocher les dossiers en désaccords').click();
|
||
await expect.soft(page.locator('div.l0.r0 input').first()).toBeChecked();
|
||
await expect.soft(page.locator('div.l0.r0 input').nth(1)).toBeChecked();
|
||
await expect.soft(page.locator('div.l0.r0 input').nth(2)).toBeChecked();
|
||
|
||
// Télécharger le document UCR
|
||
const downloadPromise = page.waitForEvent('download');
|
||
await page.getByText('Générer le document pour UCR').click();
|
||
const download = await downloadPromise;
|
||
const suggestedName = download.suggestedFilename();
|
||
expect.soft(suggestedName).toContain('DocumentPourUCR.html');
|
||
// Enregistrer le fichier
|
||
await download.saveAs('downloads/' + suggestedName);
|
||
|
||
});
|
||
|
||
test.describe('e) Fiche OGC', () => {
|
||
test.beforeEach(async ({ page }) => {
|
||
await page.locator('div.l1.r1').nth(1).click();
|
||
await page.getByText('Fiche OGC').waitFor({ state: 'visible' });
|
||
await expect.soft(page.getByText('Label inaccessible')).not.toBeVisible(); // vérifier que les labels d'accessibilité ne sont pas présents sur les icônes ATIH
|
||
await expect.soft(page.getByText('Aucun DP / DR ou IGC pour ce RUM')).not.toBeVisible(); // vérifier que les données du séjour sont présentes et que ce n'est pas une fiche générique pour les séjours sans DP/DR ou IGC
|
||
|
||
await expect.soft(page.locator('a[is_id="0/MD"]').first()).toBeVisible();
|
||
await expect.soft(page.locator('a[is_id="0/CC"]').first()).toBeVisible();
|
||
await expect.soft(page.locator('a[is_id="0/UCR"]').first()).toBeVisible();
|
||
await expect.soft(page.locator('a[is_id="0/ATIH"]').first()).toBeVisible();
|
||
});
|
||
|
||
test('i) UCR', async ({ page }) => {
|
||
// Recopie l'ensemble du codage du DIM
|
||
await expect.soft(page.getByRole('cell', { name: '07C141', exact: true }).nth(1)).toBeVisible();
|
||
await expect.soft(page.getByRole('cell', { name: '2351', exact: true }).nth(1)).toBeVisible();
|
||
await expect.soft(page.getByRole('cell', { name: '2 575 €' }).nth(3)).toBeVisible();
|
||
await expect.soft(page.getByRole('cell', { name: '-802 €' }).nth(3)).toBeVisible();
|
||
await page.getByTitle('Recopie l\'ensemble du codage DIM(tout rum)').first().click();
|
||
await expect.soft(page.locator('td[is_id="1/UCR"] i.fa.fa-check')).toBeVisible();
|
||
await expect.soft(page.locator('td[is_id="2/UCR"] i.fa.fa-check')).toBeVisible();
|
||
await expect.soft(page.locator('td[is_id="3/UCR"] i.fa.fa-check')).toBeVisible();
|
||
await expect.soft(page.locator('td[is_id="4/UCR"] i.fa.fa-check')).toBeVisible();
|
||
await expect.soft(page.getByRole('cell', { name: '0 €' }).nth(5)).toBeVisible();
|
||
|
||
// Recopie l'ensemble du codage de la concertation
|
||
await page.getByTitle('recopie l\'ensemble du codage de la CONCERTATION(tout rum)').first().click();
|
||
await expect.soft(page.getByRole('cell', { name: '07C141', exact: true }).nth(1)).toBeVisible();
|
||
await expect.soft(page.getByRole('cell', { name: '2351', exact: true }).nth(1)).toBeVisible();
|
||
await expect.soft(page.getByRole('cell', { name: '2 575 €' }).nth(3)).toBeVisible();
|
||
await expect.soft(page.getByRole('cell', { name: '-802 €' }).nth(3)).toBeVisible();
|
||
});
|
||
|
||
test('ii) ATIH', async ({ page }) => {
|
||
// Recopie l'ensemble du codage du DIM
|
||
//await expect.soft(page.locator('td[is_id="1/ATIH"] i.fa.fa-check')).toBeVisible();
|
||
//await expect.soft(page.locator('td[is_id="2/ATIH"] i.fa.fa-check')).toBeVisible();
|
||
//await expect.soft(page.locator('td[is_id="3/ATIH"] i.fa.fa-check')).toBeVisible();
|
||
//await expect.soft(page.locator('td[is_id="4/ATIH"] i.fa.fa-check')).toBeVisible();
|
||
//await page.getByTitle('recopie l\'ensemble du codage DIM(tout rum)').nth(1).click();
|
||
//await expect.soft(page.getByRole('cell', { name: '0 €' }).nth(5)).toBeVisible();
|
||
// Recopie l'ensemble du codage de la concertation
|
||
await page.getByTitle('recopie l\'ensemble du codage de la CONCERTATION(tout rum)').nth(1).click();
|
||
await expect.soft(page.getByRole('cell', { name: '07C141', exact: true }).nth(2)).toBeVisible();
|
||
await expect.soft(page.getByRole('cell', { name: '2351', exact: true }).nth(2)).toBeVisible();
|
||
await expect.soft(page.getByRole('cell', { name: '2 575 €' }).nth(4)).toBeVisible();
|
||
await expect.soft(page.getByRole('cell', { name: '-802 €' }).nth(4)).toBeVisible();
|
||
|
||
});
|
||
|
||
});
|
||
|
||
test('ii) Justificatifs', async ({ page }) => {
|
||
// Tour désélectionner
|
||
await page.getByText('Désélectionner tout').click();
|
||
await page.waitForTimeout(1000);
|
||
await page.getByText('Voir ou ajouterJustifs').click(); // Trier
|
||
await page.locator('div.l2.r2 a').first().click();
|
||
await expect.soft(page.getByRole('heading', { name: 'Documents & Justificatifs OGC' })).toBeVisible();
|
||
|
||
await page.locator('i.fa.fa-folder').first().click();
|
||
await expect.soft(page.locator('ul.active li')).toBeVisible();
|
||
await page.locator('ul.active li').click();
|
||
// Version originale
|
||
await expect.soft(page.getByRole('heading', { name: '.pdf' })).toBeVisible();
|
||
await expect.soft(page.locator('nav ul.IS_hmenu li a.active')).toHaveText('Version originale');
|
||
|
||
// Télecharger le justificatif original
|
||
const downloadPromise = page.waitForEvent('download');
|
||
await page.getByTitle('Télécharger la version').click();
|
||
const download = await downloadPromise;
|
||
const suggestedName = download.suggestedFilename();
|
||
expect.soft(suggestedName).toContain('.pdf');
|
||
// Enregistrer le fichier
|
||
await download.saveAs('downloads/' + suggestedName);
|
||
|
||
// Version modifiée
|
||
await page.getByText('Version modifiée').click();
|
||
await expect.soft(page.locator('nav ul.IS_hmenu li a.active')).toContainText('Version modifiée');
|
||
|
||
//Défiler entre les pages
|
||
await page.getByRole('cell', { name: 'Page 1' }).locator('a').click();
|
||
await page.waitForTimeout(1000); // attendre le chargement
|
||
if (await page.getByRole('cell', { name: 'Page 2' }).first().isVisible()) {
|
||
await page.getByRole('cell', { name: 'Page 2' }).first().click();
|
||
}
|
||
await expect.soft(page.getByRole('cell', { name: 'Page 2' })).toBeVisible();
|
||
// Retour à la page 1 avec la flèche gauche
|
||
await page.getByTitle('Page précédente').click();
|
||
await expect.soft(page.getByRole('cell', { name: 'Page 1' })).toBeVisible();
|
||
|
||
|
||
// Télecharger le justificatif modifié
|
||
const downloadPromiseModif = page.waitForEvent('download');
|
||
await page.getByTitle('Télécharger la version').click();
|
||
const downloadModif = await downloadPromiseModif;
|
||
const suggestedNameModif = downloadModif.suggestedFilename();
|
||
expect.soft(suggestedNameModif).toContain('modif.pdf');
|
||
// Enregistrer le fichier
|
||
await downloadModif.saveAs('downloads/' + suggestedNameModif);
|
||
|
||
});
|
||
|
||
test('iii) Argumentaires', async ({ page }) => {
|
||
await page.locator('div.l3.r3 a').first().click();
|
||
await expect(page.getByText('ARGUMENTAIRES OGC')).toBeVisible();
|
||
// Télécharger les argumentaires
|
||
const downloadPromise = page.waitForEvent('download');
|
||
await page.getByText('Exporter les argumentaires').click();
|
||
const download = await downloadPromise;
|
||
const suggestedName = download.suggestedFilename();
|
||
expect.soft(suggestedName).toContain('ExportArgu.html');
|
||
// Enregistrer le fichier
|
||
await download.saveAs('downloads/' + suggestedName);
|
||
|
||
// Memo
|
||
await page.getByText('Mémo').click();
|
||
await expect.soft(page.getByRole('heading', { name: 'Mémo', exact: true })).toBeVisible();
|
||
await page.locator('a.IS_icon.IS_FrameCloseButton').click();
|
||
|
||
// Recherche de saisines
|
||
await page.getByText('Recherche de saisines').click();
|
||
await expect.soft(page.getByRole('textbox', { name: 'Rechercher un code ou un terme' })).toBeVisible();
|
||
await expect.soft(page.getByText('Saisines : 0')).toBeVisible();
|
||
await expect.soft(page.getByText('Agora : 0')).toBeVisible();
|
||
await page.getByRole('textbox', { name: 'Rechercher un code ou un terme' }).fill('transfusion');
|
||
await page.getByTitle('Rechercher', { exact: true }).click();
|
||
await expect.soft(page.getByText('Saisines : 6')).toBeVisible();
|
||
await expect.soft(page.getByText('Agora : ')).toBeVisible();
|
||
await expect.soft(page.getByText('Transfusion sanguine en DAS')).toBeVisible();
|
||
await page.getByText('Transfusion sanguine en DAS').click();
|
||
await expect.soft(page.getByText('transfusion sanguine en DAS').nth(1)).toBeVisible();
|
||
await expect.soft(page.getByText('Un dossier concerne un')).toBeVisible();
|
||
|
||
// Agora
|
||
await page.getByText('Agora : ').click();
|
||
await expect.soft(page.getByText(' sujets trouvés sur Agora')).toBeVisible();
|
||
await expect.soft(page.locator('td[is_id="34/titre"]')).toBeVisible();
|
||
await page.getByText('Patient avec anémie traitée par transfusion : choix du DP (8 occurences)').click();
|
||
await expect.soft(page.getByText('Patient avec anémie traitée par transfusion : choix du DP', { exact: true })).toBeVisible();
|
||
await expect.soft(page.getByText('Source : Agora, sujet N°')).toBeVisible();
|
||
await page.getByRole('link', { name: '53310' }).click();
|
||
const [newPage] = await Promise.all([
|
||
page.waitForEvent('popup'),
|
||
page.getByRole('link', { name: '53310' }).click()
|
||
]);
|
||
|
||
await newPage.waitForLoadState();
|
||
|
||
await expect(newPage).toHaveURL(/connect-pasrel\.atih\.sante\.fr\/cas\/login/);
|
||
|
||
// Recherche de Diags ou Actes
|
||
await page.getByText('Recherche de Diags ou Actes').click();
|
||
await expect.soft(page.getByText('Recherche de code')).toBeVisible();
|
||
await expect.soft(page.getByRole('combobox', { name: 'Saisir un code ou un mot clé' })).toBeVisible();
|
||
await page.getByRole('combobox', { name: 'Saisir un code ou un mot clé' }).fill('K8');
|
||
await expect.soft(page.getByRole('option', { name: 'K803 - CALCUL DES CANAUX BIL. AVEC ANGIOCHOLITE' })).toBeVisible();
|
||
await page.getByRole('option', { name: 'K803 - CALCUL DES CANAUX BIL. AVEC ANGIOCHOLITE' }).click();
|
||
await page.waitForTimeout(1000); // attendre le chargement des résultats
|
||
|
||
// changement d'onglet
|
||
await expect.soft(page.locator('ul.IS_hmenu li a.active')).toHaveText('Retour UCR Argumentaire');
|
||
await page.getByText('Résumé cas clinique').click();
|
||
|
||
await expect.soft(page.locator('ul.IS_hmenu li a.active')).toHaveText('Résumé cas clinique');
|
||
await page.getByText('DIM Argumentaire').click();
|
||
await expect.soft(page.locator('ul.IS_hmenu li a.active')).toHaveText('DIM Argumentaire');
|
||
await page.getByText('Contrôleur Argumentaire').click();
|
||
await expect.soft(page.locator('ul.IS_hmenu li a.active')).toHaveText('Contrôleur Argumentaire');
|
||
await page.getByText('Retour UCR Argumentaire').click();
|
||
await expect.soft(page.locator('ul.IS_hmenu li a.active')).toHaveText('Retour UCR Argumentaire');
|
||
await page.getByText('Retour ATIH Argumentaire').click();
|
||
await expect.soft(page.locator('ul.IS_hmenu li a.active')).toHaveText('Retour ATIH Argumentaire');
|
||
|
||
// Quitter
|
||
//await page.getByText('Quitter La page Argumentaires').click();
|
||
await page.locator('a.IS_icon.IS_FrameCloseButton').last().click();
|
||
await expect(page.getByText('ARGUMENTAIRES OGC')).not.toBeVisible();
|
||
|
||
});
|
||
|
||
});
|
||
|
||
|
||
test.describe('b) Pointer les retours UCR', () => {
|
||
|
||
async function allerPointerLesRetoursUCR(page : Page) {
|
||
await page.getByText('UCR', { exact: true }).click();
|
||
await expect.soft(page.locator('a.active').nth(1)).toHaveText('UCR');
|
||
await expect.soft(page.locator('a.IS_Tab_WithCloseButton.active').last()).toHaveText('Préparer l\'Envoi UCR');
|
||
await page.getByText('Pointer les retours UCR').click();
|
||
await expect.soft(page.locator('a.IS_Tab_WithCloseButton.active').last()).toHaveText('Pointer les retours UCR');
|
||
|
||
}
|
||
|
||
async function allerVueDensemble(page : Page) {
|
||
await page.getByText('Vue d\'ensemble').click();
|
||
await expect.soft(page.locator('a.active').nth(1)).toHaveText('Vue d\'ensemble');
|
||
await page.getByText('Synthèse des indus').waitFor({ state: 'visible'});
|
||
}
|
||
|
||
test.beforeEach(async ({ page }) => {
|
||
await allerPointerLesRetoursUCR(page);
|
||
});
|
||
|
||
test('i) Ouvrir la fiche OGC', async ({ page }) => {
|
||
await page.locator('i.fa.fa-pencil').first().click();
|
||
await page.getByText('Fiche OGC').waitFor({ state: 'visible' });
|
||
await expect.soft(page.getByText('Label inaccessible')).not.toBeVisible(); // vérifier que les labels d'accessibilité ne sont pas présents sur les icônes ATIH
|
||
await expect.soft(page.getByText('Aucun DP / DR ou IGC pour ce RUM')).not.toBeVisible(); // vérifier que les données du séjour sont présentes et que ce n'est pas une fiche générique pour les séjours sans DP/DR ou IGC
|
||
|
||
|
||
// Argumentaire
|
||
// DIM
|
||
await page.locator('a[is_id="0/MD"] i.fa.fa-Commenting').click();
|
||
await page.getByRole('heading', { name: 'Saisie et visualisation des argumentaires' }).waitFor({ state: 'visible' });
|
||
await expect.soft(page.locator('ul.IS_hmenu li a.active')).toHaveText(/DIM\s*ARGUMENTAIRE/i);
|
||
// Quitter
|
||
//await page.getByText('Quitter La page Argumentaires').click();
|
||
await page.locator('a.IS_icon.IS_FrameCloseButton').last().click();
|
||
await expect.soft(page.getByRole('heading', { name: 'Saisie et visualisation des argumentaires' })).not.toBeVisible();
|
||
|
||
// Quitter
|
||
//await page.getByText('Quitter La page Argumentaires').click();
|
||
await page.locator('a.IS_icon.IS_FrameCloseButton').last().click();
|
||
await expect.soft(page.getByRole('heading', { name: 'Saisie et visualisation des argumentaires' })).not.toBeVisible();
|
||
|
||
// UCR
|
||
await page.locator('a[is_id="0/UCR"] i.fa.fa-Commenting').click();
|
||
await page.getByRole('heading', { name: 'Saisie et visualisation des argumentaires' }).waitFor({ state: 'visible' });
|
||
await expect.soft(page.locator('ul.IS_hmenu li a.active')).toHaveText(/Retour UCR/i);
|
||
// Quitter
|
||
//await page.getByText('Quitter La page Argumentaires').click();
|
||
await page.locator('a.IS_icon.IS_FrameCloseButton').last().click();
|
||
await expect.soft(page.getByRole('heading', { name: 'Saisie et visualisation des argumentaires' })).not.toBeVisible();
|
||
|
||
// ATIH
|
||
await page.locator('a[is_id="0/ATIH"] i.fa.fa-Commenting').click();
|
||
await page.getByRole('heading', { name: 'Saisie et visualisation des argumentaires' }).waitFor({ state: 'visible' });
|
||
await expect.soft(page.locator('ul.IS_hmenu li a.active')).toHaveText(/Retour ATIH/i);
|
||
// Quitter
|
||
//await page.getByText('Quitter La page Argumentaires').click();
|
||
await page.locator('a.IS_icon.IS_FrameCloseButton').last().click();
|
||
await expect.soft(page.getByRole('heading', { name: 'Saisie et visualisation des argumentaires' })).not.toBeVisible();
|
||
|
||
});
|
||
|
||
test('ii) Cohérence des données UCR', async ({ page }) => {
|
||
|
||
// 14 UCR = Codage Etablissement
|
||
const ligneOGC14Pointer = page.locator('font', { hasText: /^14$/ }).locator('..').locator('..').locator('..');
|
||
const ligneOGC14VEnsemble = page.locator('span', { hasText: /^14$/ }).locator('..').locator('..');
|
||
await ligneOGC14Pointer.locator('div.l1.r1 input').click();
|
||
await page.waitForTimeout(5000); // attendre le traitement
|
||
await allerVueDensemble(page);
|
||
await expect.soft(ligneOGC14VEnsemble.locator('span[title^="Indique si l\'UCR à valider la demande de l\'établissement"] i')).toBeVisible();
|
||
await expect.soft(ligneOGC14VEnsemble.locator('span[title^="Indique si l\'UCR a validé le choix du contrôleur"] i')).not.toBeVisible();
|
||
|
||
// 14 UCR = codage concertation
|
||
await allerPointerLesRetoursUCR(page);
|
||
await ligneOGC14Pointer.locator('div.l2.r2 input').click();
|
||
await page.waitForTimeout(5000); // attendre le traitement
|
||
await allerVueDensemble(page);
|
||
await expect.soft(ligneOGC14VEnsemble.locator('span[title^="Indique si l\'UCR à valider la demande de l\'établissement"] i')).not.toBeVisible();
|
||
await expect.soft(ligneOGC14VEnsemble.locator('span[title^="Indique si l\'UCR a validé le choix du contrôleur"] i')).toBeVisible();
|
||
|
||
|
||
// 16 UCR = Codage concertation
|
||
const ligneOGC16Pointer = page.locator('font', { hasText: /^17$/ }).locator('..').locator('..').locator('..');
|
||
const ligneOGC16VEnsemble = page.locator('span', { hasText: /^17$/ }).locator('..').locator('..');
|
||
await allerPointerLesRetoursUCR(page);
|
||
await ligneOGC16Pointer.locator('div.l2.r2 input').click();
|
||
await page.waitForTimeout(5000); // attendre le traitement
|
||
await allerVueDensemble(page);
|
||
await expect.soft(ligneOGC16VEnsemble.locator('span[title^="Indique si l\'UCR à valider la demande de l\'établissement"] i')).not.toBeVisible();
|
||
await expect.soft(ligneOGC16VEnsemble.locator('span[title^="Indique si l\'UCR a validé le choix du contrôleur"] i')).toBeVisible();
|
||
|
||
|
||
// 16 UCR = codage Etablissement
|
||
await allerPointerLesRetoursUCR(page);
|
||
await ligneOGC16Pointer.locator('div.l1.r1 input').click();
|
||
await page.waitForTimeout(5000); // attendre le traitement
|
||
await allerVueDensemble(page);
|
||
await expect.soft(ligneOGC16VEnsemble.locator('span[title^="Indique si l\'UCR à valider la demande de l\'établissement"] i')).toBeVisible();
|
||
await expect.soft(ligneOGC16VEnsemble.locator('span[title^="Indique si l\'UCR a validé le choix du contrôleur"] i')).not.toBeVisible();
|
||
});
|
||
|
||
test('iii) Précocher UCR = Concertation', async ({ page }) => {
|
||
await page.getByRole('checkbox', { name: 'Précochez OUI Contrôleur' }).click();
|
||
await expect.soft(page.locator('font').locator('..').locator('..').locator('..').locator('div.l2.r2 input').nth(0)).toBeChecked();
|
||
await expect.soft(page.locator('font').locator('..').locator('..').locator('..').locator('div.l2.r2 input').nth(1)).toBeChecked();
|
||
await expect.soft(page.locator('font').locator('..').locator('..').locator('..').locator('div.l2.r2 input').nth(2)).toBeChecked();
|
||
await expect.soft(page.locator('font').locator('..').locator('..').locator('..').locator('div.l2.r2 input').nth(3)).toBeChecked();
|
||
await expect.soft(page.locator('font').locator('..').locator('..').locator('..').locator('div.l2.r2 input').nth(4)).toBeChecked();
|
||
|
||
});
|
||
|
||
});
|
||
|
||
});
|
||
|
||
test.describe('2- ATIH', () => {
|
||
test.beforeEach(async ({ page }, testInfo) => {
|
||
await page.getByText('ATIH', { exact: true }).click();
|
||
await expect.soft(page.locator('a.active').nth(1)).toHaveText('ATIH');
|
||
await expect.soft(page.locator('a.IS_Tab_WithCloseButton.active').last()).toHaveText('Préparer l\'Envoi ATIH');
|
||
|
||
});
|
||
|
||
test.describe('a) Préparer l\'Envoi ATIH', () => {
|
||
test('i) Filtre', async ({ page }) => {
|
||
// Tour désélectionner
|
||
await page.getByText('Désélectionner tout').click();
|
||
await expect.soft(page.locator('div.l0.r0 input').first()).not.toBeChecked();
|
||
await expect.soft(page.locator('div.l0.r0 input').nth(1)).not.toBeChecked();
|
||
await expect.soft(page.locator('div.l0.r0 input').nth(2)).not.toBeChecked();
|
||
|
||
// Cocher les désaccords
|
||
await page.getByText('Cocher les dossiers en dé').click();
|
||
await expect.soft(page.locator('div.l0.r0 input').first()).toBeChecked();
|
||
await expect.soft(page.locator('div.l0.r0 input').nth(1)).toBeChecked();
|
||
await expect.soft(page.locator('div.l0.r0 input').nth(2)).toBeChecked();
|
||
|
||
await page.locator('div.l4.r4 span[title="Dossier en désaccord"]').first().waitFor({ state: 'visible' });
|
||
await expect.soft(page.locator('div.l4.r4').nth(1).locator('span').first()).toHaveAttribute('title', 'Dossier en désaccord');
|
||
await expect.soft(page.locator('div.l4.r4').nth(2).locator('span').first()).toHaveAttribute('title', 'Dossier en désaccord');
|
||
await expect.soft(page.locator('div.l4.r4').nth(3).locator('span').first()).toHaveAttribute('title', 'Dossier en désaccord');
|
||
|
||
// Télécharger le document UCR
|
||
const downloadPromise = page.waitForEvent('download');
|
||
await page.getByText('Générer le document pour ATIH').click();
|
||
const download = await downloadPromise;
|
||
const suggestedName = download.suggestedFilename();
|
||
expect.soft(suggestedName).toContain('DocumentPourATIH.html');
|
||
// Enregistrer le fichier
|
||
await download.saveAs('downloads/' + suggestedName);
|
||
|
||
|
||
});
|
||
|
||
test('ii) Ouvrir la fiche OGC', async ({ page }) => {
|
||
await page.locator('div.l1.r1').nth(1).click();
|
||
await page.getByText('Fiche OGC').nth(1).waitFor({ state: 'visible' });
|
||
await expect.soft(page.getByText('Label inaccessible')).not.toBeVisible(); // vérifier que les labels d'accessibilité ne sont pas présents sur les icônes ATIH
|
||
await expect.soft(page.getByText('Aucun DP / DR ou IGC pour ce RUM')).not.toBeVisible(); // vérifier que les données du séjour sont présentes et que ce n'est pas une fiche générique pour les séjours sans DP/DR ou IGC
|
||
|
||
// Argumentaire
|
||
// DIM
|
||
await page.locator('a[is_id="0/MD"] i.fa.fa-Commenting').click();
|
||
await page.getByRole('heading', { name: 'Saisie et visualisation des argumentaires' }).waitFor({ state: 'visible' });
|
||
await expect.soft(page.locator('ul.IS_hmenu li a.active')).toHaveText(/DIM\s*ARGUMENTAIRE/i);
|
||
// Quitter
|
||
//await page.getByText('Quitter La page Argumentaires').click();
|
||
await page.locator('a.IS_icon.IS_FrameCloseButton').last().click();
|
||
await expect.soft(page.getByRole('heading', { name: 'Saisie et visualisation des argumentaires' })).not.toBeVisible();
|
||
|
||
// Concertation
|
||
await page.locator('a[is_id="0/CC"] i.fa.fa-Commenting').click();
|
||
await page.getByRole('heading', { name: 'Saisie et visualisation des argumentaires' }).waitFor({ state: 'visible' });
|
||
await expect.soft(page.locator('ul.IS_hmenu li a.active')).toHaveText('Résumé cas clinique');
|
||
// Quitter
|
||
//await page.getByText('Quitter La page Argumentaires').click();
|
||
await page.locator('a.IS_icon.IS_FrameCloseButton').last().click();
|
||
await expect.soft(page.getByRole('heading', { name: 'Saisie et visualisation des argumentaires' })).not.toBeVisible();
|
||
|
||
// UCR
|
||
await page.locator('a[is_id="0/UCR"] i.fa.fa-Commenting').click();
|
||
await page.getByRole('heading', { name: 'Saisie et visualisation des argumentaires' }).waitFor({ state: 'visible' });
|
||
await expect.soft(page.locator('ul.IS_hmenu li a.active')).toHaveText(/Retour UCR/i);
|
||
// Quitter
|
||
//await page.getByText('Quitter La page Argumentaires').click();
|
||
await page.locator('a.IS_icon.IS_FrameCloseButton').last().click();
|
||
await expect.soft(page.getByRole('heading', { name: 'Saisie et visualisation des argumentaires' })).not.toBeVisible();
|
||
|
||
// ATIH
|
||
await page.locator('a[is_id="0/ATIH"] i.fa.fa-Commenting').click();
|
||
await page.getByRole('heading', { name: 'Saisie et visualisation des argumentaires' }).waitFor({ state: 'visible' });
|
||
await expect.soft(page.locator('ul.IS_hmenu li a.active')).toHaveText(/Retour ATIH/i);
|
||
// Quitter
|
||
//await page.getByText('Quitter La page Argumentaires').click();
|
||
await page.locator('a.IS_icon.IS_FrameCloseButton').last().click();
|
||
await expect.soft(page.getByRole('heading', { name: 'Saisie et visualisation des argumentaires' })).not.toBeVisible();
|
||
});
|
||
|
||
test('iii) Justificatifs', async ({ page }) => {
|
||
// Tour désélectionner
|
||
await page.getByText('Désélectionner tout').click();
|
||
await page.waitForTimeout(1000);
|
||
await page.getByText('Voir ou ajouterJustifs').click(); // Trier
|
||
await page.locator('div.l2.r2 a').first().click();
|
||
await expect.soft(page.getByRole('heading', { name: 'Documents & Justificatifs OGC' })).toBeVisible();
|
||
|
||
await page.locator('i.fa.fa-folder').first().click();
|
||
await expect.soft(page.locator('ul.active li')).toBeVisible();
|
||
await page.locator('ul.active li').click();
|
||
// Version originale
|
||
await expect(page.getByRole('heading', { name: '.pdf' })).toBeVisible();
|
||
await expect.soft(page.locator('nav ul.IS_hmenu li a.active')).toHaveText('Version originale');
|
||
|
||
// Télecharger le justificatif original
|
||
const downloadPromise = page.waitForEvent('download');
|
||
await page.getByTitle('Télécharger la version').click();
|
||
const download = await downloadPromise;
|
||
const suggestedName = download.suggestedFilename();
|
||
expect.soft(suggestedName).toContain('.pdf');
|
||
// Enregistrer le fichier
|
||
await download.saveAs('downloads/' + suggestedName);
|
||
|
||
// Version modifiée
|
||
await page.getByText('Version modifiée').click();
|
||
await expect.soft(page.locator('nav ul.IS_hmenu li a.active')).toContainText('Version modifiée');
|
||
|
||
//Défiler entre les pages
|
||
await page.getByRole('cell', { name: 'Page 1' }).locator('a').click();
|
||
await page.waitForTimeout(1000); // attendre le chargement
|
||
if (await page.getByRole('cell', { name: 'Page 2' }).first().isVisible()) {
|
||
await page.getByRole('cell', { name: 'Page 2' }).first().click();
|
||
}
|
||
await expect.soft(page.getByRole('cell', { name: 'Page 2' })).toBeVisible();
|
||
// Retour à la page 1 avec la flèche gauche
|
||
await page.getByTitle('Page précédente').click();
|
||
await expect.soft(page.getByRole('cell', { name: 'Page 1' })).toBeVisible();
|
||
|
||
|
||
// Télecharger le justificatif modifié
|
||
const downloadPromiseModif = page.waitForEvent('download');
|
||
await page.getByTitle('Télécharger la version').click();
|
||
const downloadModif = await downloadPromiseModif;
|
||
const suggestedNameModif = downloadModif.suggestedFilename();
|
||
expect.soft(suggestedNameModif).toContain('modif.pdf');
|
||
// Enregistrer le fichier
|
||
await downloadModif.saveAs('downloads/' + suggestedNameModif);
|
||
|
||
});
|
||
|
||
test('iv) Argumentaires', async ({ page }) => {
|
||
await page.locator('div.l3.r3 a').first().click();
|
||
await expect(page.getByText('ARGUMENTAIRES OGC')).toBeVisible();
|
||
// Télécharger les argumentaires
|
||
const downloadPromise = page.waitForEvent('download');
|
||
await page.getByText('Exporter les argumentaires').click();
|
||
const download = await downloadPromise;
|
||
const suggestedName = download.suggestedFilename();
|
||
expect.soft(suggestedName).toContain('ExportArgu.html');
|
||
// Enregistrer le fichier
|
||
await download.saveAs('downloads/' + suggestedName);
|
||
|
||
// Memo
|
||
await page.getByText('Mémo').click();
|
||
await expect.soft(page.getByRole('heading', { name: 'Mémo', exact: true })).toBeVisible();
|
||
await page.locator('a.IS_icon.IS_FrameCloseButton').click();
|
||
|
||
// Recherche de saisines
|
||
await page.getByText('Recherche de saisines').click();
|
||
await expect.soft(page.getByRole('textbox', { name: 'Rechercher un code ou un terme' })).toBeVisible();
|
||
await expect.soft(page.getByText('Saisines : 0')).toBeVisible();
|
||
await expect.soft(page.getByText('Agora : 0')).toBeVisible();
|
||
await page.getByRole('textbox', { name: 'Rechercher un code ou un terme' }).fill('transfusion');
|
||
await page.getByTitle('Rechercher', { exact: true }).click();
|
||
await expect.soft(page.getByText('Saisines : 6')).toBeVisible();
|
||
await expect.soft(page.getByText('Agora : ')).toBeVisible();
|
||
await expect.soft(page.getByText('Transfusion sanguine en DAS')).toBeVisible();
|
||
await page.getByText('Transfusion sanguine en DAS').click();
|
||
await expect.soft(page.getByText('transfusion sanguine en DAS').nth(1)).toBeVisible();
|
||
await expect.soft(page.getByText('Un dossier concerne un')).toBeVisible();
|
||
|
||
// Agora
|
||
await page.getByText('Agora : ').click();
|
||
await expect.soft(page.getByText(' sujets trouvés sur Agora')).toBeVisible();
|
||
await expect.soft(page.locator('td[is_id="34/titre"]')).toBeVisible();
|
||
await page.getByText('Patient avec anémie traitée par transfusion : choix du DP (8 occurences)').click();
|
||
await expect.soft(page.getByText('Patient avec anémie traitée par transfusion : choix du DP', { exact: true })).toBeVisible();
|
||
await expect.soft(page.getByText('Source : Agora, sujet N°')).toBeVisible();
|
||
await page.getByRole('link', { name: '53310' }).click();
|
||
const [newPage] = await Promise.all([
|
||
page.waitForEvent('popup'),
|
||
page.getByRole('link', { name: '53310' }).click()
|
||
]);
|
||
|
||
await newPage.waitForLoadState();
|
||
|
||
await expect(newPage).toHaveURL(/connect-pasrel\.atih\.sante\.fr\/cas\/login/);
|
||
|
||
// Recherche de Diags ou Actes
|
||
await page.getByText('Recherche de Diags ou Actes').click();
|
||
await expect.soft(page.getByText('Recherche de code')).toBeVisible();
|
||
await expect.soft(page.getByRole('combobox', { name: 'Saisir un code ou un mot clé' })).toBeVisible();
|
||
await page.getByRole('combobox', { name: 'Saisir un code ou un mot clé' }).fill('K8');
|
||
await expect.soft(page.getByRole('option', { name: 'K803 - CALCUL DES CANAUX BIL. AVEC ANGIOCHOLITE' })).toBeVisible();
|
||
await page.getByRole('option', { name: 'K803 - CALCUL DES CANAUX BIL. AVEC ANGIOCHOLITE' }).click();
|
||
await page.waitForTimeout(1000); // attendre le chargement des résultats
|
||
|
||
// changement d'onglet
|
||
await expect.soft(page.locator('ul.IS_hmenu li a.active')).toHaveText('Retour ATIH Argumentaire');
|
||
await page.getByText('Résumé cas clinique').click();
|
||
await expect.soft(page.locator('ul.IS_hmenu li a.active')).toHaveText('Résumé cas clinique');
|
||
await page.getByText('DIM Argumentaire').click();
|
||
await expect.soft(page.locator('ul.IS_hmenu li a.active')).toHaveText('DIM Argumentaire');
|
||
await page.getByText('Contrôleur Argumentaire').click();
|
||
await expect.soft(page.locator('ul.IS_hmenu li a.active')).toHaveText('Contrôleur Argumentaire');
|
||
await page.getByText('Retour UCR Argumentaire').click();
|
||
await expect.soft(page.locator('ul.IS_hmenu li a.active')).toHaveText('Retour UCR Argumentaire');
|
||
await page.getByText('Retour ATIH Argumentaire').click();
|
||
await expect.soft(page.locator('ul.IS_hmenu li a.active')).toHaveText('Retour ATIH Argumentaire');
|
||
|
||
// Quitter
|
||
//await page.getByText('Quitter La page Argumentaires').click();
|
||
await page.locator('a.IS_icon.IS_FrameCloseButton').last().click();
|
||
await expect(page.getByText('ARGUMENTAIRES OGC')).not.toBeVisible();
|
||
|
||
});
|
||
|
||
});
|
||
|
||
test.describe('b) Pointer les retours ATIH', () => {
|
||
|
||
async function allerPointerLesRetoursATIH(page : Page) {
|
||
await page.getByText('ATIH', { exact: true }).click();
|
||
await expect.soft(page.locator('a.active').nth(1)).toHaveText('ATIH');
|
||
await expect.soft(page.locator('a.IS_Tab_WithCloseButton.active').last()).toHaveText('Préparer l\'Envoi ATIH');
|
||
await page.getByText('Pointer les retours ATIH').click();
|
||
await expect.soft(page.locator('a.IS_Tab_WithCloseButton.active').last()).toHaveText('Pointer les retours ATIH');
|
||
|
||
}
|
||
|
||
async function allerVueDensemble(page : Page) {
|
||
await page.getByText('Vue d\'ensemble').click();
|
||
await expect.soft(page.locator('a.active').nth(1)).toHaveText('Vue d\'ensemble');
|
||
await page.getByText('Synthèse des indus').waitFor({ state: 'visible'});
|
||
}
|
||
|
||
test.beforeEach(async ({ page }) => {
|
||
await allerPointerLesRetoursATIH(page);
|
||
});
|
||
|
||
test('i) Ouvrir la fiche OGC', async ({ page }) => {
|
||
await page.locator('i.fa.fa-pencil').first().click();
|
||
await page.getByText('Fiche OGC').waitFor({ state: 'visible' });
|
||
await expect.soft(page.getByText('Label inaccessible')).not.toBeVisible(); // vérifier que les labels d'accessibilité ne sont pas présents sur les icônes ATIH
|
||
await expect.soft(page.getByText('Aucun DP / DR ou IGC pour ce RUM')).not.toBeVisible(); // vérifier que les données du séjour sont présentes et que ce n'est pas une fiche générique pour les séjours sans DP/DR ou IGC
|
||
|
||
// Argumentaire
|
||
// DIM
|
||
await page.locator('a[is_id="0/MD"] i.fa.fa-Commenting').click();
|
||
await page.getByRole('heading', { name: 'Saisie et visualisation des argumentaires' }).waitFor({ state: 'visible' });
|
||
await expect.soft(page.locator('ul.IS_hmenu li a.active')).toHaveText(/DIM\s*ARGUMENTAIRE/i);
|
||
// Quitter
|
||
//await page.getByText('Quitter La page Argumentaires').click();
|
||
await page.locator('a.IS_icon.IS_FrameCloseButton').last().click();
|
||
await expect.soft(page.getByRole('heading', { name: 'Saisie et visualisation des argumentaires' })).not.toBeVisible();
|
||
|
||
// Concertation
|
||
await page.locator('a[is_id="0/CC"] i.fa.fa-Commenting').click();
|
||
await page.getByRole('heading', { name: 'Saisie et visualisation des argumentaires' }).waitFor({ state: 'visible' });
|
||
await expect.soft(page.locator('ul.IS_hmenu li a.active')).toHaveText('Résumé cas clinique');
|
||
// Quitter
|
||
//await page.getByText('Quitter La page Argumentaires').click();
|
||
await page.locator('a.IS_icon.IS_FrameCloseButton').last().click();
|
||
await expect.soft(page.getByRole('heading', { name: 'Saisie et visualisation des argumentaires' })).not.toBeVisible();
|
||
|
||
// UCR
|
||
await page.locator('a[is_id="0/UCR"] i.fa.fa-Commenting').click();
|
||
await page.getByRole('heading', { name: 'Saisie et visualisation des argumentaires' }).waitFor({ state: 'visible' });
|
||
await expect.soft(page.locator('ul.IS_hmenu li a.active')).toHaveText(/Retour UCR/i);
|
||
// Quitter
|
||
//await page.getByText('Quitter La page Argumentaires').click();
|
||
await page.locator('a.IS_icon.IS_FrameCloseButton').last().click();
|
||
await expect.soft(page.getByRole('heading', { name: 'Saisie et visualisation des argumentaires' })).not.toBeVisible();
|
||
|
||
// ATIH
|
||
await page.locator('a[is_id="0/ATIH"] i.fa.fa-Commenting').click();
|
||
await page.getByRole('heading', { name: 'Saisie et visualisation des argumentaires' }).waitFor({ state: 'visible' });
|
||
await expect.soft(page.locator('ul.IS_hmenu li a.active')).toHaveText(/Retour ATIH/i);
|
||
// Quitter
|
||
//await page.getByText('Quitter La page Argumentaires').click();
|
||
await page.locator('a.IS_icon.IS_FrameCloseButton').last().click();
|
||
await expect.soft(page.getByRole('heading', { name: 'Saisie et visualisation des argumentaires' })).not.toBeVisible();
|
||
});
|
||
|
||
test('ii) Cohérence des données ATIH', async ({ page }) => {
|
||
|
||
// 14 ATIH = OUI ETAB
|
||
const ligneOGC14Pointer = page.locator('font', { hasText: /^14$/ }).locator('..').locator('..').locator('..');
|
||
const ligneOGC14VEnsemble = page.locator('span', { hasText: /^14$/ }).locator('..').locator('..');
|
||
await ligneOGC14Pointer.locator('div.l1.r1 input').click();
|
||
await page.waitForTimeout(5000); // attendre le traitement
|
||
await allerVueDensemble(page);
|
||
await expect.soft(ligneOGC14VEnsemble.locator('div.l8.r8 span i')).toBeVisible();
|
||
await expect.soft(ligneOGC14VEnsemble.locator('div.l9.r9 span i')).not.toBeVisible();
|
||
|
||
// 14 ATIH = OUI CC
|
||
await allerPointerLesRetoursATIH(page);
|
||
await ligneOGC14Pointer.locator('div.l2.r2 input').click();
|
||
await page.waitForTimeout(5000); // attendre le traitement
|
||
await allerVueDensemble(page);
|
||
await expect.soft(ligneOGC14VEnsemble.locator('div.l8.r8 span i')).not.toBeVisible();
|
||
await expect.soft(ligneOGC14VEnsemble.locator('div.l9.r9 span i')).toBeVisible();
|
||
|
||
|
||
// 16 ATIH = OUI CC
|
||
const ligneOGC16Pointer = page.locator('font', { hasText: /^17$/ }).locator('..').locator('..').locator('..');
|
||
const ligneOGC16VEnsemble = page.locator('span', { hasText: /^17$/ }).locator('..').locator('..');
|
||
await allerPointerLesRetoursATIH(page);
|
||
await ligneOGC16Pointer.locator('div.l2.r2 input').click();
|
||
await page.waitForTimeout(5000); // attendre le traitement
|
||
await allerVueDensemble(page);
|
||
await expect.soft(ligneOGC16VEnsemble.locator('div.l8.r8 span i')).not.toBeVisible();
|
||
await expect.soft(ligneOGC16VEnsemble.locator('div.l9.r9 span i')).toBeVisible();
|
||
|
||
|
||
// 16 ATIH = codage Etablissement
|
||
await allerPointerLesRetoursATIH(page);
|
||
await ligneOGC16Pointer.locator('div.l1.r1 input').click();
|
||
await page.waitForTimeout(5000); // attendre le traitement
|
||
await allerVueDensemble(page);
|
||
await expect.soft(ligneOGC16VEnsemble.locator('div.l8.r8 span i')).toBeVisible();
|
||
await expect.soft(ligneOGC16VEnsemble.locator('div.l9.r9 span i')).not.toBeVisible();
|
||
});
|
||
|
||
test('iii) Précocher ATIH = Concertation', async ({ page }) => {
|
||
await page.getByText('Précocher ATIH = Concertation').click();
|
||
await expect.soft(page.locator('font').locator('..').locator('..').locator('..').locator('div.l2.r2 input').nth(0)).toBeChecked();
|
||
await expect.soft(page.locator('font').locator('..').locator('..').locator('..').locator('div.l2.r2 input').nth(1)).toBeChecked();
|
||
await expect.soft(page.locator('font').locator('..').locator('..').locator('..').locator('div.l2.r2 input').nth(2)).toBeChecked();
|
||
await expect.soft(page.locator('font').locator('..').locator('..').locator('..').locator('div.l2.r2 input').nth(3)).toBeChecked();
|
||
await expect.soft(page.locator('font').locator('..').locator('..').locator('..').locator('div.l2.r2 input').nth(4)).toBeChecked();
|
||
|
||
});
|
||
});
|
||
});
|
||
|
||
test.describe('3- Caisses', () => {
|
||
test.beforeEach(async ({ page }, testInfo) => {
|
||
await page.locator('a').filter({ hasText: 'Caisses' }).click();
|
||
await expect.soft(page.locator('a.active').nth(1)).toHaveText('Caisses');
|
||
await page.getByText('Synthèse des indus').waitFor({ state: 'visible'});
|
||
//await expect.soft(page.getByText('Montant dû à la CPAM')).toBeVisible();
|
||
await expect.soft(page.getByText('Montant à récupérer de la CPAM')).toBeVisible();
|
||
await expect.soft(page.getByText('Montant Contesté')).toBeVisible();
|
||
});
|
||
|
||
// test('a) Ouvrir la fiche OGC', async ({ page }) => {
|
||
// await page.locator('div.l0.r0').nth(1).click();
|
||
// await page.getByText('Fiche OGC').waitFor({ state: 'visible' });
|
||
//});
|
||
test('b) Export', async({page}) => {
|
||
await page.locator('a[title="Exporter sous excel les données du tableau"] i').click();
|
||
await page.waitForTimeout(2000); // attendre le téléchargement du fichier
|
||
const downloadPromise = page.waitForEvent('download');
|
||
await page.getByTitle('Exporter sous excel les données du tableau').click();
|
||
const download = await downloadPromise;
|
||
const suggestedName = download.suggestedFilename();
|
||
expect.soft(suggestedName).toContain('Notifications');
|
||
expect.soft(suggestedName).toContain('.xlsx');
|
||
// Enregistrer le fichier
|
||
await download.saveAs('downloads/' + suggestedName);
|
||
});
|
||
|
||
test('c) Cohérence des montants', async({page}) => {
|
||
const montantRecupcheck = page.locator('font', { hasText: /^8$/ }).locator('..').locator('..').locator('..').locator('div.l5.r5 label input');
|
||
const montantContestecheck = page.locator('font', { hasText: /^8$/ }).locator('..').locator('..').locator('..').locator('div.l6.r6 label input');
|
||
const montantDuValeur = page.locator('font', { hasText: /^8$/ }).locator('..').locator('..').locator('..').locator('div.l8.r8 span font');
|
||
const montantContesteValeur = page.locator('font', { hasText: /^8$/ }).locator('..').locator('..').locator('..').locator('div.l7.r7 span font');
|
||
|
||
// Cocher montant à récupérer
|
||
await montantRecupcheck.click();
|
||
await page.waitForTimeout(5000); // attendre le traitement
|
||
await expect.soft(montantDuValeur).toBeVisible();
|
||
await expect.soft(montantContesteValeur).not.toBeVisible();
|
||
|
||
// Cocher montant contesté
|
||
await montantContestecheck.click();
|
||
await page.waitForTimeout(5000); // attendre le traitement
|
||
await expect.soft(montantContesteValeur).toBeVisible();
|
||
await expect.soft(montantDuValeur).not.toBeVisible();
|
||
|
||
// Décocher les deux
|
||
await montantContestecheck.click();
|
||
await page.waitForTimeout(5000); // attendre le traitement
|
||
await expect.soft(montantDuValeur).not.toBeVisible();
|
||
await expect.soft(montantContesteValeur).not.toBeVisible();
|
||
|
||
});
|
||
|
||
|
||
});
|
||
|
||
|
||
|
||
});*/
|
||
|
||
});
|
||
|