Skip to content

Commit

Permalink
Updated tests 1/n
Browse files Browse the repository at this point in the history
  • Loading branch information
MrKevJoy committed Jan 23, 2025
1 parent 93deec9 commit fdf1acd
Show file tree
Hide file tree
Showing 28 changed files with 405 additions and 104 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -56,8 +56,8 @@ public string RequestTrnNpqName(JourneyInstanceId journeyInstanceId, bool? fromC
public string RequestTrnNotEligible(JourneyInstanceId journeyInstanceId) =>
GetRequiredPathByPage("/RequestTrn/NotEligible", journeyInstanceId: journeyInstanceId);

public string RequestTrnEmail(JourneyInstanceId journeyInstanceId, bool? fromCheckAnswers = null) =>
GetRequiredPathByPage("/RequestTrn/Email", routeValues: new { fromCheckAnswers }, journeyInstanceId: journeyInstanceId);
public string RequestTrnWorkEmail(JourneyInstanceId journeyInstanceId, bool? fromCheckAnswers = null) =>
GetRequiredPathByPage("/RequestTrn/WorkEmail", routeValues: new { fromCheckAnswers }, journeyInstanceId: journeyInstanceId);

public string RequestTrnPersonalEmail(JourneyInstanceId journeyInstanceId, bool? fromCheckAnswers = null) =>
GetRequiredPathByPage("/RequestTrn/PersonalEmail", routeValues: new { fromCheckAnswers }, journeyInstanceId: journeyInstanceId);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,13 +41,13 @@
</govuk-summary-list-row-actions>
</govuk-summary-list-row>
}
@if (!string.IsNullOrEmpty(Model.Email))
@if (!string.IsNullOrEmpty(Model.WorkEmail))
{
<govuk-summary-list-row>
<govuk-summary-list-row-key>Work email</govuk-summary-list-row-key>
<govuk-summary-list-row-value>@Model.Email</govuk-summary-list-row-value>
<govuk-summary-list-row-value>@Model.WorkEmail</govuk-summary-list-row-value>
<govuk-summary-list-row-actions>
<govuk-summary-list-row-action href="@LinkGenerator.RequestTrnEmail(Model.JourneyInstance!.InstanceId, fromCheckAnswers: true)" visually-hidden-text="email">Change</govuk-summary-list-row-action>
<govuk-summary-list-row-action href="@LinkGenerator.RequestTrnWorkEmail(Model.JourneyInstance!.InstanceId, fromCheckAnswers: true)" visually-hidden-text="email">Change</govuk-summary-list-row-action>
</govuk-summary-list-row-actions>
</govuk-summary-list-row>
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ public class CheckAnswersModel(AuthorizeAccessLinkGenerator linkGenerator, ICrmQ

public RequestTrnJourneyState? JourneyState { get; set; }

public string? Email { get; set; }
public string? WorkEmail { get; set; }

public string? Name { get; set; }

Expand Down Expand Up @@ -52,7 +52,7 @@ public class CheckAnswersModel(AuthorizeAccessLinkGenerator linkGenerator, ICrmQ

public async Task OnGetAsync()
{
Email = JourneyInstance!.State.Email;
WorkEmail = JourneyInstance!.State.WorkEmail;
Name = JourneyInstance!.State.Name;
PreviousName = JourneyInstance!.State.PreviousName;
DateOfBirth = JourneyInstance!.State.DateOfBirth;
Expand All @@ -79,7 +79,7 @@ public async Task<IActionResult> OnPostAsync()
var state = JourneyInstance!.State;

var description = $"""
Email: {state.Email}
WorkEmail: {state.WorkEmail}
Name: {state.Name}
Personal Email: {state.PersonalEmail}
Previous name: {state.PreviousName}
Expand Down Expand Up @@ -116,7 +116,7 @@ await crmQueryDispatcher.ExecuteQueryAsync(
EvidenceFileName = JourneyInstance!.State.EvidenceFileName!,
EvidenceFileContent = stream,
EvidenceFileMimeType = evidenceFileMimeType,
EmailAddress = JourneyInstance!.State.Email!
EmailAddress = JourneyInstance!.State.WorkEmail!
});

await JourneyInstance!.UpdateStateAsync(state => state.HasPendingTrnRequest = true);
Expand All @@ -131,9 +131,9 @@ public override void OnPageHandlerExecuting(PageHandlerExecutingContext context)
{
context.Result = Redirect(linkGenerator.RequestTrnSubmitted(JourneyInstance!.InstanceId));
}
else if (state.Email is null && state.WorkingInSchoolOrEducationalSetting == true)
else if (state.WorkEmail is null && state.WorkingInSchoolOrEducationalSetting == true)
{
context.Result = Redirect(linkGenerator.RequestTrnEmail(JourneyInstance.InstanceId));
context.Result = Redirect(linkGenerator.RequestTrnWorkEmail(JourneyInstance.InstanceId));
}
else if (state.PersonalEmail is null && state.WorkingInSchoolOrEducationalSetting == false)
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
}

@section BeforeContent {
<govuk-back-link href="@(LinkGenerator.RequestTrnEmail(Model.JourneyInstance!.InstanceId))" />
<govuk-back-link href="@(LinkGenerator.RequestTrnWorkEmail(Model.JourneyInstance!.InstanceId))" />
}

<div class="govuk-grid-row">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,9 @@ public class EmailInUseModel(AuthorizeAccessLinkGenerator linkGenerator) : PageM
public override void OnPageHandlerExecuting(PageHandlerExecutingContext context)
{
var state = JourneyInstance!.State;
if (state.Email is null)
if (state.WorkEmail is null)
{
context.Result = Redirect(linkGenerator.RequestTrnEmail(JourneyInstance.InstanceId));
context.Result = Redirect(linkGenerator.RequestTrnWorkEmail(JourneyInstance.InstanceId));
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,9 +49,9 @@ public override void OnPageHandlerExecuting(PageHandlerExecutingContext context)
{
context.Result = Redirect(linkGenerator.RequestTrnSubmitted(JourneyInstance!.InstanceId));
}
else if (state.Email is null && state.WorkingInSchoolOrEducationalSetting == true)
else if (state.WorkEmail is null && state.WorkingInSchoolOrEducationalSetting == true)
{
context.Result = Redirect(linkGenerator.RequestTrnEmail(JourneyInstance.InstanceId));
context.Result = Redirect(linkGenerator.RequestTrnWorkEmail(JourneyInstance.InstanceId));
}
else if (state.PersonalEmail is null && state.WorkingInSchoolOrEducationalSetting == false)
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ public async Task<IActionResult> OnPostAsync()
return this.PageWithErrors();
}

await JourneyInstance!.UpdateStateAsync(state => state.IsPlanningToTakeAnNpq = HaveRegisteredForAnNpq);
await JourneyInstance!.UpdateStateAsync(state => state.HaveRegisteredForAnNpq = HaveRegisteredForAnNpq);

return HaveRegisteredForAnNpq == true ?
Redirect(linkGenerator.RequestTrnNpqApplication(JourneyInstance!.InstanceId)) :
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,13 @@
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.Filters;
using Microsoft.AspNetCore.Mvc.RazorPages;
using TeachingRecordSystem.Core.Dqt;
using TeachingRecordSystem.WebCommon.FormFlow;
using EmailAddress = TeachingRecordSystem.AuthorizeAccess.DataAnnotations.EmailAddressAttribute;

namespace TeachingRecordSystem.AuthorizeAccess.Pages.RequestTrn;

[Journey(RequestTrnJourneyState.JourneyName), RequireJourneyInstance]
public class PersonalEmailModel(AuthorizeAccessLinkGenerator linkGenerator, ICrmQueryDispatcher crmQueryDispatcher) : PageModel
public class PersonalEmailModel(AuthorizeAccessLinkGenerator linkGenerator) : PageModel
{
public JourneyInstance<RequestTrnJourneyState>? JourneyInstance { get; set; }

Expand All @@ -18,7 +17,7 @@ public class PersonalEmailModel(AuthorizeAccessLinkGenerator linkGenerator, ICrm

[BindProperty]
[Display(Name = "What is your personal email address?", Description = "We need this to send you your TRN if you’re eligible for one. Do not use your work email address.")]
[Required(ErrorMessage = "Enter your email address")]
[Required(ErrorMessage = "Enter your personal email address")]
[@EmailAddress(ErrorMessage = "Enter an email address in the correct format, like [email protected]")]
public string? PersonalEmail { get; set; }

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,7 @@ public class RequestTrnJourneyState()
public static JourneyDescriptor JourneyDescriptor { get; } =
new JourneyDescriptor(JourneyName, typeof(RequestTrnJourneyState), requestDataKeys: [], appendUniqueKey: true);

public bool? IsPlanningToTakeAnNpq { get; set; }
public string? Email { get; set; }
public string? WorkEmail { get; set; }
public string? Name { get; set; }
public bool? HasPreviousName { get; set; }
public string? PreviousName { get; set; }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ public class SchoolOrEducationalSettingModel(AuthorizeAccessLinkGenerator linkGe

[BindProperty]
[Display(Name = "Are you currently working in a school or other educational setting?")]
[Required(ErrorMessage = "Tell us if you are currently working in a school or other educational setting?")]
[Required(ErrorMessage = "Tell us if you are currently working in a school or other educational setting")]
public bool? IsWorkingInSchoolOrEducationalSetting { get; set; }

public async Task<IActionResult> OnPostAsync()
Expand All @@ -27,6 +27,6 @@ public async Task<IActionResult> OnPostAsync()

return IsWorkingInSchoolOrEducationalSetting == false ?
Redirect(linkGenerator.RequestTrnPersonalEmail(JourneyInstance!.InstanceId)) :
Redirect(linkGenerator.RequestTrnEmail(JourneyInstance.InstanceId));
Redirect(linkGenerator.RequestTrnWorkEmail(JourneyInstance.InstanceId));
}
}
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
@page "/request-trn/email"
@model TeachingRecordSystem.AuthorizeAccess.Pages.RequestTrn.EmailModel
@page "/request-trn/work-email"
@model TeachingRecordSystem.AuthorizeAccess.Pages.RequestTrn.WorkEmailModel
@{
ViewBag.Title = Html.DisplayNameFor(m => m.Email);
ViewBag.Title = Html.DisplayNameFor(m => m.WorkEmail);
}

@section BeforeContent {
Expand All @@ -10,9 +10,9 @@

<div class="govuk-grid-row">
<div class="govuk-grid-column-two-thirds-from-desktop">
<form action="@LinkGenerator.RequestTrnEmail(Model.JourneyInstance!.InstanceId, Model.FromCheckAnswers)" method="post">
<form action="@LinkGenerator.RequestTrnWorkEmail(Model.JourneyInstance!.InstanceId, Model.FromCheckAnswers)" method="post">

<govuk-input asp-for="Email" type="email" autocomplete="email">
<govuk-input asp-for="WorkEmail" type="email" autocomplete="email">
<govuk-input-label is-page-heading="true" class="govuk-label--l" />
</govuk-input>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
namespace TeachingRecordSystem.AuthorizeAccess.Pages.RequestTrn;

[Journey(RequestTrnJourneyState.JourneyName), RequireJourneyInstance]
public class EmailModel(AuthorizeAccessLinkGenerator linkGenerator, ICrmQueryDispatcher crmQueryDispatcher) : PageModel
public class WorkEmailModel(AuthorizeAccessLinkGenerator linkGenerator, ICrmQueryDispatcher crmQueryDispatcher) : PageModel
{
public JourneyInstance<RequestTrnJourneyState>? JourneyInstance { get; set; }

Expand All @@ -21,11 +21,11 @@ public class EmailModel(AuthorizeAccessLinkGenerator linkGenerator, ICrmQueryDis
[Display(Name = "What is your work email address?", Description = "We’ll use this to check if you need a TRN.")]
[Required(ErrorMessage = "Enter your work email address")]
[@EmailAddress(ErrorMessage = "Enter an email address in the correct format, like [email protected]")]
public string? Email { get; set; }
public string? WorkEmail { get; set; }

public void OnGet()
{
Email = JourneyInstance!.State.Email;
WorkEmail = JourneyInstance!.State.WorkEmail;
}

public async Task<IActionResult> OnPostAsync()
Expand All @@ -35,10 +35,10 @@ public async Task<IActionResult> OnPostAsync()
return this.PageWithErrors();
}

await JourneyInstance!.UpdateStateAsync(state => state.Email = Email);
await JourneyInstance!.UpdateStateAsync(state => state.WorkEmail = WorkEmail);

var openTasks = await crmQueryDispatcher.ExecuteQueryAsync(
new GetOpenTasksForEmailAddressQuery(EmailAddress: JourneyInstance!.State.Email!));
new GetOpenTasksForEmailAddressQuery(EmailAddress: JourneyInstance!.State.WorkEmail!));

if (openTasks.Any())
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ public async Task Get_ValidRequestWithPopulatedDataInJourneyState_PopulatesModel
{
// Arrange
var state = CreateNewState();
state.Email = Faker.Internet.Email();
state.WorkEmail = Faker.Internet.Email();
state.Name = Faker.Name.FullName();
state.PreviousName = Faker.Name.FullName();
state.HasPreviousName = true;
Expand Down Expand Up @@ -113,7 +113,7 @@ public async Task Post_EmptyMandatoryAddressLine_ReturnsError(AddressLineType em
{
// Arrange
var state = CreateNewState();
state.Email = Faker.Internet.Email();
state.WorkEmail = Faker.Internet.Email();
state.Name = Faker.Name.FullName();
state.PreviousName = Faker.Name.FullName();
state.HasPreviousName = true;
Expand Down Expand Up @@ -169,7 +169,7 @@ public async Task Post_AddressLinesTooManyCharacters_ReturnsError(AddressLineTyp
{
// Arrange
var state = CreateNewState();
state.Email = Faker.Internet.Email();
state.WorkEmail = Faker.Internet.Email();
state.Name = Faker.Name.FullName();
state.PreviousName = Faker.Name.FullName();
state.HasPreviousName = true;
Expand Down Expand Up @@ -208,7 +208,7 @@ public async Task Post_ValidRequest_UpdatesStateAndRedirectsToNextPage()
{
// Arrange
var state = CreateNewState();
state.Email = Faker.Internet.Email();
state.WorkEmail = Faker.Internet.Email();
state.Name = Faker.Name.FullName();
state.PreviousName = Faker.Name.FullName();
state.HasPreviousName = true;
Expand Down
Loading

0 comments on commit fdf1acd

Please sign in to comment.