Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remove Test Suite FE Destinatario irreperibile #216

Open
wants to merge 35 commits into
base: develop
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
2505786
Remove Test Suite FE Destinatario irreperibile
angelominisci Oct 7, 2024
323f6ff
fix test TA_loginpersonaFisica
angelominisci Oct 7, 2024
6b822fc
Merge branch 'develop' into fix/gestioneTimeoutTestSuite
angelominisci Oct 7, 2024
439d636
ADD log
angelominisci Oct 8, 2024
fc0897c
Remove Log
angelominisci Oct 8, 2024
a95a76b
remove log
angelominisci Oct 8, 2024
848a857
fix test
angelominisci Oct 8, 2024
9197ee7
- fix
azhansultan Oct 8, 2024
cd7ac21
Merge remote-tracking branch 'origin/fix/PN-9292' into fix/gestioneTi…
angelominisci Oct 8, 2024
cfda032
Fix test PN-10245-B
angelominisci Oct 8, 2024
87a23d5
fix test
angelominisci Oct 8, 2024
360d356
- fix
azhansultan Oct 8, 2024
1e407ce
Merge remote-tracking branch 'origin/fix/PN-9292' into fix/gestioneTi…
angelominisci Oct 8, 2024
fa60d00
fix
angelominisci Oct 8, 2024
f83c742
add tag
angelominisci Oct 8, 2024
b9e68d9
fix
angelominisci Oct 8, 2024
ccfea04
Remove tag
angelominisci Oct 8, 2024
e462f45
* created bis scenario for : @VisualizzaNotificaMonoDestinatarioConUn…
azhansultan Oct 9, 2024
6134502
Merge remote-tracking branch 'origin/fix/PN-9292' into fix/gestioneTi…
angelominisci Oct 9, 2024
ec69180
prova fix
angelominisci Oct 9, 2024
49908fb
add log
angelominisci Oct 9, 2024
0da0abd
fix labet button test
angelominisci Oct 9, 2024
6832a54
add log
angelominisci Oct 9, 2024
ed38e42
add wait
angelominisci Oct 10, 2024
544b6ed
modifify
angelominisci Oct 10, 2024
d0f811a
add wait
angelominisci Oct 10, 2024
284f088
refactor
angelominisci Oct 10, 2024
0a88906
add wait
angelominisci Oct 10, 2024
80192a3
add log
angelominisci Oct 10, 2024
a1f1b8f
fix
angelominisci Oct 10, 2024
fe4ec51
Add wait
angelominisci Oct 10, 2024
b5c35fb
fix
angelominisci Oct 10, 2024
1300586
Remove log
angelominisci Oct 10, 2024
b5d1421
fix test
angelominisci Oct 10, 2024
cbdda45
fix
angelominisci Oct 10, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,8 @@
import java.util.List;
import java.util.Map;

import static org.openqa.selenium.support.ui.ExpectedConditions.elementToBeClickable;

public class DettaglioNotificaSection extends BasePage {
private static final Logger logger = LoggerFactory.getLogger("DettaglioNotificaSection");

Expand Down Expand Up @@ -76,6 +78,14 @@ public void clickLinkAttestazioniOpponibile(int numeroLinkAttestazioniOpponibile
}
}

public void toBeClickableLinkAttestazioniOpponibile(int numeroLinkAttestazioniOpponibile) {
WebTool.waitTime(2);
attestazioniFile = driver.findElements(By.xpath("//button[contains(text(),'Attestazione opponibile a terzi: notifica presa in carico')]"));
if (attestazioniFile.get(numeroLinkAttestazioniOpponibile).isDisplayed()) {
getWebDriverWait(10).withMessage("Il link non è cliccabile").until(elementToBeClickable(attestazioniFile.get(numeroLinkAttestazioniOpponibile)));
}
}

public void clickLinkDocumentiAllegati(int numeroLinkDocumentiAllegati) {
if (documentiAllegati.get(numeroLinkDocumentiAllegati).isDisplayed()) {
documentiAllegati.get(numeroLinkDocumentiAllegati).click();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -310,41 +310,39 @@ public void checkoutPagamento() throws InterruptedException {
driver.switchTo().defaultContent();

WebTool.waitTime(5);

WebElement continuaBottone = driver.findElement(By.xpath("//button[@aria-label='Continua']") );
getWebDriverWait(7).withMessage("Il bottone Continua non è cliccabile").until(ExpectedConditions.elementToBeClickable(continuaBottone));
WebElement continuaBottone = driver.findElement(By.xpath("//button[@aria-label='Continue']") );
getWebDriverWait(8).withMessage("Il bottone Continua non è cliccabile").until(ExpectedConditions.elementToBeClickable(continuaBottone));
continuaBottone.click();

WebTool.waitTime(2);
WebTool.waitTime(10);

//Select Nexi
WebElement modificaButton = driver.findElement(By.xpath("//button[@aria-label='Modifica PSP']"));
WebElement modificaButton = driver.findElement(By.xpath("//button[@aria-label='Change payment service provider (PSP)']"));
getWebDriverWait(5).withMessage("Il bottone modifica non è cliccabile").until(ExpectedConditions.elementToBeClickable(modificaButton));
modificaButton.click();

WebTool.waitTime(2);

List<WebElement> nexiButton = driver.findElements(By.xpath("//div[contains(text(),'Nexi')]"));
WebTool.waitTime(10);
List<WebElement> nexiButton = driver.findElements(By.xpath("//div[contains(text(),'Intesa Sanpaolo S.p.A')]"));
WebTool.waitTime(10);
//getWebDriverWait(10).withMessage("Il bottone Nexi non è cliccabile").until(ExpectedConditions.elementToBeClickable(nexiButton));
if (nexiButton.size()==2){
nexiButton.get(1).click();
}else {
nexiButton.get(0).click();
}
WebTool.waitTime(2);
WebTool.waitTime(5);

WebElement pagaButton = driver.findElement(By.xpath("//button[@id='paymentCheckPageButtonPay']"));
getWebDriverWait(5).withMessage("Il bottone Paga non è cliccabile").until(ExpectedConditions.elementToBeClickable(pagaButton));
pagaButton.click();
WebTool.waitTime(35);
List<WebElement> chiudi = driver.findElements(By.xpath("//button[contains(text(),'Chiudi')]"));
WebTool.waitTime(50);
List<WebElement> chiudi = driver.findElements(By.xpath("//button[contains(text(),'Continue')]"));
getWebDriverWait(10).withMessage("Il bottone Chiudi non è cliccabile").until(ExpectedConditions.elementToBeClickable(chiudi.get(0)));
chiudi.get(0).click();
}

public void siVisualizzaStatoPagato() {
WebTool.waitTime(10);
WebTool.waitTime(20);
By statoPagamento = By.xpath("//div[@id='status-chip-Pagato']");
getWebDriverWait(5).withMessage("Lo stato di pagamento non è visibile").until(ExpectedConditions.visibilityOfElementLocated(statoPagamento));
logger.info("Lo stato di pagamento è Pagato");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -188,6 +188,9 @@ public boolean verificaEsistenzaEPassaggioPagina() {
}

public void inserimentoCodiceIUN(String codiceIUN) {

WebTool.waitTime(5);
codiceIUNTextField = driver.findElement(By.id("iunMatch"));
getWebDriverWait(10).withMessage("Il campo per l'inserimento del codice IUN non è visibile").until(ExpectedConditions.visibilityOf(codiceIUNTextField));
codiceIUNTextField.click();
codiceIUNTextField.sendKeys(codiceIUN);
Expand Down Expand Up @@ -218,14 +221,12 @@ public boolean controlloDateInserite(String dataInerita) {

public void inserimentoArcoTemporale(String da, String a) {

WebTool.waitTime(15);
getWebDriverWait(10).until(ExpectedConditions.visibilityOfAllElements(dataInizioField, dataFineField));

dataInizioField = getWebDriverWait(10).until(ExpectedConditions.elementToBeClickable(By.id("startDate")));
dataInizioField = getWebDriverWait(10).until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//*[@id='startDate']")));

WebTool.waitTime(5);

WebTool.waitTime(2);
String[] arraySplitDateDa = da.split("/");

List<WebElement> dataFieldList = driver.findElements(By.cssSelector(".MuiInputBase-input"));
Expand Down Expand Up @@ -273,7 +274,7 @@ public void inserimentoArcoTemporale(String da, String a) {
}

// Step 4: Select a date (e.g., the 15th day of the current month)
WebTool.waitTime(3);
WebTool.waitTime(2);
WebElement dateToSelect = calendar.findElement(By.xpath("//div[contains(@class, 'MuiDateCalendar-root')]//div[contains(@class,'MuiDayCalendar-monthContainer')]//*[text()='" + dayDa + "']"));
dateToSelect = getWebDriverWait(10).until(ExpectedConditions.elementToBeClickable(dateToSelect));
dateToSelect.click();
Expand All @@ -289,7 +290,7 @@ public void inserimentoArcoTemporale(String da, String a) {
int monthA = Integer.parseInt(arraySplitDateA[1]);
int yerarsA = Integer.parseInt(arraySplitDateA[2]);

WebTool.waitTime(3);
WebTool.waitTime(2);
// Step 2: Click on the input field to open the calendar pop-up

if (dataFieldList != null && dataFieldList.size() == 5) {
Expand Down Expand Up @@ -319,7 +320,7 @@ public void inserimentoArcoTemporale(String da, String a) {
}
}

WebTool.waitTime(3);
WebTool.waitTime(2);

// Step 4: Select a date (e.g., the 15th day of the current month)
// Adjust based on your app
Expand Down
16 changes: 11 additions & 5 deletions src/main/java/it/pn/frontend/e2e/rest/RestContact.java
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.awt.*;
import java.io.IOException;
import java.util.HashMap;
import java.util.List;
Expand Down Expand Up @@ -47,7 +48,8 @@ public void removeDigitalAddressCourtesyEmail() throws RestContactException {
String url = "https://webapi." + env + ".notifichedigitali.it/address-book/v1/digital-address/courtesy/default/EMAIL";
String response = "";
try {
response = httpClient.sendHttpDeleteRequest(url, this.headers, String.class);
headers.put("Authorization", System.getProperty("token"));
response = httpClient.sendHttpDeleteRequest(url, headers, String.class);
logger.info("Risposta ricevuta: " + response);
logger.info("Indirizzo digitale di cortesia rimosso con successo");
} catch (IOException e) {
Expand All @@ -65,7 +67,8 @@ public void removeDigitalAddressLegalPec() throws RestContactException {
String url = "https://webapi." + env + ".notifichedigitali.it/bff/v1/addresses/LEGAL/default/PEC";
String response = "";
try {
response = httpClient.sendHttpDeleteRequest(url, this.headers, String.class);
headers.put("Authorization", System.getProperty("token"));
response = httpClient.sendHttpDeleteRequest(url, headers, String.class);
logger.info("Risposta ricevuta: " + response);
logger.info("Indirizzo digitale di cortesia rimosso con successo");
} catch (IOException e) {
Expand All @@ -87,7 +90,8 @@ public void removeSpecialContact(DigitalAddress digitalAddress) throws RestDeleg
+ addressType + "/" + digitalAddress.getSenderId() + "/" + channelType;
String response = "";
try {
response = httpClient.sendHttpDeleteRequest(url, this.headers, String.class);
headers.put("Authorization", System.getProperty("token"));
response = httpClient.sendHttpDeleteRequest(url, headers, String.class);
logger.info("Risposta ricevuta: " + response);
logger.info("Indirizzo digitale di 'altri recapiti' rimosso con successo");
} catch (IOException e) {
Expand All @@ -101,7 +105,8 @@ public DigitalAddressResponse getDigitalAddress() throws RestContactException {
httpClientDigitalAddress.setBaseUrlApi("https://webapi." + env + ".notifichedigitali.it");
String url = "/bff/v1/addresses/LEGAL/default/PEC";
try {
DigitalAddressResponse response = httpClientDigitalAddress.sendHttpGetRequest(url, this.headers, DigitalAddressResponse.class);
headers.put("Authorization", System.getProperty("token"));
DigitalAddressResponse response = httpClientDigitalAddress.sendHttpGetRequest(url, headers, DigitalAddressResponse.class);
logger.info("Risposta ricevuta: " + response);
logger.info("Indirizzi digitali ricevuti con successo");
return response;
Expand All @@ -119,7 +124,8 @@ public List<DigitalAddress> getAllDigitalAddress() throws RestContactException {
String url = "/bff/v1/addresses";

try {
List<DigitalAddress> response = httpClientDigitalAddress.sendHttpGetRequestListDigitalAddress(url, this.headers, DigitalAddress.class);
headers.put("Authorization", System.getProperty("token"));
List<DigitalAddress> response = httpClientDigitalAddress.sendHttpGetRequestListDigitalAddress(url, headers, DigitalAddress.class);

logger.info("Risposta ricevuta: " + response);
logger.info("Indirizzi digitali ricevuti con successo");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import it.pn.frontend.e2e.common.BasePage;
import org.junit.Assert;
import org.openqa.selenium.By;
import org.openqa.selenium.TimeoutException;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
Expand Down Expand Up @@ -31,8 +32,10 @@ public HeaderPFSection(WebDriver driver) {

public void waitLoadHeaderDESection() {
try {
this.getWebDriverWait(30).withMessage("il titolo del header non è visibile").until(ExpectedConditions.visibilityOf(titleLabel));
this.getWebDriverWait(30).withMessage("menu dell'utente non è visibile").until(ExpectedConditions.visibilityOf(buttonProfile));
titleLabel = driver.findElement(By.xpath("//a[@title='Sito di PagoPA S.p.A.']"));
buttonProfile = driver.findElement(By.xpath("//button[@aria-label='party-menu-button']"));
getWebDriverWait(30).withMessage("il titolo del header non è visibile").until(ExpectedConditions.visibilityOf(titleLabel));
getWebDriverWait(30).withMessage("menu dell'utente non è visibile").until(ExpectedConditions.visibilityOf(buttonProfile));
logger.info("Header DE Section caricata");
} catch (TimeoutException e) {
logger.error("Header DE Section non caricata con errore : " + e.getMessage());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -151,16 +151,18 @@ public void nellaPaginaPiattaformaNotificheMittenteInserireUnaDataDaDAAA(Map<Str
public void nellaPaginaPiattaformaNotificheMittenteInserireUnaDataDaDAAA120Giorni() {
logger.info("Si inserisce l'arco temporale su cui effettuare la ricerca 120 giorni ");

logger.info("Scenario " +Hooks.getScenario());

LocalDate dateNow = LocalDate.now();
LocalDate dateA = dateNow.minusDays(150);

LocalDate dateDa = dateA.minusDays(30);

PiattaformaNotifichePage piattaformaNotifichePage = new PiattaformaNotifichePage(this.driver);
String dataa = piattaformaNotifichePage.conversioneFormatoDate(dateA.toString());
String datada = piattaformaNotifichePage.conversioneFormatoDate(dateA.toString());
String datada = piattaformaNotifichePage.conversioneFormatoDate(dateDa.toString());
logger.info("ARCO TEMPORRALE SETTATO: "+dataa +" - "+datada);
piattaformaNotifichePage.inserimentoArcoTemporale(dataa, datada);
piattaformaNotifichePage.inserimentoArcoTemporale(datada, dataa);
}

@And("Se i risultati sono contenuti in più pagine persona fisica è possibile effettuare il cambio pagina")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -225,6 +225,12 @@ public void clickDocumentoAttestazione() {
driver.navigate().back();
}

@Then("Si verifica che il link sul documento Attestazione è cliccabile")
public void toBeClickableDocumentoAttestazioneCliccable() {
DettaglioNotificaSection dettaglioNotificaSection = new DettaglioNotificaSection(this.driver);
dettaglioNotificaSection.toBeClickableLinkAttestazioniOpponibile(0);
}

@Then("Si clicca sul documento Attestazione scaduta")
public void clickDocumentoAttestazioneScaduta() {
DettaglioNotificaSection dettaglioNotificaSection = new DettaglioNotificaSection(this.driver);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -484,6 +484,11 @@ public void ricercaNotificaConIunSalvato(){
dettaglioNotificaMittenteSection.ricercaNotificaConIunSalvato(Iun);
}

@And("Mittente ricerca notifica con IUN salvato {string}")
public void ricercaNotificaConIunMittente(String iun){
dettaglioNotificaMittenteSection.ricercaNotificaConIunSalvato(iun);
}

@And("Si visualizza correttamente la section Dettaglio Notifica")
public void siVisualizzaCorrettamenteLaSectionDettaglioNotifica() {
DettaglioNotificaMittenteSection dettaglioNotificaMittenteSection = new DettaglioNotificaMittenteSection(this.driver);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ Feature: Mittente invia una notifica analogica o digitale che viene annullata e
And Logout da portale mittente

@TA_annullamentoNotificaMittenteEControlloMailDiCortesia
@recapitiPF

Scenario: [TA-FE MITTENTE CREA E ANNULLA UNA NOTIFICA CON PAGAMENTO] - Mittente invia una notifica a destinatario con PEC impostata e la annulla, si controlla che le ricevute PEC sono scaricabili
Given PF - Si effettua la login tramite token exchange come "delegante", e viene visualizzata la dashboard
And Rimuovi tutti i recapiti se esistono
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
Feature: Invio notifica digitale a destinatario con diversi tipi di domicilio impostati ogni volta

@invioNotificaDigitaleADomicilioImpostato
@recapitiPF

Scenario: [TA-FE INVIO DI UNA NOTIFICA DIGITALE A DESTINATARIO CON DOMICILIO IMPOSTATO] - Il mittente invia una notifica digitale a destinatario con indirizzo mail di cortesia impostato
Given PF - Si effettua la login tramite token exchange come "delegante", e viene visualizzata la dashboard
And Rimuovi tutti i recapiti se esistono
Expand Down Expand Up @@ -42,7 +42,7 @@ Feature: Invio notifica digitale a destinatario con diversi tipi di domicilio im
And Si accede nuovamente al portale "persona fisica" con token "delegante" per eliminare i recapiti inseriti

@invioNotificaDigitaleADomicilioImpostato
@recapitiPF

Scenario: [TA-FE INVIO DI UNA NOTIFICA DIGITALE A DESTINATARIO CON DOMICILIO IMPOSTATO] - Mittente invia una notifica digitale al destinatario con domicilio di piattaforma e attende lo stato consegnata
Given PF - Si effettua la login tramite token exchange come "delegante", e viene visualizzata la dashboard
And Rimuovi tutti i recapiti se esistono
Expand Down Expand Up @@ -84,7 +84,7 @@ Feature: Invio notifica digitale a destinatario con diversi tipi di domicilio im
And Si accede nuovamente al portale "persona fisica" con token "delegante" per eliminare i recapiti inseriti

@invioNotificaDigitaleADomicilioImpostato
@recapitiPF

Scenario: [TA-FE INVIO DI UNA NOTIFICA DIGITALE A DESTINATARIO CON DOMICILIO IMPOSTATO] - Mittente invia una notifica digitale al destinatario con KO e invio raccomandata semplice
Given PF - Si effettua la login tramite token exchange come "delegante", e viene visualizzata la dashboard
And Rimuovi tutti i recapiti se esistono
Expand Down Expand Up @@ -199,7 +199,7 @@ Feature: Invio notifica digitale a destinatario con diversi tipi di domicilio im
And Logout da portale mittente

@invioNotificaDigitaleADomicilioImpostato
@recapitiPF

Scenario: [TA-FE INVIO DI UNA NOTIFICA DIGITALE A DESTINATARIO CON DOMICILIO IMPOSTATO] - Mittente invia una notifica digitale a destinatario, KO invio a domicilio di piattaforma, OK invio a domicilio speciale
Given PF - Si effettua la login tramite token exchange come "delegante", e viene visualizzata la dashboard
And Rimuovi tutti i recapiti se esistono
Expand Down Expand Up @@ -244,7 +244,7 @@ Feature: Invio notifica digitale a destinatario con diversi tipi di domicilio im
And Si accede nuovamente al portale "persona fisica" con token "delegante" per eliminare i recapiti inseriti

@invioNotificaDigitaleADomicilioImpostato
@recapitiPF

Scenario: [TA-FE INVIO DI UNA NOTIFICA DIGITALE A DESTINATARIO CON DOMICILIO IMPOSTATO] - Mittente invia una notifica digitale a destinatario, KO invio sia a domicilio di piattaforma che a domicilio speciale
Given PF - Si effettua la login tramite token exchange come "delegante", e viene visualizzata la dashboard
And Rimuovi tutti i recapiti se esistono
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,9 +49,9 @@ Feature: Mittente genera una notifica che non prevede pagamento

@TestSuite
@TA_InvioNotificaMonoPFNormalizzazioneKOLovelaceBis
Scenario: PN-9294 - Mittente genera una notifica mono destinatario a PF - Normalizzazione KO (indirizzo non trovato)
Scenario: PN-9294-bis - Mittente genera una notifica mono destinatario a PF - Normalizzazione KO (indirizzo non trovato)
Given PA - Si effettua la login tramite token exchange, e viene visualizzata la dashboard
And Nella pagina piattaforma notifiche destinatario si effettua la ricerca per codice IUN "RZVD-VGVL-XZLK-202410-X-1"
And Mittente ricerca notifica con IUN salvato "RZVD-VGVL-XZLK-202410-X-1"
And Si clicca la notifica ricercata
And Si clicca sul opzione Vedi Dettaglio
Then Si verifica che la notifica abbia lo stato "Destinatario irreperibile"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ Feature: Mittente genera una notifica che non prevede pagamento
@TA_InvioNotificaMonoPGDomiccilioDigitaleKOBis
Scenario: PN-9292-bis - Mittente genera una notifica mono destinatario a PG con domicilio digitale KO
Given PA - Si effettua la login tramite token exchange, e viene visualizzata la dashboard
And Nella pagina piattaforma notifiche destinatario si effettua la ricerca per codice IUN "NPEW-ZPLE-NJAZ-202410-N-1"
And Mittente ricerca notifica con IUN salvato "NPEW-ZPLE-NJAZ-202410-N-1"
And Si clicca la notifica ricercata
And Si clicca sul opzione Vedi Dettaglio
Then Si verifica che la notifica abbia lo stato "Destinatario irreperibile"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
Feature: Mittente genera una notifica che non prevede pagamento

@parallel
@Parallel
@TA_InviaNotificaConDestinatarioReperibileAlPrimoInvio
Scenario: [TA-FE MITTENTE CREA NOTIFICA CON PAGAMENTO] - Mittente invia una notifica a destinatario disponibile al primo invio
Given PA - Si effettua la login tramite token exchange, e viene visualizzata la dashboard
Expand Down
Loading