From d22f69b000ad0d54d703322151cd87dcb485d51b Mon Sep 17 00:00:00 2001 From: LD-Reborn Date: Thu, 6 Nov 2025 18:11:43 +0100 Subject: [PATCH] Added HomePage_ShouldContainButtons E2E test, added login helper --- .../Helper/AppHelper.cs | 15 +++++++++- .../HomePageTests.cs | 28 +++++++++++++------ 2 files changed, 33 insertions(+), 10 deletions(-) diff --git a/tests/Berufsschule_HAM.E2ETests/Helper/AppHelper.cs b/tests/Berufsschule_HAM.E2ETests/Helper/AppHelper.cs index 0d2f425..4581060 100644 --- a/tests/Berufsschule_HAM.E2ETests/Helper/AppHelper.cs +++ b/tests/Berufsschule_HAM.E2ETests/Helper/AppHelper.cs @@ -1,6 +1,7 @@ using System.Diagnostics; using System.Net; -using Microsoft.AspNetCore.Mvc.Routing; +using OpenQA.Selenium; +using OpenQA.Selenium.Chrome; namespace Berufsschule_HAM.E2ETests.Helper; @@ -42,4 +43,16 @@ public static class AppHelper } throw new Exception("Server did not start within 60 seconds"); } + + public static void Login(ChromeDriver driver, string serverUrl) + { + driver.Navigate().GoToUrl(serverUrl); + IWebElement username = driver.FindElement(By.Id("username")); + username.SendKeys("admin"); + IWebElement password = driver.FindElement(By.Id("password")); + password.SendKeys("Test1234."); + IWebElement submit = driver.FindElement(By.CssSelector("button[type=\"submit\"]")); + submit.Click(); + Thread.Sleep(250); + } } \ No newline at end of file diff --git a/tests/Berufsschule_HAM.E2ETests/HomePageTests.cs b/tests/Berufsschule_HAM.E2ETests/HomePageTests.cs index 07e4040..98346cb 100644 --- a/tests/Berufsschule_HAM.E2ETests/HomePageTests.cs +++ b/tests/Berufsschule_HAM.E2ETests/HomePageTests.cs @@ -1,4 +1,5 @@ -using OpenQA.Selenium; +using Berufsschule_HAM.E2ETests.Helper; +using OpenQA.Selenium; using OpenQA.Selenium.Chrome; using System.Diagnostics; @@ -7,12 +8,14 @@ namespace Berufsschule_HAM.E2ETests; public class HomePageTests : IDisposable { private readonly ChromeDriver _driver; + public Uri serverUri; public string serverUrl; public Process serverProcess; public HomePageTests() { serverUrl = "http://localhost:5275"; + serverUri = new(serverUrl); Task app = Helper.AppHelper.StartApp(serverUrl); var options = new ChromeOptions(); @@ -32,17 +35,24 @@ public class HomePageTests : IDisposable [Fact] public void HomePage_ShouldSucceedLogin() { - _driver.Navigate().GoToUrl(serverUrl); - IWebElement username = _driver.FindElement(By.Id("username")); - username.SendKeys("admin"); - IWebElement password = _driver.FindElement(By.Id("password")); - password.SendKeys("Test1234."); - IWebElement submit = _driver.FindElement(By.CssSelector("button[type=\"submit\"]")); - submit.Click(); - Thread.Sleep(250); + AppHelper.Login(_driver, serverUrl); Assert.Contains("/Home/Index", _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\"]")), + ]; + } + public void Dispose() { _driver.Quit();