package ru.otus.mobile.tests;

import com.google.inject.Inject;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import ru.otus.mobile.annotations.MobileUser;
import ru.otus.mobile.config.TestAccount;
import ru.otus.mobile.config.TestContext;
import ru.otus.mobile.db.DbClient;
import ru.otus.mobile.extensions.MobileExtension;
import ru.otus.mobile.page.GiftsPage;
import ru.otus.mobile.page.LoginPage;
import ru.otus.mobile.page.WishlistsPage;
import ru.otus.mobile.util.TestData;

@ExtendWith(MobileExtension.class)
@MobileUser(TestAccount.GIFTS)
public class GiftsTest {
    @Inject
    private WishlistsPage wishlistsPage;

    @Inject
    private GiftsPage giftsPage;

    @Inject
    private TestData testData;

    @Inject
    private DbClient dbClient;

    @Inject
    private LoginPage loginPage;

    @Test
    @DisplayName("Создание и редактирование подарка")
    void createAndEditGift(TestContext context) {
        context.account().dataPreparation().accept(dbClient, context.account().username());
        loginPage.login(context.account());

        String name = testData.uniqueName("Gift");
        String updated = name + " updated";

        wishlistsPage.open();
        wishlistsPage.openFirstWishlist();
        giftsPage.createGift(name);
        giftsPage.shouldSeeGift(name);
        giftsPage.editGift(name, updated);
        giftsPage.shouldSeeGift(updated);
    }
}
