Files
Athou_commafeed/commafeed-server/src/test/java/com/commafeed/e2e/AuthentificationIT.java

81 lines
2.8 KiB
Java
Raw Normal View History

2022-08-13 13:00:23 +02:00
package com.commafeed.e2e;
2024-08-07 08:10:14 +02:00
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
2022-08-13 13:00:23 +02:00
import org.junit.jupiter.api.Test;
2024-08-07 08:10:14 +02:00
import com.microsoft.playwright.Browser;
2022-08-13 13:00:23 +02:00
import com.microsoft.playwright.Locator;
2024-06-12 11:35:05 +02:00
import com.microsoft.playwright.Page;
2024-08-07 08:10:14 +02:00
import com.microsoft.playwright.Playwright;
2022-08-13 13:00:23 +02:00
import com.microsoft.playwright.assertions.PlaywrightAssertions;
2024-06-12 11:35:05 +02:00
import com.microsoft.playwright.options.AriaRole;
2022-08-13 13:00:23 +02:00
2024-08-07 08:10:14 +02:00
import io.quarkus.test.junit.QuarkusTest;
2022-08-13 13:00:23 +02:00
2024-08-07 08:10:14 +02:00
@QuarkusTest
class AuthentificationIT {
2022-08-13 13:00:23 +02:00
2024-08-07 08:10:14 +02:00
private final Playwright playwright = Playwright.create();
private final Browser browser = playwright.chromium().launch();
private Page page;
@BeforeEach
void init() {
page = browser.newContext().newPage();
}
@AfterEach
void cleanup() {
playwright.close();
}
2022-08-13 13:00:23 +02:00
@Test
void loginFail() {
2023-05-04 21:27:02 +02:00
page.navigate(getLoginPageUrl());
2024-06-12 11:35:05 +02:00
page.getByPlaceholder("User Name or E-mail").fill("admin");
page.getByPlaceholder("Password").fill("wrong_password");
page.getByRole(AriaRole.BUTTON, new Page.GetByRoleOptions().setName("Log in")).click();
PlaywrightAssertions.assertThat(page.getByRole(AriaRole.ALERT)).containsText("wrong username or password");
2022-08-13 13:00:23 +02:00
}
@Test
void loginSuccess() {
2023-05-04 21:27:02 +02:00
page.navigate(getLoginPageUrl());
2022-08-13 13:00:23 +02:00
PlaywrightTestUtils.login(page);
2024-08-07 08:10:14 +02:00
PlaywrightAssertions.assertThat(page).hasURL("http://localhost:8085/#/app/category/all");
2022-08-13 13:00:23 +02:00
}
@Test
void registerFailPasswordTooSimple() {
2023-05-04 21:27:02 +02:00
page.navigate(getLoginPageUrl());
2024-06-12 11:35:05 +02:00
page.getByText("Sign up!").click();
page.getByPlaceholder("User Name").fill("user");
page.getByPlaceholder("E-mail address").fill("user@domain.com");
page.getByPlaceholder("Password").fill("pass");
page.getByRole(AriaRole.BUTTON, new Page.GetByRoleOptions().setName("Sign up")).click();
2022-08-13 13:00:23 +02:00
2024-06-12 11:35:05 +02:00
Locator alert = page.getByRole(AriaRole.ALERT);
2022-08-13 13:00:23 +02:00
PlaywrightAssertions.assertThat(alert).containsText("Password must be 8 or more characters in length.");
PlaywrightAssertions.assertThat(alert).containsText("Password must contain 1 or more uppercase characters.");
PlaywrightAssertions.assertThat(alert).containsText("Password must contain 1 or more digit characters.");
PlaywrightAssertions.assertThat(alert).containsText("Password must contain 1 or more special characters.");
}
@Test
void registerSuccess() {
2023-05-04 21:27:02 +02:00
page.navigate(getLoginPageUrl());
2024-06-12 11:35:05 +02:00
page.getByText("Sign up!").click();
page.getByPlaceholder("User Name").fill("user");
page.getByPlaceholder("E-mail address").fill("user@domain.com");
page.getByPlaceholder("Password").fill("MyPassword1!");
page.getByRole(AriaRole.BUTTON, new Page.GetByRoleOptions().setName("Sign up")).click();
2024-08-07 08:10:14 +02:00
PlaywrightAssertions.assertThat(page).hasURL("http://localhost:8085/#/app/category/all");
2022-08-13 13:00:23 +02:00
}
2023-05-04 21:27:02 +02:00
private String getLoginPageUrl() {
2024-08-07 08:10:14 +02:00
return "http://localhost:8085/#/login";
2023-05-04 21:27:02 +02:00
}
2022-08-13 13:00:23 +02:00
}