Skip to content
Snippets Groups Projects
Commit 61ee29e4 authored by Orlando Piñero's avatar Orlando Piñero
Browse files

preparation for testing with docer

parent 747c5a44
No related branches found
No related tags found
No related merge requests found
Showing
with 3 additions and 527 deletions
REACT_APP_SERVER=http://127.0.0.1/api
CHROME_DRIVER=selenium driver/chromedriver.exe
\ No newline at end of file
CHROME_DRIVER=selenium driver/chromedriver.exe
REST_API=127.0.0.1
\ No newline at end of file
......@@ -3,6 +3,7 @@ WORKDIR /app
COPY package*.json ./
RUN npm install
RUN npm install selenium-webdriver
ENV PORT 3000
EXPOSE 3000
......
File added
const { Builder, By, until } = require('selenium-webdriver');
const chrome = require('selenium-webdriver/chrome');
const webdriver = process.env.CHROME_DRIVER
const service = new chrome.ServiceBuilder(webdriver);
describe("Find Landing Page", () => {
let driver
beforeAll(async () => {
driver = new Builder().forBrowser('chrome').setChromeService(service).build();
})
afterAll(async () => {
await driver.quit();
})
it("should find the landing page", async () => {
await driver.get("http://localhost:3000")
const landingPage = await driver.wait(until.elementLocated(By.id("LandingPage")), 5000)
expect(landingPage).toBeDefined();
console.log("Landing page found")
})
})
describe("Login Tests", () => {
let driver
beforeAll(async () => {
driver = new Builder().forBrowser('chrome').setChromeService(service).build();
await driver.get("http://localhost:3000")
})
afterEach(async () => {
await driver.quit();
})
it("should find the landing page", async () => {
const loginDialogButton = await driver.wait(until.elementLocated(By.id("OpenLoginDialogButton")), 5000)
expect(loginDialogButton).toBeDefined();
console.log("OpenLoginDialogButton found")
})
it("should be able to click the Login-Dialog-Button", async () => {
const loginDialogButton = await driver.wait(until.elementLocated(By.id("OpenLoginDialogButton")), 5000)
expect(loginDialogButton.isEnabled()).toBeTruthy();
loginDialogButton.click();
console.log("OpenLoginDialogButton can be clicked")
})
it("should find the login dialog", async () => {
const loginDialogButton = await driver.wait(until.elementLocated(By.id("OpenLoginDialogButton")), 5000)
loginDialogButton.click();
const loginDialog = await driver.wait(until.elementLocated(By.id("LoginDialog")), 5000)
expect(loginDialog).toBeDefined();
})
it("should be able to enter username (admin) and password (123)", async () => {
const loginDialogButton = await driver.wait(until.elementLocated(By.id("OpenLoginDialogButton")), 5000)
loginDialogButton.click();
const userIdTextField = await driver.wait(until.elementLocated(By.id("LoginDialogUserIDText")), 5000)
expect(userIdTextField).toBeDefined();
await userIdTextField.sendKeys("admin");
const passwordTextField = await driver.wait(until.elementLocated(By.id("LoginDialogPasswordText")), 5000)
expect(passwordTextField).toBeDefined();
await passwordTextField.sendKeys("123");
})
it("should be able to click Login Button", async () => {
const loginDialogButton = await driver.wait(until.elementLocated(By.id("OpenLoginDialogButton")), 5000)
loginDialogButton.click();
const userIdTextField = await driver.wait(until.elementLocated(By.id("LoginDialogUserIDText")), 5000)
expect(userIdTextField).toBeDefined();
await userIdTextField.sendKeys("admin");
const passwordTextField = await driver.wait(until.elementLocated(By.id("LoginDialogPasswordText")), 5000)
expect(passwordTextField).toBeDefined();
await passwordTextField.sendKeys("123");
const loginButton = await driver.wait(until.elementLocated(By.id("PerformLoginButton")), 5000)
expect(loginButton).toBeDefined();
})
})
const { Builder, By, until } = require('selenium-webdriver');
const chrome = require('selenium-webdriver/chrome');
const webdriver = process.env.CHROME_DRIVER
const service = new chrome.ServiceBuilder(webdriver);
const login = require("./helperSimulations/simulateAdminLogin");
const findLastDegreeCourse = require('./helperSimulations/findDegreeCourseID');
describe("To create an Application for 'Architektur'", () => {
let driver
beforeAll(async () => {
driver = new Builder().forBrowser('chrome').setChromeService(service).build();
await login(driver)
})
afterAll(async () => {
await driver.quit();
})
it("should have a button to create an application", async () => {
const degreeCourseManagementButton = await driver.wait(until.elementLocated(By.id("OpenDegreeCourseManagementPageButton")), 5000)
expect(degreeCourseManagementButton).toBeDefined();
await degreeCourseManagementButton.click();
const id = await findLastDegreeCourse(driver)
const architectureButton = await driver.wait(until.elementLocated(By.id("CreateDegreeCourseApplicationForDegreeCourse" + id)), 5000)
expect(architectureButton).toBeDefined();
})
it("should open a view to type in data for an application", async () => {
const degreeCourseManagementButton = await driver.wait(until.elementLocated(By.id("OpenDegreeCourseManagementPageButton")), 5000)
expect(degreeCourseManagementButton).toBeDefined();
await degreeCourseManagementButton.click();
const id = await findLastDegreeCourse(driver)
const architectureButton = await driver.wait(until.elementLocated(By.id("CreateDegreeCourseApplicationForDegreeCourse" + id)), 5000)
expect(architectureButton).toBeDefined();
await architectureButton.click();
const targetPeriodYearTextField = await driver.wait(until.elementLocated(By.id("CreateDegreeCourseApplicationEditTargetPeriodYear")), 5000)
const targetPeriodName = await driver.wait(until.elementLocated(By.id("CreateDegreeCourseApplicationEditTargetPeriodName")), 5000)
const userID = await driver.wait(until.elementLocated(By.id("CreateDegreeCourseApplicationEditUserID")), 5000)
expect(targetPeriodYearTextField).toBeDefined();
expect(targetPeriodName).toBeDefined();
expect(userID).toBeDefined();
await targetPeriodYearTextField.sendKeys("2022")
await targetPeriodName.sendKeys("WiSe")
await userID.sendKeys("test123")
const finishCreateDegreeCourseApplicationButton = await driver.wait(until.elementLocated(By.id("CreateDegreeCourseApplicationCreateButton")), 5000)
expect(finishCreateDegreeCourseApplicationButton).toBeDefined();
finishCreateDegreeCourseApplicationButton.click();
})
})
\ No newline at end of file
const { Builder, By, until } = require('selenium-webdriver');
const chrome = require('selenium-webdriver/chrome');
const webdriver = process.env.CHROME_DRIVER
const service = new chrome.ServiceBuilder(webdriver);
const login = require("./helperSimulations/simulateAdminLogin");
const findLastDegreeCourseApplication = require('./helperSimulations/findDegreeCourseApplicationID');
describe("After entering DegreeCourseApplicationManagement", () => {
let driver
beforeAll(async () => {
driver = new Builder().forBrowser('chrome').setChromeService(service).build();
await login(driver)
})
afterAll(async () => {
await driver.quit();
})
it("should be able to find and click DegreeCourse-Application-Management-Button", async () => {
const degreeCourseApplicationManagementButton = await driver.wait(until.elementLocated(By.id("OpenDegreeCourseApplicationManagementPageButton")), 5000)
expect(degreeCourseApplicationManagementButton).toBeDefined();
await degreeCourseApplicationManagementButton.click();
})
it("should show the new Application", async () => {
const degreeCourseApplicationManagementButton = await driver.wait(until.elementLocated(By.id("OpenDegreeCourseApplicationManagementPageButton")), 5000)
expect(degreeCourseApplicationManagementButton).toBeDefined();
await degreeCourseApplicationManagementButton.click();
const id = await findLastDegreeCourseApplication(driver)
const architectureApplication = await driver.wait(until.elementLocated(By.id("DegreeCourseApplicationItem" + id)), 5000)
expect(architectureApplication).toBeDefined();
})
})
\ No newline at end of file
const { Builder, By, until } = require('selenium-webdriver');
const chrome = require('selenium-webdriver/chrome');
const webdriver = process.env.CHROME_DRIVER
const service = new chrome.ServiceBuilder(webdriver);
const login = require("./helperSimulations/simulateAdminLogin")
describe("After entering DegreeCourseManagement", () => {
let driver
beforeAll(async () => {
driver = new Builder().forBrowser('chrome').setChromeService(service).build();
await login(driver)
})
afterAll(async () => {
await driver.quit();
})
it("should be able to find and click DegreeCourse-Management-Button", async () => {
const degreeCourseManagementButton = await driver.wait(until.elementLocated(By.id("OpenDegreeCourseManagementPageButton")), 5000)
expect(degreeCourseManagementButton).toBeDefined();
await degreeCourseManagementButton.click();
})
it("should be able to find and click the button to create a degreeCourse", async () => {
const degreeCourseManagementButton = await driver.wait(until.elementLocated(By.id("OpenDegreeCourseManagementPageButton")), 5000)
expect(degreeCourseManagementButton).toBeDefined();
await degreeCourseManagementButton.click();
const createDegreeCourseButton = await driver.wait(until.elementLocated(By.id("DegreeCourseManagementPageCreateDegreeCourseButton")), 5000)
expect(createDegreeCourseButton).toBeDefined();
})
})
describe("To create new degreeCourse", () => {
let driver
beforeAll(async () => {
driver = new Builder().forBrowser('chrome').setChromeService(service).build();
await login(driver)
})
afterAll(async () => {
await driver.quit();
})
it("needs a button to create a new degreeCourse", async () => {
const degreeCourseManagementButton = await driver.wait(until.elementLocated(By.id("OpenDegreeCourseManagementPageButton")), 5000)
expect(degreeCourseManagementButton).toBeDefined();
await degreeCourseManagementButton.click();
const createDegreeCourseButton = await driver.wait(until.elementLocated(By.id("DegreeCourseManagementPageCreateDegreeCourseButton")), 5000)
expect(createDegreeCourseButton).toBeDefined();
})
it("should open a dialog to create a new degreeCourse", async () => {
const degreeCourseManagementButton = await driver.wait(until.elementLocated(By.id("OpenDegreeCourseManagementPageButton")), 5000)
expect(degreeCourseManagementButton).toBeDefined();
await degreeCourseManagementButton.click();
const createDegreeCourseButton = await driver.wait(until.elementLocated(By.id("DegreeCourseManagementPageCreateDegreeCourseButton")), 5000)
expect(createDegreeCourseButton).toBeDefined();
await createDegreeCourseButton.click();
const degreeCourseNameTextField = await driver.wait(until.elementLocated(By.id("CreateDegreeCourseComponentEditName")), 5000)
const shortNameTextField = await driver.wait(until.elementLocated(By.id("CreateDegreeCourseComponentEditShortName")), 5000)
const universityNameTextField = await driver.wait(until.elementLocated(By.id("CreateDegreeCourseComponentEditUniversityName")), 5000)
const universityShortNameTextField = await driver.wait(until.elementLocated(By.id("CreateDegreeCourseComponentEditUniversityShortName")), 5000)
const departmentNameTextField = await driver.wait(until.elementLocated(By.id("CreateDegreeCourseComponentEditDepartmentName")), 5000)
const departmentShortNameTextField = await driver.wait(until.elementLocated(By.id("CreateDegreeCourseComponentEditDepartmentShortName")), 5000)
expect(degreeCourseNameTextField).toBeDefined();
expect(shortNameTextField).toBeDefined();
expect(universityNameTextField).toBeDefined();
expect(universityShortNameTextField).toBeDefined();
expect(departmentNameTextField).toBeDefined();
expect(departmentShortNameTextField).toBeDefined();
await degreeCourseNameTextField.sendKeys("Architektur")
await shortNameTextField.sendKeys("AR")
await universityNameTextField.sendKeys("Technische Hochschule")
await universityShortNameTextField.sendKeys("TH")
await departmentNameTextField.sendKeys("FB Architektur")
await departmentShortNameTextField.sendKeys("FB V")
const finishCreateDegreeCourseButton = await driver.wait(until.elementLocated(By.id("CreateDegreeCourseComponentCreateDegreeCourseButton")), 5000)
expect(finishCreateDegreeCourseButton).toBeDefined();
finishCreateDegreeCourseButton.click();
})
})
\ No newline at end of file
const { Builder, By, until } = require('selenium-webdriver');
const chrome = require('selenium-webdriver/chrome');
const webdriver = process.env.CHROME_DRIVER
const service = new chrome.ServiceBuilder(webdriver);
const adminLogin = require("./helperSimulations/simulateAdminLogin");
const createTest123 = require('./helperSimulations/createTest123');
describe("delete User", () => {
let driver
beforeAll(async () => {
driver = new Builder().forBrowser('chrome').setChromeService(service).build();
})
afterAll(async () => {
await driver.quit();
})
it("should be able to delete user test123 by UserManagement", async () => {
createTest123(driver)
const deleteButton = await driver.wait(until.elementLocated(By.id("UserItemDeleteButtontest123")), 5000)
expect(deleteButton).toBeDefined()
deleteButton.click()
const confirmDeleteButton = await driver.wait(until.elementLocated(By.id("DeleteDialogConfirmButton")), 5000)
confirmDeleteButton.click()
})
it("should not show test123 in the UserManagement anymore", async () => {
await adminLogin(driver);
const notFoundUser = await driver.findElements(By.id('UserItemtest123'));
expect(notFoundUser.length).toBe(0);
})
})
\ No newline at end of file
const { Builder, By, until } = require('selenium-webdriver');
const chrome = require('selenium-webdriver/chrome');
const webdriver = process.env.CHROME_DRIVER
const service = new chrome.ServiceBuilder(webdriver);
const login = require("./helperSimulations/simulateNoAdminLogin")
const adminLogin = require("./helperSimulations/simulateAdminLogin")
describe("logout and login as user test123", () => {
let driver
beforeAll(async () => {
driver = new Builder().forBrowser('chrome').setChromeService(service).build();
})
afterAll(async () => {
await driver.quit();
})
it("should be able to logout and find landing page again", async () => {
await adminLogin(driver)
const logoutButton = await driver.wait(until.elementLocated(By.id("LogoutButton")), 5000)
expect(logoutButton).toBeDefined()
await logoutButton.click()
const startPage = await driver.wait(until.elementLocated(By.id("LandingPage")), 5000)
expect(startPage).toBeDefined()
})
it("should be possible to login as user test123 again", async () => {
await login(driver)
})
it("should not show the User-Management-Button", async () => {
await login(driver);
const notFoundButton = await driver.findElements(By.id('OpenUserManagementPageButton'));
expect(notFoundButton.length).toBe(0);
});
})
\ No newline at end of file
const { Builder, By, until } = require('selenium-webdriver');
const chrome = require('selenium-webdriver/chrome');
const webdriver = process.env.CHROME_DRIVER
const service = new chrome.ServiceBuilder(webdriver);
const login = require("./helperSimulations/simulateAdminLogin")
describe("After entering UserManagement", () => {
let driver
beforeAll(async () => {
driver = new Builder().forBrowser('chrome').setChromeService(service).build();
await login(driver)
})
afterAll(async () => {
await driver.quit();
})
it("should be able to find and click User-Management-Button", async () => {
const userManagementButton = await driver.wait(until.elementLocated(By.id("OpenUserManagementPageButton")), 5000)
expect(userManagementButton).toBeDefined();
await userManagementButton.click();
})
it("should be able to find User admin", async () => {
const userManagementButton = await driver.wait(until.elementLocated(By.id("OpenUserManagementPageButton")), 5000)
expect(userManagementButton).toBeDefined();
await userManagementButton.click();
const adminItem = await driver.wait(until.elementLocated(By.id("UserItemadmin")), 5000)
expect(adminItem).toBeDefined();
})
it("should be able to find and click the button to create a user", async () => {
const userManagementButton = await driver.wait(until.elementLocated(By.id("OpenUserManagementPageButton")), 5000)
expect(userManagementButton).toBeDefined();
await userManagementButton.click();
const createUserButton = await driver.wait(until.elementLocated(By.id("UserManagementPageCreateUserButton")), 5000)
expect(createUserButton).toBeDefined();
})
})
describe("To create new user", () => {
let driver
beforeAll(async () => {
driver = new Builder().forBrowser('chrome').setChromeService(service).build();
await login(driver)
})
afterAll(async () => {
await driver.quit();
})
it("there should be a button to create a new user", async () => {
const userManagementButton = await driver.wait(until.elementLocated(By.id("OpenUserManagementPageButton")), 5000)
expect(userManagementButton).toBeDefined();
await userManagementButton.click();
const createUserButton = await driver.wait(until.elementLocated(By.id("UserManagementPageCreateUserButton")), 5000)
expect(createUserButton).toBeDefined();
})
it("should open a dialog to create a new user", async () => {
const userManagementButton = await driver.wait(until.elementLocated(By.id("OpenUserManagementPageButton")), 5000)
expect(userManagementButton).toBeDefined();
await userManagementButton.click();
const createUserButton = await driver.wait(until.elementLocated(By.id("UserManagementPageCreateUserButton")), 5000)
expect(createUserButton).toBeDefined();
createUserButton.click();
const userIDTextField = await driver.wait(until.elementLocated(By.id("CreateUserComponentEditUserID")), 5000)
const firstNameTextField = await driver.wait(until.elementLocated(By.id("CreateUserComponentEditFirstName")), 5000)
const lastNameIDTextField = await driver.wait(until.elementLocated(By.id("CreateUserComponentEditLastName")), 5000)
const passwordIDTextField = await driver.wait(until.elementLocated(By.id("CreateUserComponentEditPassword")), 5000)
expect(userIDTextField).toBeDefined();
expect(firstNameTextField).toBeDefined();
expect(lastNameIDTextField).toBeDefined();
expect(passwordIDTextField).toBeDefined();
await userIDTextField.sendKeys("test123")
await firstNameTextField.sendKeys("Manfred")
await lastNameIDTextField.sendKeys("Mustermann")
await passwordIDTextField.sendKeys("asdf")
const finishCreateUserButton = await driver.wait(until.elementLocated(By.id("CreateUserComponentCreateUserButton")), 5000)
expect(finishCreateUserButton).toBeDefined();
finishCreateUserButton.click();
})
it("should be possible to go back to the start page", async () => {
const startPageButton = await driver.wait(until.elementLocated(By.id("OpenStartPageButton")), 5000)
expect(startPageButton).toBeDefined();
await startPageButton.click();
})
})
\ No newline at end of file
const { By, until } = require('selenium-webdriver');
const login = require("./simulateAdminLogin")
module.exports = async function (driver) {
await login(driver)
const userManagementButton = await driver.wait(until.elementLocated(By.id("OpenUserManagementPageButton")), 5000)
expect(userManagementButton).toBeDefined();
await userManagementButton.click();
const createUserButton = await driver.wait(until.elementLocated(By.id("UserManagementPageCreateUserButton")), 5000)
expect(createUserButton).toBeDefined();
createUserButton.click();
const userIDTextField = await driver.wait(until.elementLocated(By.id("CreateUserComponentEditUserID")), 5000)
const firstNameTextField = await driver.wait(until.elementLocated(By.id("CreateUserComponentEditFirstName")), 5000)
const lastNameIDTextField = await driver.wait(until.elementLocated(By.id("CreateUserComponentEditLastName")), 5000)
const passwordIDTextField = await driver.wait(until.elementLocated(By.id("CreateUserComponentEditPassword")), 5000)
expect(userIDTextField).toBeDefined();
expect(firstNameTextField).toBeDefined();
expect(lastNameIDTextField).toBeDefined();
expect(passwordIDTextField).toBeDefined();
await userIDTextField.sendKeys("test123")
await firstNameTextField.sendKeys("Manfred")
await lastNameIDTextField.sendKeys("Mustermann")
await passwordIDTextField.sendKeys("asdf")
const finishCreateUserButton = await driver.wait(until.elementLocated(By.id("CreateUserComponentCreateUserButton")), 5000)
expect(finishCreateUserButton).toBeDefined();
finishCreateUserButton.click();
}
\ No newline at end of file
const { By } = require('selenium-webdriver');
module.exports = async function (driver) {
const degreeCourses = await driver.findElements(By.className('card'));
const lastOne = await degreeCourses.pop();
const itemAndID = await lastOne.getAttribute("id")
return itemAndID.split("DegreeCourseApplicationItem")[1]
}
\ No newline at end of file
const { By } = require('selenium-webdriver');
module.exports = async function (driver) {
const degreeCourses = await driver.findElements(By.className('card'));
const lastOne = degreeCourses.pop();
const itemAndID = await lastOne.getAttribute("id")
return itemAndID.split("DegreeCourseItem")[1]
}
\ No newline at end of file
const { By, until } = require('selenium-webdriver');
module.exports = async function (driver) {
// await driver.get("https://127.0.0.1/api/authenticate")
// const button = await driver.wait(until.elementLocated(By.id("details-button")), 5000)
// await button.click()
// const check = await driver.wait(until.elementLocated(By.id("proceed-link")), 5000)
// await check.click();
await driver.get("http://localhost:3000")
const loginDialogButton = await driver.wait(until.elementLocated(By.id("OpenLoginDialogButton")), 5000)
loginDialogButton.click();
const userIdTextField = await driver.wait(until.elementLocated(By.id("LoginDialogUserIDText")), 5000)
expect(userIdTextField).toBeDefined();
await userIdTextField.sendKeys("admin");
const passwordTextField = await driver.wait(until.elementLocated(By.id("LoginDialogPasswordText")), 5000)
expect(passwordTextField).toBeDefined();
await passwordTextField.sendKeys("123");
const loginButton = await driver.wait(until.elementLocated(By.id("PerformLoginButton")), 5000)
expect(loginButton).toBeDefined();
await loginButton.click();
}
\ No newline at end of file
const { By, until } = require('selenium-webdriver');
module.exports = async function (driver) {
// await driver.get("https://127.0.0.1/api/authenticate")
// const button = await driver.wait(until.elementLocated(By.id("details-button")), 5000)
// await button.click()
// const check = await driver.wait(until.elementLocated(By.id("proceed-link")), 5000)
// await check.click();
await driver.get("http://localhost:3000")
const loginDialogButton = await driver.wait(until.elementLocated(By.id("OpenLoginDialogButton")), 5000)
loginDialogButton.click();
const userIdTextField = await driver.wait(until.elementLocated(By.id("LoginDialogUserIDText")), 5000)
expect(userIdTextField).toBeDefined();
await userIdTextField.sendKeys("test123");
const passwordTextField = await driver.wait(until.elementLocated(By.id("LoginDialogPasswordText")), 5000)
expect(passwordTextField).toBeDefined();
await passwordTextField.sendKeys("asdf");
const loginButton = await driver.wait(until.elementLocated(By.id("PerformLoginButton")), 5000)
expect(loginButton).toBeDefined();
await loginButton.click();
}
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment