Refactored HomePageTests

This commit is contained in:
2025-11-06 19:28:16 +01:00
parent d22f69b000
commit beec75416e
2 changed files with 38 additions and 18 deletions

View File

@@ -7,6 +7,8 @@ namespace Berufsschule_HAM.E2ETests.Helper;
public static class AppHelper
{
public const string ServerUrl = "http://localhost:5275";
public static Uri ServerUri = new(ServerUrl);
public static async Task<Process> StartApp(string appUrl)
{
var startInfo = new ProcessStartInfo
@@ -44,9 +46,17 @@ public static class AppHelper
throw new Exception("Server did not start within 60 seconds");
}
public static void Login(ChromeDriver driver, string serverUrl)
public static ChromeDriver GetChromeDriver()
{
driver.Navigate().GoToUrl(serverUrl);
var options = new ChromeOptions();
//options.AddArgument("--headless");
return new ChromeDriver(options);
}
public static void Login(ChromeDriver driver)
{
driver.Navigate().GoToUrl(ServerUrl);
IWebElement username = driver.FindElement(By.Id("username"));
username.SendKeys("admin");
IWebElement password = driver.FindElement(By.Id("password"));

View File

@@ -14,13 +14,10 @@ public class HomePageTests : IDisposable
public HomePageTests()
{
serverUrl = "http://localhost:5275";
serverUri = new(serverUrl);
Task<Process> app = Helper.AppHelper.StartApp(serverUrl);
var options = new ChromeOptions();
//options.AddArgument("--headless");
_driver = new ChromeDriver(options);
serverUrl = AppHelper.ServerUrl;
serverUri = AppHelper.ServerUri;
Task<Process> app = AppHelper.StartApp(serverUrl);
_driver = AppHelper.GetChromeDriver();
serverProcess = app.Result;
}
@@ -35,22 +32,35 @@ public class HomePageTests : IDisposable
[Fact]
public void HomePage_ShouldSucceedLogin()
{
AppHelper.Login(_driver, serverUrl);
AppHelper.Login(_driver);
Assert.Contains("/Home/Index", _driver.Url);
}
[Fact]
public void HomePage_ShouldSucceedLoginAndLogout()
{
AppHelper.Login(_driver);
Assert.Contains("/Home/Index", _driver.Url);
IWebElement userDropdown = _driver.FindElement(By.Id("userDropdown"));
userDropdown.Click();
IWebElement logout = _driver.FindElement(By.CssSelector("a[href=\"/Home/Logout\"]"));
Assert.True(logout.Displayed);
logout.Click();
Thread.Sleep(250);
Assert.Contains("/Home/Login", _driver.Url);
}
[Fact]
public void HomePage_ShouldContainButtons()
{
_driver.Navigate().GoToUrl(new Uri(serverUri, "/Home/Index"));
AppHelper.Login(_driver, serverUrl);
List<IWebElement> buttons = [
_driver.FindElement(By.CssSelector("a[href=\"/Home/Inventory\"]")),
_driver.FindElement(By.CssSelector("a[href=\"/Home/Assets\"]")),
_driver.FindElement(By.CssSelector("a[href=\"/Home/Locations\"]")),
_driver.FindElement(By.CssSelector("a[href=\"/Home/Users\"]")),
_driver.FindElement(By.CssSelector("a[href=\"/Home/Groups\"]")),
];
AppHelper.Login(_driver);
_driver.FindElement(By.CssSelector("a[href=\"/Home/Inventory\"]"));
_driver.FindElement(By.CssSelector("a[href=\"/Home/Assets\"]"));
_driver.FindElement(By.CssSelector("a[href=\"/Home/Locations\"]"));
_driver.FindElement(By.CssSelector("a[href=\"/Home/Users\"]"));
_driver.FindElement(By.CssSelector("a[href=\"/Home/Groups\"]"));
}
public void Dispose()