package cz.moneta.test.dsl.newib.savings;

import cz.moneta.test.dsl.newib.NewIbPageFlow;
import cz.moneta.test.harness.support.web.*;

import static cz.moneta.test.dsl.newib.savings.DpsVictoryPage.VICTORY_HEADER_XPATH;
import static cz.moneta.test.dsl.newib.savings.DpsVictoryPage.VICTORY_TITLE_XPATH;
import static cz.moneta.test.dsl.newib.savings.DpsVictoryPage.VICTORY_TEXT_XPATH;
import static cz.moneta.test.dsl.newib.savings.DpsVictoryPage.VICTORY_ALERT_XPATH;

@Wait(value ={VICTORY_HEADER_XPATH, VICTORY_TITLE_XPATH, VICTORY_TEXT_XPATH, VICTORY_ALERT_XPATH}, waitSecondsForElement = 30)
public interface DpsVictoryPage extends NewIbPageFlow<DpsVictoryPage> {

    String VICTORY_HEADER_XPATH = "//h1[@data-testid='dps-contribution-victory-header' and text()='Doplňkové penzijní spoření']";
    String VICTORY_TITLE_XPATH = "//h2[@data-testid='dps-contribution-victory-title' and contains(., 'Hotovo! Změna Doplňkového penzijního spoření je platná od')]";
    String VICTORY_TEXT_XPATH = "//span[@data-testid='dps-contribution-victory-text' and text()='Pokud Vám bude na spoření přispívat zaměstnavatel, přepošlete mu prosím smlouvu od NN penzijní společnosti. Najdete ji ve svém e-mailu.']";
    String VICTORY_ALERT_XPATH = "//div[@class='c-alert__text' and contains(., 'Nezapomeňte si nastavit výši vašeho trvalého příkazu na')]";
    String STANDING_ORDER_BUTTON_XPATH = "//button[@data-testid='dps-contribution-victory-btn-next' and text()='Nastavit trvalý příkaz']";
    String CLOSE_SETTINGS_BUTTON_XPATH = "//button[@data-testid='settings_modal-close']";
    String BACK_TO_DASHBOARD_BUTTON_XPATH = "//button[@data-testid='dps-contribution-victory-btn-back' and text()='Zpět na Přehled']";

    @Click(STANDING_ORDER_BUTTON_XPATH)
    DpsVictoryPage clickOnStandingOrderButton();

    @Click(BACK_TO_DASHBOARD_BUTTON_XPATH)
    DpsPage clickOnBackToDashboardButton();

    @Wait(value = CLOSE_SETTINGS_BUTTON_XPATH, until = Until.VISIBLE, explicitWaitSeconds = 1)
    @Click(CLOSE_SETTINGS_BUTTON_XPATH)
    DpsVictoryPage clickOnCloseSettingsButton();
}