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();
}