Backend/e-suite.Automation.UITests/ESuite.UI.E2E/StepDefinitions/ErrorLogsVerificationStepDefinitions.cs
2026-01-20 21:50:10 +00:00

70 lines
2.7 KiB
C#

using ESuite.UI.E2E.Helpers;
using ESuite.UI.E2E.Pages;
using OpenQA.Selenium;
namespace ESuite.UI.E2E.StepDefinitions
{
[Binding]
public class ErrorLogsVerificationStepDefinitions
{
private readonly IWebDriver driver;
private readonly BasicPage basicPage;
private readonly ScenarioContext _scenarioContext;
private readonly APIHelper apiHelper;
private readonly ConfigHelper configHelper;
public ErrorLogsVerificationStepDefinitions(ScenarioContext scenarioContext)
{
driver = WebDriverHelper.GetWebDriver();
basicPage = new BasicPage(driver);
_scenarioContext = scenarioContext;
apiHelper = new APIHelper(_scenarioContext);
configHelper = new ConfigHelper();
}
[Given(@"I create a new domain with insufficient info via API call")]
public async Task GivenICreateANewDomainWithInsufficientInfoViaAPICall()
{
int maxAttempts = 2;
int currentAttempt = 0;
string content;
HttpResponseMessage? response;
do
{
string token = await apiHelper.GetAuthToken();
string url = $"{configHelper.APIUrl}/api/Domain/domain";
string payload = $@"
{{
""name"": 123,
""guid"": ""3fa85f64-5717-4562-b3fc-2c963f66afa6""
}}"; // Bad Payload. Backend expects to get 'name' in string format.
response = await apiHelper.SendAuthenticatedRequest(url, token, payload, "POST");
content = await response.Content.ReadAsStringAsync();
if (!string.IsNullOrEmpty(content))
{
string instanceID = APIHelper.GetFieldValueFromJSONResponse("Instance", content);
_scenarioContext["ErrorInstanceID"] = instanceID;
break;
}
currentAttempt++;
} while (currentAttempt < maxAttempts);
if (string.IsNullOrEmpty(content))
{
throw new Exception($"Failed to get a valid response after {currentAttempt} attempts.");
}
}
[Then(@"I verifying newly created exception on the Error Logs page")]
public void ThenIVerifyingNewlyCreatedExceptionOnTheErrorLogsPage()
{
BasicPage.ClickOnDropdownMenuItem("Error Logs", "Support");
BasicPage.SearchObjectNameInTableViaSearchInputField(_scenarioContext["ErrorInstanceID"].ToString()!,By.Id("id"));
}
}
}