Skip to content

Commit

Permalink
make tests autonomous
Browse files Browse the repository at this point in the history
titusfortner committed Jun 29, 2023
1 parent 99e4160 commit afddfd3
Showing 8 changed files with 113 additions and 15 deletions.
5 changes: 5 additions & 0 deletions pom.xml
Original file line number Diff line number Diff line change
@@ -45,5 +45,10 @@
<artifactId>junit-jupiter-engine</artifactId>
<version>5.9.2</version>
</dependency>
<dependency>
<groupId>net.datafaker</groupId>
<artifactId>datafaker</artifactId>
<version>1.3.0</version>
</dependency>
</dependencies>
</project>
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package com.saucelabs.scalable_tests;

import com.saucelabs.scalable_tests.data.User;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import com.saucelabs.scalable_tests.pages.HeaderSection;
@@ -11,17 +12,19 @@ public class AuthenticationTest extends BaseTest {
@Test
public void signInUnsuccessful() {
HomePage homePage = HomePage.visit(driver);
User lockedOutUser = User.lockedOut();

homePage.login("locked_out_user", "secret_sauce");
homePage.login(lockedOutUser);

Assertions.assertTrue(homePage.isLockedOut(), "Error Not Found");
}

@Test
public void signInSuccessful() {
HomePage homePage = HomePage.visit(driver);
User validUser = User.valid();

homePage.login("standard_user", "secret_sauce");
homePage.login(validUser);

InventoryPage inventoryPage = new InventoryPage(driver);
Assertions.assertTrue(inventoryPage.isOnPage(), "Login Not Successful");
@@ -30,7 +33,8 @@ public void signInSuccessful() {
@Test
public void logout() {
HomePage homePage = HomePage.visit(driver);
homePage.login("standard_user", "secret_sauce");
User validUser = User.valid();
homePage.login(validUser);

HeaderSection headerSection = new HeaderSection(driver);
headerSection.logOut();
5 changes: 4 additions & 1 deletion src/test/java/com/saucelabs/scalable_tests/CartTest.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package com.saucelabs.scalable_tests;

import com.saucelabs.scalable_tests.data.User;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import com.saucelabs.scalable_tests.pages.CartPage;
@@ -12,7 +13,9 @@
public class CartTest extends BaseTest {
public void login() {
HomePage homePage = HomePage.visit(driver);
homePage.login("standard_user", "secret_sauce");
User validUser = User.valid();

homePage.login(validUser);
}

@Test
14 changes: 10 additions & 4 deletions src/test/java/com/saucelabs/scalable_tests/CheckoutTest.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package com.saucelabs.scalable_tests;

import com.saucelabs.scalable_tests.data.Person;
import com.saucelabs.scalable_tests.data.User;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import com.saucelabs.scalable_tests.pages.CartPage;
@@ -14,7 +16,9 @@ public class CheckoutTest extends BaseTest {

public void login() {
HomePage homePage = HomePage.visit(driver);
homePage.login("standard_user", "secret_sauce");
User validUser = User.valid();

homePage.login(validUser);
}

public void goToCheckoutWithItem() {
@@ -31,18 +35,20 @@ public void goodInfo() {
goToCheckoutWithItem();
InformationPage informationPage = new InformationPage(driver);

informationPage.addInformation("Luke", "Perry", "90210");
Person validPerson = new Person();
informationPage.addInformation(validPerson);

CheckoutPage checkoutPage = new CheckoutPage(driver);
Assertions.assertTrue(checkoutPage.isOnPage(),"Information Submission Unsuccessful");
Assertions.assertTrue(checkoutPage.isOnPage(), "Information Submission Unsuccessful");
}

@Test
public void completeCheckout() {
login();
goToCheckoutWithItem();
InformationPage informationPage = new InformationPage(driver);
informationPage.addInformation("Luke", "Perry", "90210");
Person validPerson = new Person();
informationPage.addInformation(validPerson);

CheckoutPage checkoutPage = new CheckoutPage(driver);
checkoutPage.finish();
35 changes: 35 additions & 0 deletions src/test/java/com/saucelabs/scalable_tests/data/Person.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
package com.saucelabs.scalable_tests.data;


import net.datafaker.Faker;

public class Person {
private final Faker faker = new Faker();
private String firstName = faker.name().firstName();
private String lastName = faker.name().lastName();
private String postalCode = faker.address().zipCode();

public String getFirstName() {
return firstName;
}

public void setFirstName(String firstName) {
this.firstName = firstName;
}

public String getLastName() {
return lastName;
}

public void setLastName(String lastName) {
this.lastName = lastName;
}

public String getPostalCode() {
return postalCode;
}

public void setPostalCode(String postalCode) {
this.postalCode = postalCode;
}
}
43 changes: 43 additions & 0 deletions src/test/java/com/saucelabs/scalable_tests/data/User.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
package com.saucelabs.scalable_tests.data;

import net.datafaker.Faker;

public class User {
private final Faker faker = new Faker();
private String username = faker.name().username();
private String password = faker.internet().password();

public static User valid() {
User user = new User();
user.setUsername("standard_user");
user.setPassword("secret_sauce");
return user;
}

public static User lockedOut() {
User user = new User();
user.setUsername("locked_out_user");
user.setPassword("secret_sauce");
return user;
}

public static User invalid() {
return new User();
}

public void setUsername(String username) {
this.username = username;
}

public void setPassword(String password) {
this.password = password;
}

public String getUsername() {
return username;
}

public String getPassword() {
return password;
}
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package com.saucelabs.scalable_tests.pages;

import com.saucelabs.scalable_tests.data.User;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;

@@ -20,9 +21,9 @@ public HomePage(WebDriver driver) {
this.driver = driver;
}

public void login(String username, String password) {
driver.findElement(usernameTextfield).sendKeys(username);
driver.findElement(passwordTextfield).sendKeys(password);
public void login(User user) {
driver.findElement(usernameTextfield).sendKeys(user.getUsername());
driver.findElement(passwordTextfield).sendKeys(user.getPassword());
driver.findElement(loginButton).click();
}

Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package com.saucelabs.scalable_tests.pages;

import com.saucelabs.scalable_tests.data.Person;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;

@@ -13,10 +14,10 @@ public InformationPage(WebDriver driver) {
this.driver = driver;
}

public void addInformation(String firstName, String lastName, String postalCode) {
driver.findElement(firstNameElement).sendKeys(firstName);
driver.findElement(lastNameElement).sendKeys(lastName);
driver.findElement(postalCodeElement).sendKeys(postalCode);
public void addInformation(Person person) {
driver.findElement(firstNameElement).sendKeys(person.getFirstName());
driver.findElement(lastNameElement).sendKeys(person.getLastName());
driver.findElement(postalCodeElement).sendKeys(person.getPostalCode());
driver.findElement(continueButton).click();
}
}

0 comments on commit afddfd3

Please sign in to comment.