From beec75416e048bb077d32cd5697042109468be0e Mon Sep 17 00:00:00 2001 From: LD-Reborn Date: Thu, 6 Nov 2025 19:28:16 +0100 Subject: [PATCH] Refactored HomePageTests --- .../Helper/AppHelper.cs | 14 ++++++- .../HomePageTests.cs | 42 ++++++++++++------- 2 files changed, 38 insertions(+), 18 deletions(-) diff --git a/tests/Berufsschule_HAM.E2ETests/Helper/AppHelper.cs b/tests/Berufsschule_HAM.E2ETests/Helper/AppHelper.cs index 4581060..a0d6563 100644 --- a/tests/Berufsschule_HAM.E2ETests/Helper/AppHelper.cs +++ b/tests/Berufsschule_HAM.E2ETests/Helper/AppHelper.cs @@ -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 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")); diff --git a/tests/Berufsschule_HAM.E2ETests/HomePageTests.cs b/tests/Berufsschule_HAM.E2ETests/HomePageTests.cs index 98346cb..6620a6c 100644 --- a/tests/Berufsschule_HAM.E2ETests/HomePageTests.cs +++ b/tests/Berufsschule_HAM.E2ETests/HomePageTests.cs @@ -14,13 +14,10 @@ public class HomePageTests : IDisposable public HomePageTests() { - serverUrl = "http://localhost:5275"; - serverUri = new(serverUrl); - Task app = Helper.AppHelper.StartApp(serverUrl); - - var options = new ChromeOptions(); - //options.AddArgument("--headless"); - _driver = new ChromeDriver(options); + serverUrl = AppHelper.ServerUrl; + serverUri = AppHelper.ServerUri; + Task 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 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()