add playwright tests

This commit is contained in:
Athou
2022-08-13 13:00:23 +02:00
parent 04894f118b
commit ece9b993e0
7 changed files with 314 additions and 10 deletions

View File

@@ -0,0 +1,63 @@
package com.commafeed.e2e;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import com.commafeed.CommaFeedApplication;
import com.commafeed.CommaFeedConfiguration;
import com.microsoft.playwright.Locator;
import com.microsoft.playwright.assertions.PlaywrightAssertions;
import io.dropwizard.testing.ResourceHelpers;
import io.dropwizard.testing.junit5.DropwizardAppExtension;
import io.dropwizard.testing.junit5.DropwizardExtensionsSupport;
@ExtendWith(DropwizardExtensionsSupport.class)
class AuthentificationIT extends PlaywrightTestBase {
private static final DropwizardAppExtension<CommaFeedConfiguration> EXT = new DropwizardAppExtension<CommaFeedConfiguration>(
CommaFeedApplication.class, ResourceHelpers.resourceFilePath("config.test.yml"));
@Test
void loginFail() {
page.navigate("http://localhost:" + EXT.getLocalPort());
page.locator("[placeholder='User Name or E-mail']").fill("admin");
page.locator("[placeholder='Password']").fill("wrong_password");
page.locator("button:has-text('Log in')").click();
PlaywrightAssertions.assertThat(page.locator("div[role='alert']")).containsText("wrong username or password");
}
@Test
void loginSuccess() {
page.navigate("http://localhost:" + EXT.getLocalPort());
PlaywrightTestUtils.login(page);
PlaywrightAssertions.assertThat(page).hasURL("http://localhost:" + EXT.getLocalPort() + "/#/app/category/all");
}
@Test
void registerFailPasswordTooSimple() {
page.navigate("http://localhost:" + EXT.getLocalPort());
page.locator("text=Sign up!").click();
page.locator("[placeholder='User Name']").fill("user");
page.locator("[placeholder='E-mail address']").fill("user@domain.com");
page.locator("[placeholder='Password']").fill("pass");
page.locator("button:has-text('Sign up')").click();
Locator alert = page.locator("div[role='alert']");
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() {
page.navigate("http://localhost:" + EXT.getLocalPort());
page.locator("text=Sign up!").click();
page.locator("[placeholder='User Name']").fill("user");
page.locator("[placeholder='E-mail address']").fill("user@domain.com");
page.locator("[placeholder='Password']").fill("MyPassword1!");
page.locator("button:has-text('Sign up')").click();
PlaywrightAssertions.assertThat(page).hasURL("http://localhost:" + EXT.getLocalPort() + "/#/app/category/all");
}
}