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

import cz.moneta.test.dsl.newib.NewIbPageFlow;
import cz.moneta.test.dsl.newib.mainpage.DashboardPage;
import cz.moneta.test.harness.support.web.CheckElementPresent;
import cz.moneta.test.harness.support.web.Click;
import cz.moneta.test.harness.support.web.Wait;

import static cz.moneta.test.dsl.newib.messages.NewMessageVictoryPage.*;

@Wait(value = {NEW_MESSAGE_BTN_XPATH, BACK_TO_MESSAGES_BTN_XPATH, MESSAGE_SENT_VICTORY_TITLE_XPATH,}, waitSecondsForElement = 30)
public interface NewMessageVictoryPage extends NewIbPageFlow<NewMessageVictoryPage> {

    String NEW_MESSAGE_BTN_XPATH = "//button[@data-testid='submit' and text()='Napsat další zprávu']";
    String BACK_TO_MESSAGES_BTN_XPATH = "//button[@data-testid='back' and text()='Zpět na seznam zpráv']";
    String MESSAGE_SENT_VICTORY_TITLE_XPATH = "//*[text()='Děkujeme Vám za zprávu a potvrzujeme její přijetí']";
    String CLOSE_MODAL_BTN_XPATH = "//button[@data-testid='close-messages-button']";
    String MESSAGE_SENT_VICTORY_TEXT_XPATH = "//p[text()='Děkujeme Vám za zprávu a potvrzujeme její přijetí. Odpověď obdržíte v nejkratším možném čase.']";

    @Wait(value = MESSAGE_SENT_VICTORY_TITLE_XPATH, waitSecondsForElement = 15)
    @CheckElementPresent(MESSAGE_SENT_VICTORY_TITLE_XPATH)
    NewMessageVictoryPage checkMessageSentVictoryTitle();

    @Click(NEW_MESSAGE_BTN_XPATH)
    NewMessagePage clickOnNewMessage();

    @Click(BACK_TO_MESSAGES_BTN_XPATH)
    MessagesModalPage clickOnBackToMessages();

    @Click(CLOSE_MODAL_BTN_XPATH)
    DashboardPage closeMessagesModal();

    @CheckElementPresent(MESSAGE_SENT_VICTORY_TEXT_XPATH)
    NewMessageVictoryPage checkMessageSentVictoryText();
}
