Skip to content

Update statuscake contact group #2398

Update statuscake contact group

Update statuscake contact group #2398

GitHub Actions / Support UI test results succeeded Apr 17, 2024 in 0s

404 passed, 0 failed and 0 skipped

Tests passed successfully

✅ TeachingRecordSystem/tests/TeachingRecordSystem.SupportUi.Tests/TestResults/_fv-az1152-614_2024-04-17_15_14_28.trx

404 tests were completed in 144s with 404 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
TeachingRecordSystem.SupportUi.Tests.PageTests.Alerts.AddAlert.ConfirmTests 6✅ 71s
TeachingRecordSystem.SupportUi.Tests.PageTests.Alerts.AddAlert.IndexTests 6✅ 57s
TeachingRecordSystem.SupportUi.Tests.PageTests.Alerts.Alert.IndexTests 5✅ 55s
TeachingRecordSystem.SupportUi.Tests.PageTests.Alerts.CloseAlert.ConfirmTests 4✅ 47s
TeachingRecordSystem.SupportUi.Tests.PageTests.Alerts.CloseAlert.IndexTests 7✅ 81s
TeachingRecordSystem.SupportUi.Tests.PageTests.ApiKeys.AddApiKeyTests 9✅ 64s
TeachingRecordSystem.SupportUi.Tests.PageTests.ApiKeys.EditApiKeyTests 9✅ 67s
TeachingRecordSystem.SupportUi.Tests.PageTests.ApplicationUsers.AddApplicationUserTests 6✅ 30s
TeachingRecordSystem.SupportUi.Tests.PageTests.ApplicationUsers.EditApplicationUserTests 23✅ 89s
TeachingRecordSystem.SupportUi.Tests.PageTests.ChangeRequests.EditChangeRequest.AcceptTests 6✅ 68s
TeachingRecordSystem.SupportUi.Tests.PageTests.ChangeRequests.EditChangeRequest.IndexTests 12✅ 101s
TeachingRecordSystem.SupportUi.Tests.PageTests.ChangeRequests.EditChangeRequest.RejectTests 8✅ 91s
TeachingRecordSystem.SupportUi.Tests.PageTests.ChangeRequests.IndexTests 3✅ 985ms
TeachingRecordSystem.SupportUi.Tests.PageTests.Mqs.AddMq.CheckAnswersTests 10✅ 100s
TeachingRecordSystem.SupportUi.Tests.PageTests.Mqs.AddMq.IndexTests 1✅ 19s
TeachingRecordSystem.SupportUi.Tests.PageTests.Mqs.AddMq.ProviderTests 6✅ 58s
TeachingRecordSystem.SupportUi.Tests.PageTests.Mqs.AddMq.SpecialismTests 7✅ 74s
TeachingRecordSystem.SupportUi.Tests.PageTests.Mqs.AddMq.StartDateTests 10✅ 84s
TeachingRecordSystem.SupportUi.Tests.PageTests.Mqs.AddMq.StatusTests 11✅ 102s
TeachingRecordSystem.SupportUi.Tests.PageTests.Mqs.DeleteMq.ConfirmTests 7✅ 91s
TeachingRecordSystem.SupportUi.Tests.PageTests.Mqs.DeleteMq.IndexTests 10✅ 103s
TeachingRecordSystem.SupportUi.Tests.PageTests.Mqs.EditMq.Provider.ConfirmTests 6✅ 87s
TeachingRecordSystem.SupportUi.Tests.PageTests.Mqs.EditMq.Provider.IndexTests 7✅ 73s
TeachingRecordSystem.SupportUi.Tests.PageTests.Mqs.EditMq.Provider.ReasonTests 10✅ 101s
TeachingRecordSystem.SupportUi.Tests.PageTests.Mqs.EditMq.Specialism.ConfirmTests 6✅ 87s
TeachingRecordSystem.SupportUi.Tests.PageTests.Mqs.EditMq.Specialism.IndexTests 9✅ 91s
TeachingRecordSystem.SupportUi.Tests.PageTests.Mqs.EditMq.Specialism.ReasonTests 10✅ 97s
TeachingRecordSystem.SupportUi.Tests.PageTests.Mqs.EditMq.StartDate.ConfirmTests 6✅ 84s
TeachingRecordSystem.SupportUi.Tests.PageTests.Mqs.EditMq.StartDate.IndexTests 9✅ 96s
TeachingRecordSystem.SupportUi.Tests.PageTests.Mqs.EditMq.StartDate.ReasonTests 10✅ 97s
TeachingRecordSystem.SupportUi.Tests.PageTests.Mqs.EditMq.Status.ConfirmTests 9✅ 110s
TeachingRecordSystem.SupportUi.Tests.PageTests.Mqs.EditMq.Status.IndexTests 10✅ 95s
TeachingRecordSystem.SupportUi.Tests.PageTests.Mqs.EditMq.Status.ReasonTests 14✅ 115s
TeachingRecordSystem.SupportUi.Tests.PageTests.Persons.IndexTests 6✅ 79s
TeachingRecordSystem.SupportUi.Tests.PageTests.Persons.PersonDetail.AlertsTests 5✅ 64s
TeachingRecordSystem.SupportUi.Tests.PageTests.Persons.PersonDetail.ChangeLogMandatoryQualificationEventsTests 27✅ 129s
TeachingRecordSystem.SupportUi.Tests.PageTests.Persons.PersonDetail.ChangeLogTests 10✅ 109s
TeachingRecordSystem.SupportUi.Tests.PageTests.Persons.PersonDetail.EditDateOfBirth.ConfirmTests 5✅ 53s
TeachingRecordSystem.SupportUi.Tests.PageTests.Persons.PersonDetail.EditDateOfBirth.IndexTests 13✅ 109s
TeachingRecordSystem.SupportUi.Tests.PageTests.Persons.PersonDetail.EditName.ConfirmTests 8✅ 94s
TeachingRecordSystem.SupportUi.Tests.PageTests.Persons.PersonDetail.EditName.IndexTests 9✅ 97s
TeachingRecordSystem.SupportUi.Tests.PageTests.Persons.PersonDetail.IndexTests 3✅ 43s
TeachingRecordSystem.SupportUi.Tests.PageTests.Persons.PersonDetail.QualificationsTests 5✅ 53s
TeachingRecordSystem.SupportUi.Tests.PageTests.Users.AddUser.ConfirmTests 12✅ 59s
TeachingRecordSystem.SupportUi.Tests.PageTests.Users.AddUser.IndexTests 8✅ 30s
TeachingRecordSystem.SupportUi.Tests.PageTests.Users.EditUserTests 18✅ 84s
TeachingRecordSystem.SupportUi.Tests.PageTests.Users.UsersTests 3✅ 13s

✅ TeachingRecordSystem.SupportUi.Tests.PageTests.Alerts.AddAlert.ConfirmTests

✅ Get_StateHasMissingRequiredData_RedirectsToIndex(sanctionCode: "G1", details: null, startDateString: null)
✅ Get_StateHasMissingRequiredData_RedirectsToIndex(sanctionCode: null, details: "These are some test details", startDateString: null)
✅ Get_StateHasMissingRequiredData_RedirectsToIndex(sanctionCode: null, details: null, startDateString: "2021-01-01")
✅ Get_ValidRequest_RendersExpectedContent
✅ Get_WithPersonIdForNonExistentPerson_ReturnsNotFound
✅ Post_ValidRequest_AddsAlertAndCompletesJourney

✅ TeachingRecordSystem.SupportUi.Tests.PageTests.Alerts.AddAlert.IndexTests

✅ Get_ValidRequestWithPopulatedDataInJourneyState_PopulatesModelFromJourneyState
✅ Get_WithPersonIdForNonExistentPerson_ReturnsNotFound
✅ Get_WithPersonIdForValidPerson_ReturnsOk
✅ Post_EmptyRequiredFields_ReturnsError
✅ Post_InvalidLinkUrl_ReturnsError
✅ Post_ValidData_RedirectsToConfirmPage

✅ TeachingRecordSystem.SupportUi.Tests.PageTests.Alerts.Alert.IndexTests

✅ Get_ValidRequest_RendersExpectedContent(startDateString: "2021-01-01", endDateString: "2022-03-05", details: "Alert details", detailsLink: "http://www.gov.uk", isSpent: True, isActive: True, expectedAlertStatus: Closed)
✅ Get_ValidRequest_RendersExpectedContent(startDateString: "2021-01-01", endDateString: "2022-03-05", details: "Alert details", detailsLink: null, isSpent: True, isActive: False, expectedAlertStatus: Inactive)
✅ Get_ValidRequest_RendersExpectedContent(startDateString: "2021-01-01", endDateString: null, details: null, detailsLink: "http://www.gov.uk", isSpent: False, isActive: False, expectedAlertStatus: Inactive)
✅ Get_ValidRequest_RendersExpectedContent(startDateString: "2021-01-01", endDateString: null, details: null, detailsLink: null, isSpent: False, isActive: True, expectedAlertStatus: Active)
✅ Get_WithAlertIdForNonExistentAlert_ReturnsNotFound

✅ TeachingRecordSystem.SupportUi.Tests.PageTests.Alerts.CloseAlert.ConfirmTests

✅ Get_StateHasNoEndDate_RedirectsToIndex
✅ Get_ValidRequest_RendersExpectedContent
✅ Get_WithAlertIdForNonExistentAlert_ReturnsNotFound
✅ Post_ValidRequest_ClosesAlertAndCompletesJourney

✅ TeachingRecordSystem.SupportUi.Tests.PageTests.Alerts.CloseAlert.IndexTests

✅ Get_ValidRequestWithEndDateInJourneyState_PopulatesEndDateFromJourneyState
✅ Get_WithAlertIdForActiveAlert_ReturnsOk
✅ Get_WithAlertIdForEndedAlert_ReturnsNotFound
✅ Get_WithAlertIdForNonExistentAlert_ReturnsNotFound
✅ Post_EmptyEndDate_ReturnsError
✅ Post_EndDateBeforeStartDate_ReturnsError
✅ Post_ValidEndDate_RedirectsToConfirmPage

✅ TeachingRecordSystem.SupportUi.Tests.PageTests.ApiKeys.AddApiKeyTests

✅ Get_ApplicationUserDoesNotExist_ReturnsBadRequest
✅ Get_UserDoesNotHavePermission_ReturnsForbidden
✅ Get_ValidRequest_RendersExpectedContent
✅ Post_ApplicationUserDoesNotExist_ReturnsBadRequest
✅ Post_KeyAlreadyExists_RendersErrorMessage
✅ Post_KeyIsTooLong_RendersErrorMessage
✅ Post_KeyIsTooShort_RendersErrorMessage
✅ Post_UserDoesNotHavePermission_ReturnsForbidden
✅ Post_ValidRequest_CreatesApiKeyCreatesEventAndRedirectsToApplicationUserWithFlashMessage

✅ TeachingRecordSystem.SupportUi.Tests.PageTests.ApiKeys.EditApiKeyTests

✅ Get_ApiKeyDoesNotExist_ReturnsNotFound
✅ Get_KeyIsExpired_HasDisabledExpireButton
✅ Get_KeyIsNotExpired_HasNonDisabledExpireButton
✅ Get_UserDoesNotHavePermission_ReturnsForbidden
✅ Get_ValidRequest_RendersExpectedContent
✅ PostExpire_KeyDoesNotExist_ReturnsNotFound
✅ PostExpire_KeyIsAlreadyExpired_ReturnsBadRequest
✅ PostExpire_UserDoesNotHavePermission_ReturnsForbidden
✅ PostExpire_ValidRequest_SetsExpiresOnApiKeyCreatesEventAndRedirectsToApplicationUserWithFlashMessage

✅ TeachingRecordSystem.SupportUi.Tests.PageTests.ApplicationUsers.AddApplicationUserTests

✅ Get_UserDoesNotHavePermission_ReturnsForbidden
✅ Get_ValidRequest_ReturnsExpectedContent
✅ Post_NameNotSpecified_RendersError
✅ Post_NameTooLong_RendersError
✅ Post_UserDoesNotHavePermission_ReturnsForbidden
✅ Post_ValidRequest_CreatesApplicationUserCreatesEventAndRedirectsWithFlashMessage

✅ TeachingRecordSystem.SupportUi.Tests.PageTests.ApplicationUsers.EditApplicationUserTests

✅ Get_UserDoesNotExist_ReturnsNotFound
✅ Get_UserDoesNotHavePermission_ReturnsForbidden
✅ Get_ValidRequest_RendersExpectedContent
✅ Post_NameNotProvided_RendersError
✅ Post_NameTooLong_RendersError
✅ Post_UserDoesNotExist_ReturnsNotFound
✅ Post_UserDoesNotHavePermission_ReturnsForbidden
✅ Post_ValidRequest_UpdatesNameAndRolesAndOneLoginSettingsAndCreatesEventAndRedirectsWithFlashMessage
✅ Post_WithOidcClientButInvalidDetails_RendersExpectedError(clientId: "", clientSecret: "Secret0123456789", redirectUris: "https://localhost/callback", postLogoutRedirectUris: "https://localhost/logout-callback", oneLoginClientId: "client_id", oneLoginClientKeyPem: "-----BEGIN PRIVATE KEY-----\nMIIEvgIBADANBgkqhkiG9"···, oneLoginAuthenticationSchemeName: "0b336e03-62ff-4ddf-aae8-77f5281290b3", oneLoginRedirectUriPath: "/_onelogin/System.Func`1[System.Guid]/callback", oneLoginPostLogoutRedirectUriPath: "/_onelogin/System.Func`1[System.Guid]/logout-callb"···, expectedErrorField: "ClientId", expectedErrorMessage: "Enter a client ID")
✅ Post_WithOidcClientButInvalidDetails_RendersExpectedError(clientId: "client_id", clientSecret: "", redirectUris: "https://localhost/callback", postLogoutRedirectUris: "https://localhost/logout-callback", oneLoginClientId: "client_id", oneLoginClientKeyPem: "-----BEGIN PRIVATE KEY-----\nMIIEvgIBADANBgkqhkiG9"···, oneLoginAuthenticationSchemeName: "3f174dd3-aed5-4ae1-9b65-d4d3ba7d9602", oneLoginRedirectUriPath: "/_onelogin/System.Func`1[System.Guid]/callback", oneLoginPostLogoutRedirectUriPath: "/_onelogin/System.Func`1[System.Guid]/logout-callb"···, expectedErrorField: "ClientSecret", expectedErrorMessage: "Enter a client secret")
✅ Post_WithOidcClientButInvalidDetails_RendersExpectedError(clientId: "client_id", clientSecret: "S", redirectUris: "https://localhost/callback", postLogoutRedirectUris: "https://localhost/logout-callback", oneLoginClientId: "client_id", oneLoginClientKeyPem: "-----BEGIN PRIVATE KEY-----\nMIIEvgIBADANBgkqhkiG9"···, oneLoginAuthenticationSchemeName: "8ea6f3fe-7ffd-40fd-8081-9275f90bbf0c", oneLoginRedirectUriPath: "/_onelogin/System.Func`1[System.Guid]/callback", oneLoginPostLogoutRedirectUriPath: "/_onelogin/System.Func`1[System.Guid]/logout-callb"···, expectedErrorField: "ClientSecret", expectedErrorMessage: "Client secret must be at least 16 characters")
✅ Post_WithOidcClientButInvalidDetails_RendersExpectedError(clientId: "client_id", clientSecret: "Secret0123456789", redirectUris: "foo", postLogoutRedirectUris: "https://localhost/logout-callback", oneLoginClientId: "client_id", oneLoginClientKeyPem: "-----BEGIN PRIVATE KEY-----\nMIIEvgIBADANBgkqhkiG9"···, oneLoginAuthenticationSchemeName: "cdb9e0c6-a5dc-4e3b-97b2-d01545a53e81", oneLoginRedirectUriPath: "/_onelogin/System.Func`1[System.Guid]/callback", oneLoginPostLogoutRedirectUriPath: "/_onelogin/System.Func`1[System.Guid]/logout-callb"···, expectedErrorField: "RedirectUris", expectedErrorMessage: "One or more redirect URIs are not valid")
✅ Post_WithOidcClientButInvalidDetails_RendersExpectedError(clientId: "client_id", clientSecret: "Secret0123456789", redirectUris: "https://localhost/callback", postLogoutRedirectUris: "foo", oneLoginClientId: "client_id", oneLoginClientKeyPem: "-----BEGIN PRIVATE KEY-----\nMIIEvgIBADANBgkqhkiG9"···, oneLoginAuthenticationSchemeName: "2807f750-9c88-4504-9464-e75c7dc149a2", oneLoginRedirectUriPath: "/_onelogin/System.Func`1[System.Guid]/callback", oneLoginPostLogoutRedirectUriPath: "/_onelogin/System.Func`1[System.Guid]/logout-callb"···, expectedErrorField: "PostLogoutRedirectUris", expectedErrorMessage: "One or more post logout redirect URIs are not vali"···)
✅ Post_WithOidcClientButInvalidDetails_RendersExpectedError(clientId: "client_id", clientSecret: "Secret0123456789", redirectUris: "https://localhost/callback", postLogoutRedirectUris: "https://localhost/logout-callback", oneLoginClientId: "", oneLoginClientKeyPem: "-----BEGIN PRIVATE KEY-----\nMIIEvgIBADANBgkqhkiG9"···, oneLoginAuthenticationSchemeName: "d3a8760b-3e76-408b-9ced-1394e75573d5", oneLoginRedirectUriPath: "/_onelogin/System.Func`1[System.Guid]/callback", oneLoginPostLogoutRedirectUriPath: "/_onelogin/System.Func`1[System.Guid]/logout-callb"···, expectedErrorField: "OneLoginClientId", expectedErrorMessage: "Enter the One Login client ID")
✅ Post_WithOidcClientButInvalidDetails_RendersExpectedError(clientId: "client_id", clientSecret: "Secret0123456789", redirectUris: "https://localhost/callback", postLogoutRedirectUris: "https://localhost/logout-callback", oneLoginClientId: "client_id", oneLoginClientKeyPem: "-----BEGIN PRIVATE KEY-----\nMIIEvgIBADANBgkqhkiG9"···, oneLoginAuthenticationSchemeName: "", oneLoginRedirectUriPath: "/_onelogin/System.Func`1[System.Guid]/callback", oneLoginPostLogoutRedirectUriPath: "/_onelogin/System.Func`1[System.Guid]/logout-callb"···, expectedErrorField: "OneLoginAuthenticationSchemeName", expectedErrorMessage: "Enter an authentication scheme name")
✅ Post_WithOidcClientButInvalidDetails_RendersExpectedError(clientId: "client_id", clientSecret: "Secret0123456789", redirectUris: "https://localhost/callback", postLogoutRedirectUris: "https://localhost/logout-callback", oneLoginClientId: "client_id", oneLoginClientKeyPem: "-----BEGIN PRIVATE KEY-----\nMIIEvgIBADANBgkqhkiG9"···, oneLoginAuthenticationSchemeName: "7bd058c6-235c-4d07-b387-544c4e9e836c", oneLoginRedirectUriPath: "/_onelogin/System.Func`1[System.Guid]/callback", oneLoginPostLogoutRedirectUriPath: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"···, expectedErrorField: "OneLoginPostLogoutRedirectUriPath", expectedErrorMessage: "One Login post logout redirect URI must be 100 cha"···)
✅ Post_WithOidcClientButInvalidDetails_RendersExpectedError(clientId: "client_id", clientSecret: "Secret0123456789", redirectUris: "https://localhost/callback", postLogoutRedirectUris: "https://localhost/logout-callback", oneLoginClientId: "client_id", oneLoginClientKeyPem: "-----BEGIN PRIVATE KEY-----\nMIIEvgIBADANBgkqhkiG9"···, oneLoginAuthenticationSchemeName: "7c3b369e-e7c8-454d-9b60-3fb18a367259", oneLoginRedirectUriPath: "", oneLoginPostLogoutRedirectUriPath: "/_onelogin/System.Func`1[System.Guid]/logout-callb"···, expectedErrorField: "OneLoginRedirectUriPath", expectedErrorMessage: "Enter the One Login redirect URI")
✅ Post_WithOidcClientButInvalidDetails_RendersExpectedError(clientId: "client_id", clientSecret: "Secret0123456789", redirectUris: "https://localhost/callback", postLogoutRedirectUris: "https://localhost/logout-callback", oneLoginClientId: "client_id", oneLoginClientKeyPem: "-----BEGIN PRIVATE KEY-----\nMIIEvgIBADANBgkqhkiG9"···, oneLoginAuthenticationSchemeName: "ac943680-d0f1-4578-bfd4-da6a36377133", oneLoginRedirectUriPath: "/_onelogin/System.Func`1[System.Guid]/callback", oneLoginPostLogoutRedirectUriPath: "", expectedErrorField: "OneLoginPostLogoutRedirectUriPath", expectedErrorMessage: "Enter the One Login post logout redirect URI")
✅ Post_WithOidcClientButInvalidDetails_RendersExpectedError(clientId: "client_id", clientSecret: "Secret0123456789", redirectUris: "https://localhost/callback", postLogoutRedirectUris: "https://localhost/logout-callback", oneLoginClientId: "client_id", oneLoginClientKeyPem: "-----BEGIN PRIVATE KEY-----\nMIIEvgIBADANBgkqhkiG9"···, oneLoginAuthenticationSchemeName: "b0630829-3d13-44d6-b58e-4c3b87fa81ec", oneLoginRedirectUriPath: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"···, oneLoginPostLogoutRedirectUriPath: "/_onelogin/System.Func`1[System.Guid]/logout-callb"···, expectedErrorField: "OneLoginRedirectUriPath", expectedErrorMessage: "One Login redirect URI must be 100 characters or l"···)
✅ Post_WithOidcClientButInvalidDetails_RendersExpectedError(clientId: "client_id", clientSecret: "Secret0123456789", redirectUris: "https://localhost/callback", postLogoutRedirectUris: "https://localhost/logout-callback", oneLoginClientId: "client_id", oneLoginClientKeyPem: "-----BEGIN PRIVATE KEY-----\nMIIEvgIBADANBgkqhkiG9"···, oneLoginAuthenticationSchemeName: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"···, oneLoginRedirectUriPath: "/_onelogin/System.Func`1[System.Guid]/callback", oneLoginPostLogoutRedirectUriPath: "/_onelogin/System.Func`1[System.Guid]/logout-callb"···, expectedErrorField: "OneLoginAuthenticationSchemeName", expectedErrorMessage: "Authentication scheme name must be 50 characters o"···)
✅ Post_WithOidcClientButInvalidDetails_RendersExpectedError(clientId: "client_id", clientSecret: "Secret0123456789", redirectUris: "https://localhost/callback", postLogoutRedirectUris: "https://localhost/logout-callback", oneLoginClientId: "client_id", oneLoginClientKeyPem: "", oneLoginAuthenticationSchemeName: "c356cd48-167c-47cf-a9da-bb3a5aa5d803", oneLoginRedirectUriPath: "/_onelogin/System.Func`1[System.Guid]/callback", oneLoginPostLogoutRedirectUriPath: "/_onelogin/System.Func`1[System.Guid]/logout-callb"···, expectedErrorField: "OneLoginPrivateKeyPem", expectedErrorMessage: "Enter the One Login private key")
✅ Post_WithOidcClientButInvalidDetails_RendersExpectedError(clientId: "client_id", clientSecret: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"···, redirectUris: "https://localhost/callback", postLogoutRedirectUris: "https://localhost/logout-callback", oneLoginClientId: "client_id", oneLoginClientKeyPem: "-----BEGIN PRIVATE KEY-----\nMIIEvgIBADANBgkqhkiG9"···, oneLoginAuthenticationSchemeName: "8d4a0087-ccde-4af4-af32-53fe0c0d033a", oneLoginRedirectUriPath: "/_onelogin/System.Func`1[System.Guid]/callback", oneLoginPostLogoutRedirectUriPath: "/_onelogin/System.Func`1[System.Guid]/logout-callb"···, expectedErrorField: "ClientSecret", expectedErrorMessage: "Client secret must be 200 characters or less")
✅ Post_WithOidcClientButInvalidDetails_RendersExpectedError(clientId: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"···, clientSecret: "Secret0123456789", redirectUris: "https://localhost/callback", postLogoutRedirectUris: "https://localhost/logout-callback", oneLoginClientId: "client_id", oneLoginClientKeyPem: "-----BEGIN PRIVATE KEY-----\nMIIEvgIBADANBgkqhkiG9"···, oneLoginAuthenticationSchemeName: "362419d9-7d8b-4ab8-b66d-eb8c14b20c08", oneLoginRedirectUriPath: "/_onelogin/System.Func`1[System.Guid]/callback", oneLoginPostLogoutRedirectUriPath: "/_onelogin/System.Func`1[System.Guid]/logout-callb"···, expectedErrorField: "ClientId", expectedErrorMessage: "Client ID must be 50 characters or less")

✅ TeachingRecordSystem.SupportUi.Tests.PageTests.ChangeRequests.EditChangeRequest.AcceptTests

✅ Get_WhenUserDoesNotHaveHelpdeskOrAdministratorRole_ReturnsForbidden
✅ Get_WhenUserHasNoRoles_ReturnsForbidden
✅ Get_WithTicketNumberForInactiveIncident_ReturnsBadRequest
✅ Get_WithTicketNumberForNonExistentIncident_ReturnsNotFound
✅ Post_ValidRequest_RedirectsWithFlashMessage
✅ Post_WhenUserDoesNotHaveHelpdeskOrAdministratorRole_ReturnsForbidden

✅ TeachingRecordSystem.SupportUi.Tests.PageTests.ChangeRequests.EditChangeRequest.IndexTests

✅ Get_UserWithNoRoles_ReturnsForbidden
✅ Get_UserWithoutHelpdeskOrAdministratorRole_ReturnsForbidden
✅ Get_WithTicketNumberForActiveDateOfBirthChangeIncident_RendersExpectedContent
✅ Get_WithTicketNumberForActiveNameChangeIncident_RendersExpectedContent(hasNewFirstName: False, hasNewMiddleName: False, hasNewLastName: True)
✅ Get_WithTicketNumberForActiveNameChangeIncident_RendersExpectedContent(hasNewFirstName: False, hasNewMiddleName: True, hasNewLastName: False)
✅ Get_WithTicketNumberForActiveNameChangeIncident_RendersExpectedContent(hasNewFirstName: False, hasNewMiddleName: True, hasNewLastName: True)
✅ Get_WithTicketNumberForActiveNameChangeIncident_RendersExpectedContent(hasNewFirstName: True, hasNewMiddleName: False, hasNewLastName: False)
✅ Get_WithTicketNumberForActiveNameChangeIncident_RendersExpectedContent(hasNewFirstName: True, hasNewMiddleName: False, hasNewLastName: True)
✅ Get_WithTicketNumberForActiveNameChangeIncident_RendersExpectedContent(hasNewFirstName: True, hasNewMiddleName: True, hasNewLastName: False)
✅ Get_WithTicketNumberForActiveNameChangeIncident_RendersExpectedContent(hasNewFirstName: True, hasNewMiddleName: True, hasNewLastName: True)
✅ Get_WithTicketNumberForInactiveIncident_ReturnsBadRequest
✅ Get_WithTicketNumberForNonExistentIncident_ReturnsNotFound

✅ TeachingRecordSystem.SupportUi.Tests.PageTests.ChangeRequests.EditChangeRequest.RejectTests

✅ Get_WhenUserDoesNotHaveHelpdeskOrAdministratorRole_ReturnsForbidden
✅ Get_WhenUserHasNoRoles_ReturnsForbidden
✅ Get_WithTicketNumberForInactiveIncident_ReturnsBadRequest
✅ Get_WithTicketNumberForNonExistentIncident_ReturnsNotFound
✅ Post_WhenRejectionReasonChoiceHasNoSelection_ReturnsError
✅ Post_WhenRejectionReasonChoiceIsChangeNoLongerRequired_RedirectsWithFlashMessage
✅ Post_WhenRejectionReasonChoiceIsNotChangeNoLongerRequired_RedirectsWithFlashMessage
✅ Post_WhenUserDoesNotHaveHelpdeskOrAdministratorRole_ReturnsForbidden

✅ TeachingRecordSystem.SupportUi.Tests.PageTests.ChangeRequests.IndexTests

✅ Get_UserWithNoRoles_ReturnsForbidden
✅ Get_ValidRequest_RendersExpectedContent
✅ Get_ValidRequestNoActiveChangeRequests_RendersExpectedContent

✅ TeachingRecordSystem.SupportUi.Tests.PageTests.Mqs.AddMq.CheckAnswersTests

✅ Get_ValidRequestWithPopulatedDataInJourneyState_PopulatesModelFromJourneyState(status: Failed)
✅ Get_ValidRequestWithPopulatedDataInJourneyState_PopulatesModelFromJourneyState(status: InProgress)
✅ Get_ValidRequestWithPopulatedDataInJourneyState_PopulatesModelFromJourneyState(status: Passed)
✅ Get_WithPersonIdForNonExistentPerson_ReturnsNotFound
✅ Get_WithPersonIdForValidPersonReturnsOk
✅ Post_Cancel_DeletesJourneyRedirectsAndDoesNotCreateMq
✅ Post_Confirm_CreatesMqCreatesEventCompletesJourneyAndRedirectsWithFlashMessage(status: Failed)
✅ Post_Confirm_CreatesMqCreatesEventCompletesJourneyAndRedirectsWithFlashMessage(status: InProgress)
✅ Post_Confirm_CreatesMqCreatesEventCompletesJourneyAndRedirectsWithFlashMessage(status: Passed)
✅ Post_WithPersonIdForNonExistentPerson_ReturnsNotFound

✅ TeachingRecordSystem.SupportUi.Tests.PageTests.Mqs.AddMq.IndexTests

✅ Get_RedirectsToMqAddProvider

✅ TeachingRecordSystem.SupportUi.Tests.PageTests.Mqs.AddMq.ProviderTests

✅ Get_ValidRequestWithPopulatedDataInJourneyState_PopulatesModelFromJourneyState
✅ Get_WithPersonIdForNonExistentPerson_ReturnsNotFound
✅ Get_WithPersonIdForValidPerson_ReturnsOk
✅ Post_WhenNoProviderIsSelected_ReturnsError
✅ Post_WhenProviderIsSelected_RedirectsToSpecialismPage
✅ Post_WithPersonIdForNonExistentPerson_ReturnsNotFound

✅ TeachingRecordSystem.SupportUi.Tests.PageTests.Mqs.AddMq.SpecialismTests

✅ Get_ProviderMissingFromState_RedirectsToProvider
✅ Get_ValidRequestWithPopulatedDataInJourneyState_PopulatesModelFromJourneyState
✅ Get_WithPersonIdForNonExistentPerson_ReturnsNotFound
✅ Post_ProviderMissingFromState_RedirectsToProvider
✅ Post_WhenNoSpecialismIsSelected_ReturnsError
✅ Post_WhenSpecialismIsSelected_RedirectsToStartDatePage
✅ Post_WithPersonIdForNonExistentPerson_ReturnsNotFound

✅ TeachingRecordSystem.SupportUi.Tests.PageTests.Mqs.AddMq.StartDateTests

✅ Get_SpecialismMissingFromState_RedirectsToSpecialism
✅ Get_ValidRequestWithPopulatedDataInJourneyState_PopulatesModelFromJourneyState
✅ Get_WithPersonIdForNonExistentPerson_ReturnsNotFound
✅ Get_WithPersonIdForValidPerson_ReturnsOk
✅ Post_SpecialismMissingFromState_RedirectToSpecialism
✅ Post_StartDateIsAfterOrEqualToEndDate_RendersError(daysAfter: 0)
✅ Post_StartDateIsAfterOrEqualToEndDate_RendersError(daysAfter: 1)
✅ Post_WhenNoStartDateIsEntered_ReturnsError
✅ Post_WhenStartDateIsEntered_RedirectsToResultPage
✅ Post_WithPersonIdForNonExistentPerson_ReturnsNotFound

✅ TeachingRecordSystem.SupportUi.Tests.PageTests.Mqs.AddMq.StatusTests

✅ Get_StartDateMissingFromState_RedirectsToStartDate
✅ Get_ValidRequestWithPopulatedDataInJourneyState_PopulatesModelFromJourneyState
✅ Get_WithPersonIdForNonExistentPerson_ReturnsNotFound
✅ Get_WithPersonIdForValidPerson_ReturnsOk
✅ Post_EndDateIsBeforeOrEqualToStartDate_RendersError(daysBefore: 0)
✅ Post_EndDateIsBeforeOrEqualToStartDate_RendersError(daysBefore: 1)
✅ Post_StartDateMissingFromState_RedirectsToStartDate
✅ Post_ValidRequest_RedirectsToResultPage
✅ Post_WhenResultIsNotSelected_ReturnsError
✅ Post_WhenResultIsPassedAndEndDateHasNotBeenEntered_ReturnsError
✅ Post_WithPersonIdForNonExistentPerson_ReturnsNotFound

✅ TeachingRecordSystem.SupportUi.Tests.PageTests.Mqs.DeleteMq.ConfirmTests

✅ Get_MissingDataInJourneyState_Redirects
✅ Get_ValidRequest_DisplaysContentAsExpected(providerName: "University of Leeds", specialism: Hearing, startDateString: "2021-10-05", status: Deferred, endDateString: null, deletionReason: ProviderRequest, deletionReasonDetail: null, uploadEvidence: False)
✅ Get_ValidRequest_DisplaysContentAsExpected(providerName: "University of Leeds", specialism: Hearing, startDateString: "2021-10-05", status: Passed, endDateString: "2021-11-05", deletionReason: ProviderRequest, deletionReasonDetail: "Some details about the deletion reason", uploadEvidence: True)
✅ Get_ValidRequest_DisplaysContentAsExpected(providerName: null, specialism: null, startDateString: null, status: null, endDateString: null, deletionReason: AnotherReason, deletionReasonDetail: null, uploadEvidence: False)
✅ Post_Cancel_DeletesJourneyAndRedirects
✅ Post_Confirm_DeletesMqCreatesEventCompletesJourneyAndRedirectsWithFlashMessage
✅ Post_MissingDataInJourneyState_Redirects

✅ TeachingRecordSystem.SupportUi.Tests.PageTests.Mqs.DeleteMq.IndexTests

✅ Get_ValidRequestWithPopulatedDataInJourneyState_PopulatesModelFromJourneyState
✅ Get_WithQualificationIdForNonExistentQualification_ReturnsNotFound
✅ Get_WithQualificationIdForValidQualification_ReturnsOk
✅ Post_Cancel_DeletesJourneyAndRedirects
✅ Post_ValidInput_RedirectsToConfirmPage
✅ Post_WhenEvidenceFileIsInvalidType_ReturnsError
✅ Post_WhenNoDeletionReasonIsSelected_ReturnsError
✅ Post_WhenNoUploadEvidenceOptionIsSelected_ReturnsError
✅ Post_WhenUploadEvidenceOptionIsYesAndNoFileIsSelected_ReturnsError
✅ Post_WithQualificationIdForNonExistentQualification_ReturnsNotFound

✅ TeachingRecordSystem.SupportUi.Tests.PageTests.Mqs.EditMq.Provider.ConfirmTests

✅ Get_MissingDataInJourneyState_Redirects
✅ Get_ValidRequest_DisplaysContentAsExpected(changeReasonDetail: "Some reason", uploadEvidence: True)
✅ Get_ValidRequest_DisplaysContentAsExpected(changeReasonDetail: null, uploadEvidence: False)
✅ Post_Cancel_DeletesJourneyAndRedirectsAndDoesNotUpdateMq
✅ Post_Confirm_UpdatesMqCreatesEventAndCompletesJourneyRedirectsWithFlashMessage
✅ Post_MissingDataInJourneyState_Redirects

✅ TeachingRecordSystem.SupportUi.Tests.PageTests.Mqs.EditMq.Provider.IndexTests

✅ Get_ValidRequestWithInitializedJourneyState_PopulatesModelFromJourneyState
✅ Get_ValidRequestWithUninitializedJourneyState_PopulatesModelFromDatabase
✅ Get_WithQualificationIdForNonExistentQualification_ReturnsNotFound
✅ Post_Cancel_DeletesJourneyAndRedirects
✅ Post_WhenNoProviderIsSelected_ReturnsError
✅ Post_WhenProviderIsSelected_RedirectsToReasonPage
✅ Post_WithQualificationIdForNonExistentQualification_ReturnsNotFound

✅ TeachingRecordSystem.SupportUi.Tests.PageTests.Mqs.EditMq.Provider.ReasonTests

✅ Get_MissingDataInJourneyState_Redirects
✅ Get_ValidRequestWithPopulatedDataInJourneyState_ReturnsOK
✅ Get_WithQualificationIdForNonExistentQualification_ReturnsNotFound
✅ Post_Cancel_DeletesJourneyAndRedirects
✅ Post_ValidInput_RedirectsToConfirmPage
✅ Post_WhenEvidenceFileIsInvalidType_ReturnsError
✅ Post_WhenNoChangeReasonIsSelected_ReturnsError
✅ Post_WhenNoUploadEvidenceOptionIsSelected_ReturnsError
✅ Post_WhenUploadEvidenceOptionIsYesAndNoFileIsSelected_ReturnsError
✅ Post_WithQualificationIdForNonExistentQualification_ReturnsNotFound

✅ TeachingRecordSystem.SupportUi.Tests.PageTests.Mqs.EditMq.Specialism.ConfirmTests

✅ Get_MissingDataInJourneyState_Redirects
✅ Get_ValidRequest_DisplaysContentAsExpected(changeReasonDetail: "Some reason", uploadEvidence: True)
✅ Get_ValidRequest_DisplaysContentAsExpected(changeReasonDetail: null, uploadEvidence: False)
✅ Post_Cancel_DeletesJourneyRedirectsAndDoesNotUpdateMq
✅ Post_Confirm_UpdatesMqCreatesEventCompletesJourneyAndRedirectsWithFlashMessage
✅ Post_MissingDataInJourneyState_Redirects

✅ TeachingRecordSystem.SupportUi.Tests.PageTests.Mqs.EditMq.Specialism.IndexTests

✅ Get_QualificationWasMigratedFromDqtWithLegacySpecialism_ShowsLegacySpecialisms
✅ Get_QualificationWasMigratedFromDqtWithNonLegacySpecialism_DoesNotShowLegacySpecialisms
✅ Get_ValidRequestWithInitializedJourneyState_PopulatesModelFromJourneyState
✅ Get_ValidRequestWithUninitializedJourneyState_PopulatesModelFromDatabase
✅ Get_WithQualificationIdForNonExistentQualification_ReturnsNotFound
✅ Post_Cancel_DeletesJourneyAndRedirects
✅ Post_WhenNoSpecialismIsSelected_ReturnsError
✅ Post_WhenSpecialismIsSelected_RedirectsToReasonPage
✅ Post_WithQualificationIdForNonExistentQualification_ReturnsNotFound

✅ TeachingRecordSystem.SupportUi.Tests.PageTests.Mqs.EditMq.Specialism.ReasonTests

✅ Get_MissingDataInJourneyState_Redirects
✅ Get_ValidRequestWithPopulatedDataInJourneyState_ReturnsOK
✅ Get_WithQualificationIdForNonExistentQualification_ReturnsNotFound
✅ Post_Cancel_DeletesJourneyAndRedirects
✅ Post_ValidInput_RedirectsToConfirmPage
✅ Post_WhenEvidenceFileIsInvalidType_ReturnsError
✅ Post_WhenNoChangeReasonIsSelected_ReturnsError
✅ Post_WhenNoUploadEvidenceOptionIsSelected_ReturnsError
✅ Post_WhenUploadEvidenceOptionIsYesAndNoFileIsSelected_ReturnsError
✅ Post_WithQualificationIdForNonExistentQualification_ReturnsNotFound

✅ TeachingRecordSystem.SupportUi.Tests.PageTests.Mqs.EditMq.StartDate.ConfirmTests

✅ Get_MissingDataInJourneyState_Redirects
✅ Get_ValidRequest_DisplaysContentAsExpected(changeReasonDetail: "Some reason", uploadEvidence: True)
✅ Get_ValidRequest_DisplaysContentAsExpected(changeReasonDetail: null, uploadEvidence: False)
✅ Post_Cancel_DeletesJourneyRedirectsAndDoesNotUpdateMq
✅ Post_Confirm_UpdatesMqCreatesEventCompletesJourneyAndRedirectsWithFlashMessage
✅ Post_MissingDataInJourneyState_Redirects

✅ TeachingRecordSystem.SupportUi.Tests.PageTests.Mqs.EditMq.StartDate.IndexTests

✅ Get_ValidRequestWithInitializedJourneyState_PopulatesModelFromJourneyState
✅ Get_ValidRequestWithUninitializedJourneyState_PopulatesModelFromDatabase
✅ Get_WithQualificationIdForNonExistentQualification_ReturnsNotFound
✅ Post_Cancel_DeletesJourneyAndRedirects
✅ Post_StartDateIsAfterOrEqualToEndDate_RendersError(daysAfter: 0)
✅ Post_StartDateIsAfterOrEqualToEndDate_RendersError(daysAfter: 1)
✅ Post_WhenNoStartDateIsEntered_ReturnsError
✅ Post_WhenStartDateIsEntered_RedirectsToReasonPage
✅ Post_WithQualificationIdForNonExistentQualification_ReturnsNotFound

✅ TeachingRecordSystem.SupportUi.Tests.PageTests.Mqs.EditMq.StartDate.ReasonTests

✅ Get_MissingDataInJourneyState_Redirects
✅ Get_ValidRequestWithPopulatedDataInJourneyState_ReturnsOK
✅ Get_WithQualificationIdForNonExistentQualification_ReturnsNotFound
✅ Post_Cancel_DeletesJourneyAndRedirects
✅ Post_ValidInput_RedirectsToConfirmPage
✅ Post_WhenEvidenceFileIsInvalidType_ReturnsError
✅ Post_WhenNoChangeReasonIsSelected_ReturnsError
✅ Post_WhenNoUploadEvidenceOptionIsSelected_ReturnsError
✅ Post_WhenUploadEvidenceOptionIsYesAndNoFileIsSelected_ReturnsError
✅ Post_WithQualificationIdForNonExistentQualification_ReturnsNotFound

✅ TeachingRecordSystem.SupportUi.Tests.PageTests.Mqs.EditMq.Status.ConfirmTests

✅ Get_MissingDataInJourneyState_Redirects
✅ Get_ValidRequest_DisplaysContentAsExpected(isStatusChange: False, isEndDateChange: True, changeReasonDetail: null, uploadEvidence: True)
✅ Get_ValidRequest_DisplaysContentAsExpected(isStatusChange: True, isEndDateChange: False, changeReasonDetail: "some reason", uploadEvidence: True)
✅ Get_ValidRequest_DisplaysContentAsExpected(isStatusChange: True, isEndDateChange: True, changeReasonDetail: null, uploadEvidence: False)
✅ Post_Cancel_DeletesJourneyRedirectsAndDoesNotUpdateMq
✅ Post_Confirm_UpdatesMqCreatesEventCompletesJourneyAndRedirectsWithFlashMessage(isStatusChange: False, isEndDateChange: True, changeReasonDetail: null, uploadEvidence: True)
✅ Post_Confirm_UpdatesMqCreatesEventCompletesJourneyAndRedirectsWithFlashMessage(isStatusChange: True, isEndDateChange: False, changeReasonDetail: "some reason", uploadEvidence: True)
✅ Post_Confirm_UpdatesMqCreatesEventCompletesJourneyAndRedirectsWithFlashMessage(isStatusChange: True, isEndDateChange: True, changeReasonDetail: null, uploadEvidence: False)
✅ Post_MissingDataInJourneyState_Redirects

✅ TeachingRecordSystem.SupportUi.Tests.PageTests.Mqs.EditMq.Status.IndexTests

✅ Get_ValidRequestWithInitializedJourneyState_PopulatesModelFromJourneyState
✅ Get_ValidRequestWithUninitializedJourneyState_PopulatesModelFromDatabase
✅ Get_WithQualificationIdForNonExistentQualification_ReturnsNotFound
✅ Post_Cancel_DeletesJourneyAndRedirects
✅ Post_EndDateIsBeforeOrEqualToStartDate_RendersError(daysBefore: 0)
✅ Post_EndDateIsBeforeOrEqualToStartDate_RendersError(daysBefore: 1)
✅ Post_ValidRequest_RedirectsToConfirmPage
✅ Post_WhenResultIsNotSelected_ReturnsError
✅ Post_WhenResultIsSelectedAndEndDateHasNotBeenEntered_ReturnsError
✅ Post_WithQualificationIdForNonExistentQualification_ReturnsNotFound

✅ TeachingRecordSystem.SupportUi.Tests.PageTests.Mqs.EditMq.Status.ReasonTests

✅ Get_MissingDataInJourneyState_Redirects
✅ Get_ValidRequestWithPopulatedDataInJourneyState_ReturnsOK
✅ Get_WithQualificationIdForNonExistentQualification_ReturnsNotFound
✅ Post_Cancel_DeletesJourneyAndRedirects
✅ Post_ValidInput_RedirectsToConfirmPage(isStatusChange: False, isEndDateChange: True)
✅ Post_ValidInput_RedirectsToConfirmPage(isStatusChange: True, isEndDateChange: False)
✅ Post_ValidInput_RedirectsToConfirmPage(isStatusChange: True, isEndDateChange: True)
✅ Post_WhenEvidenceFileIsInvalidType_ReturnsError
✅ Post_WhenNoChangeReasonIsSelected_ReturnsError(isStatusChange: False, isEndDateChange: True)
✅ Post_WhenNoChangeReasonIsSelected_ReturnsError(isStatusChange: True, isEndDateChange: False)
✅ Post_WhenNoChangeReasonIsSelected_ReturnsError(isStatusChange: True, isEndDateChange: True)
✅ Post_WhenNoUploadEvidenceOptionIsSelected_ReturnsError
✅ Post_WhenUploadEvidenceOptionIsYesAndNoFileIsSelected_ReturnsError
✅ Post_WithQualificationIdForNonExistentQualification_ReturnsNotFound

✅ TeachingRecordSystem.SupportUi.Tests.PageTests.Persons.IndexTests

✅ Get_WithEmptySearchParameter_DisplaysSearchFormOnly
✅ Get_WithNoQueryParameters_DisplaysSearchFormOnly
✅ Get_WithSearchQueryParameterWithNoMatches_DisplaysNoMatches
✅ Get_WithSearchThatLooksLikeADate_DisplaysMatchesOnDateOfBirth
✅ Get_WithSearchThatLooksLikeAName_DisplaysMatchesOnName
✅ Get_WithSearchThatLooksLikeATrn_DisplaysMatchOnTrn

✅ TeachingRecordSystem.SupportUi.Tests.PageTests.Persons.PersonDetail.AlertsTests

✅ Get_WithPersonIdForNonExistentPerson_ReturnsNotFound
✅ Get_WithPersonIdForPersonWithCurrentAndPreviousAlerts_DisplaysExpectedContent
✅ Get_WithPersonIdForPersonWithNoAlerts_DisplaysNoCurrentAlerts
✅ Get_WithPersonIdForPersonWithOnlyCurrentAlerts_DisplaysExpectedContent
✅ Get_WithPersonIdForPersonWithOnlyPreviousAlerts_DisplaysExpectedContent

✅ TeachingRecordSystem.SupportUi.Tests.PageTests.Persons.PersonDetail.ChangeLogMandatoryQualificationEventsTests

✅ Person_WithDeletedMandatoryQualificationEventWithLegacyProvider_RendersExpectedProviderName
✅ Person_WithDeletedMandatoryQualificationEventWithNoProvider_RendersNoneForProviderName
✅ Person_WithMandatoryQualficationDqtDeactivatedEvent_RendersExpectedContent
✅ Person_WithMandatoryQualficationDqtDeactivatedEventWithLegacyProvider_RendersExpectedProviderName
✅ Person_WithMandatoryQualficationDqtDeactivatedEventWithNoProvider_RendersExpectedContent
✅ Person_WithMandatoryQualificationCreatedEvent_RendersExpectedContent
✅ Person_WithMandatoryQualificationCreatedEventCreatedByDqtUser_RendersExpectedRaisedBy
✅ Person_WithMandatoryQualificationDeletedEvent_RendersExpectedContent
✅ Person_WithMandatoryQualificationDeletedEventWithEmptyData_RendersExpectedContent
✅ Person_WithMandatoryQualificationDeletedEventWithNoEvidenceFile_DoesNotRenderEvidenceRow
✅ Person_WithMandatoryQualificationDqtReactivatedEvent_RendersExpectedContent
✅ Person_WithMandatoryQualificationImportedEvent_RendersExpectedContent
✅ Person_WithMandatoryQualificationMigratedEvent_RendersExpectedContent
✅ Person_WithMandatoryQualificationMigratedEventWithChangedProvider_RendersProviderRowInPreviousDataSummaryList
✅ Person_WithMandatoryQualificationMigratedEventWithChangedSpecialism_RendersSpecialismRowInPreviousDataSummaryList
✅ Person_WithMandatoryQualificationMigratedEventWithNoChanges_DoesNotRenderPreviousDataSummaryList
✅ Person_WithMandatoryQualificationUpdatedEvent_RendersExpectedContent
✅ Person_WithMandatoryQualificationUpdatedEventWithChangedEndDate_RendersEndDateRowWithinPreviousData
✅ Person_WithMandatoryQualificationUpdatedEventWithChangedProvider_RendersTrainingProviderRowWithinPreviousData
✅ Person_WithMandatoryQualificationUpdatedEventWithChangedSpecialism_RendersSpecialismRowWithinPreviousData
✅ Person_WithMandatoryQualificationUpdatedEventWithChangedStartDate_RendersStartDateRowWithinPreviousData
✅ Person_WithMandatoryQualificationUpdatedEventWithChangedStatus_RendersStatusRowWithinPreviousData
✅ Person_WithMandatoryQualificationUpdatedEventWithoutChangedProvider_DoesNotRenderTrainingProviderRowWithinPreviousData
✅ Person_WithMandatoryQualificationUpdatedEventWithoutChangedSpecialism_DoesNotRenderSpecialismRowWithinPreviousData
✅ Person_WithMandatoryQualificationUpdatedEventWithoutChangedStartDate_DoesNotRenderStartDateRowWithinPreviousData
✅ Person_WithMandatoryQualificationUpdatedEventWithoutChangedStatus_DoesNotRenderStatusRowWithinPreviousData
✅ Person_WithMandatoryQualificationUpdatedEventWithoutChangeReason_DoesNotRenderReasonForChangeBlock

✅ TeachingRecordSystem.SupportUi.Tests.PageTests.Persons.PersonDetail.ChangeLogTests

✅ Get_NoChanges_DisplaysNoChangesMessage
✅ Get_PersonDoesNotExist_ReturnsNotFound
✅ Get_PersonWithDateOfBirthChangeCase_RendersExpectedItem(status: Approved, expectedSummaryText: "Approved")
✅ Get_PersonWithDateOfBirthChangeCase_RendersExpectedItem(status: Rejected, expectedSummaryText: "Rejected")
✅ Get_PersonWithNameChangeCase_RendersExpectedItem(status: Approved, expectedSummaryText: "Approved")
✅ Get_PersonWithNameChangeCase_RendersExpectedItem(status: Rejected, expectedSummaryText: "Rejected")
✅ Get_PersonWithNote_RendersExpectedContent
✅ Get_PersonWithTask_RendersExpectedContent
✅ Get_PersonWithTaskWithCompletedStatus_RendersClosedStatus
✅ Get_PersonWithTaskWithPastDueDate_RendersOverdueStatus

✅ TeachingRecordSystem.SupportUi.Tests.PageTests.Persons.PersonDetail.EditDateOfBirth.ConfirmTests

✅ Get_StateHasNoDateOfBirth_RedirectsToIndex
✅ Get_ValidRequest_RendersExpectedContent
✅ Get_WithPersonIdForNonExistentPerson_ReturnsNotFound
✅ Post_ValidRequest_UpdatesDateOfBirthAndCompletesJourney
✅ Post_WithPersonIdForNonExistentPerson_ReturnsNotFound

✅ TeachingRecordSystem.SupportUi.Tests.PageTests.Persons.PersonDetail.EditDateOfBirth.IndexTests

✅ Get_ValidRequestForNewJourney_PopulatesModelFromDqt
✅ Get_ValidRequestWithPopulatedDataInJourneyState_PopulatesModelFromJourneyState
✅ Get_WithPersonIdForNonExistentPerson_ReturnsNotFound
✅ Post_WithInvalidData_ReturnsError(day: "", month: "", year: "", expectedErrorElementId: "DateOfBirth", expectedErrorMessage: "Enter a date of birth")
✅ Post_WithInvalidData_ReturnsError(day: "", month: "", year: "1969", expectedErrorElementId: "DateOfBirth", expectedErrorMessage: "Date of birth must include a day and month")
✅ Post_WithInvalidData_ReturnsError(day: "", month: "10", year: "", expectedErrorElementId: "DateOfBirth", expectedErrorMessage: "Date of birth must include a day and year")
✅ Post_WithInvalidData_ReturnsError(day: "", month: "10", year: "1969", expectedErrorElementId: "DateOfBirth", expectedErrorMessage: "Date of birth must include a day")
✅ Post_WithInvalidData_ReturnsError(day: "10", month: "", year: "", expectedErrorElementId: "DateOfBirth", expectedErrorMessage: "Date of birth must include a month and year")
✅ Post_WithInvalidData_ReturnsError(day: "10", month: "", year: "1969", expectedErrorElementId: "DateOfBirth", expectedErrorMessage: "Date of birth must include a month")
✅ Post_WithInvalidData_ReturnsError(day: "10", month: "10", year: "", expectedErrorElementId: "DateOfBirth", expectedErrorMessage: "Date of birth must include a year")
✅ Post_WithInvalidData_ReturnsError(day: "32", month: "10", year: "1969", expectedErrorElementId: "DateOfBirth", expectedErrorMessage: "Date of birth must be a real date")
✅ Post_WithInvalidData_ReturnsError(day: "Blah", month: "Blah", year: "Blah", expectedErrorElementId: "DateOfBirth", expectedErrorMessage: "Date of birth must be a real date")
✅ Post_WithValidData_RedirectsToConfirmPage

✅ TeachingRecordSystem.SupportUi.Tests.PageTests.Persons.PersonDetail.EditName.ConfirmTests

✅ Get_StateHasMissingRequiredData_RedirectsToIndex(firstName: "NewFirstName", middleName: null, lastName: null)
✅ Get_StateHasMissingRequiredData_RedirectsToIndex(firstName: null, middleName: "NewMiddleName", lastName: null)
✅ Get_StateHasMissingRequiredData_RedirectsToIndex(firstName: null, middleName: null, lastName: "NewLastName")
✅ Get_StateHasMissingRequiredData_RedirectsToIndex(firstName: null, middleName: null, lastName: null)
✅ Get_ValidRequest_RendersExpectedContent
✅ Get_WithPersonIdForNonExistentPerson_ReturnsNotFound
✅ Post_ValidRequest_UpdatesNameAndCompletesJourney
✅ Post_WithPersonIdForNonExistentPerson_ReturnsNotFound

✅ TeachingRecordSystem.SupportUi.Tests.PageTests.Persons.PersonDetail.EditName.IndexTests

✅ Get_ValidRequestForNewJourney_PopulatesModelFromDqt
✅ Get_ValidRequestWithPopulatedDataInJourneyState_PopulatesModelFromJourneyState
✅ Get_WithPersonIdForNonExistentPerson_ReturnsNotFound
✅ Post_WithInvalidData_ReturnsExpectedErrors(firstName: "", middleName: "", lastName: "Bloggs", expectedErrorElementId: "FirstName", expectedErrorMessage: "Enter a first name")
✅ Post_WithInvalidData_ReturnsExpectedErrors(firstName: "Joe", middleName: "", lastName: "", expectedErrorElementId: "LastName", expectedErrorMessage: "Enter a last name")
✅ Post_WithInvalidData_ReturnsExpectedErrors(firstName: "Joe", middleName: "", lastName: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"···, expectedErrorElementId: "LastName", expectedErrorMessage: "Last name must be 100 characters or less")
✅ Post_WithInvalidData_ReturnsExpectedErrors(firstName: "Joe", middleName: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"···, lastName: "Bloggs", expectedErrorElementId: "MiddleName", expectedErrorMessage: "Middle name must be 100 characters or less")
✅ Post_WithInvalidData_ReturnsExpectedErrors(firstName: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"···, middleName: "", lastName: "Bloggs", expectedErrorElementId: "FirstName", expectedErrorMessage: "First name must be 100 characters or less")
✅ Post_WithValidData_RedirectsToConfirmPage

✅ TeachingRecordSystem.SupportUi.Tests.PageTests.Persons.PersonDetail.IndexTests

✅ Get_WithPersonIdForExistingPersonWithAllPropertiesSet_ReturnsExpectedContent
✅ Get_WithPersonIdForExistingPersonWithMissingProperties_ReturnsExpectedContent
✅ Get_WithPersonIdForNonExistentPerson_ReturnsNotFound

✅ TeachingRecordSystem.SupportUi.Tests.PageTests.Persons.PersonDetail.QualificationsTests

✅ Get_WithPersonIdForNonExistentPerson_ReturnsNotFound
✅ Get_WithPersonIdForPersonWithMandatoryQualifications_DisplaysExpectedContent(providerName: "University of Birmingham", specialism: Hearing, startDateString: "2022-01-05", status: Deferred, endDateString: null)
✅ Get_WithPersonIdForPersonWithMandatoryQualifications_DisplaysExpectedContent(providerName: "University of Birmingham", specialism: Hearing, startDateString: "2022-01-05", status: Passed, endDateString: "2022-07-13")
✅ Get_WithPersonIdForPersonWithMandatoryQualifications_DisplaysExpectedContent(providerName: null, specialism: null, startDateString: null, status: null, endDateString: null)
✅ Get_WithPersonIdForPersonWithNoMandatoryQualifications_DisplaysNoMandatoryQualifications

✅ TeachingRecordSystem.SupportUi.Tests.PageTests.Users.AddUser.ConfirmTests

✅ Get_UserIdDoesNotExist_ReturnsNotFound
✅ Get_UserWithoutAdministratorRole_ReturnsForbidden
✅ Get_ValidRequest_RendersExpectedContent(hasCrmAccount: False, hasDisabledCrmAccount: False, hasDqtRoles: False)
✅ Get_ValidRequest_RendersExpectedContent(hasCrmAccount: True, hasDisabledCrmAccount: False, hasDqtRoles: False)
✅ Get_ValidRequest_RendersExpectedContent(hasCrmAccount: True, hasDisabledCrmAccount: False, hasDqtRoles: True)
✅ Get_ValidRequest_RendersExpectedContent(hasCrmAccount: True, hasDisabledCrmAccount: True, hasDqtRoles: False)
✅ Get_ValidRequest_RendersExpectedContent(hasCrmAccount: True, hasDisabledCrmAccount: True, hasDqtRoles: True)
✅ Post_NoName_RendersError
✅ Post_NoRolesSelected_RendersError
✅ Post_UserIdDoesNotExist_ReturnsNotFound
✅ Post_UserWithoutAdministratorRole_ReturnsForbidden
✅ Post_ValidRequest_CreatesUserEmitsEventAndRedirectsWithFlashMessage

✅ TeachingRecordSystem.SupportUi.Tests.PageTests.Users.AddUser.IndexTests

✅ Get_UserWithoutAdministratorRole_ReturnsForbidden
✅ Get_WithAdministratorUser_ReturnsOk
✅ Post_EmailDoesNotHaveSuffix_AppendsEducationSuffixBeforeSearching
✅ Post_NoEmailEntered_RendersErrorMessage
✅ Post_UserFound_ButAlreadyExistsInTrs_RedirectsToEditPage
✅ Post_UserFound_RedirectsToConfirmPage
✅ Post_UserNotFound_RendersErrorMessage
✅ Post_UserWithoutAdministratorRole_ReturnsForbidden

✅ TeachingRecordSystem.SupportUi.Tests.PageTests.Users.EditUserTests

✅ Get_UserIdDoesNotExist_ReturnsNotFound
✅ Get_UserWithOutAdministratorRole_ReturnsForbidden
✅ Get_ValidRequest_RendersExpectedContent(hasCrmAccount: False, hasDisabledCrmAccount: False, hasDqtRoles: False)
✅ Get_ValidRequest_RendersExpectedContent(hasCrmAccount: True, hasDisabledCrmAccount: False, hasDqtRoles: False)
✅ Get_ValidRequest_RendersExpectedContent(hasCrmAccount: True, hasDisabledCrmAccount: False, hasDqtRoles: True)
✅ Get_ValidRequest_RendersExpectedContent(hasCrmAccount: True, hasDisabledCrmAccount: True, hasDqtRoles: False)
✅ Get_ValidRequest_RendersExpectedContent(hasCrmAccount: True, hasDisabledCrmAccount: True, hasDqtRoles: True)
✅ Post_NoName_RendersError
✅ Post_NoRolesSelected_RendersError
✅ Post_UserExistsButIsAlreadyActive_ReturnsBadRequest
✅ Post_UserExistsButIsAlreadyDeactivated_ReturnsBadRequest
✅ Post_UserIdDoesNotExist_ReturnsNotFound
✅ Post_UserWithoutAdministratorRole_ReturnsForbidden
✅ Post_ValidRequest_ActivatesUsersEmitsEventAndRedirectsWithFlashMessage
✅ Post_ValidRequest_CreatesUserEmitsEventAndRedirectsWithFlashMessage(changeName: False, changeRoles: True, expectedEvent: True, expectedChanges: Roles)
✅ Post_ValidRequest_CreatesUserEmitsEventAndRedirectsWithFlashMessage(changeName: True, changeRoles: False, expectedEvent: True, expectedChanges: Name)
✅ Post_ValidRequest_CreatesUserEmitsEventAndRedirectsWithFlashMessage(changeName: True, changeRoles: True, expectedEvent: True, expectedChanges: Name | Roles)
✅ Post_ValidRequest_DeactivatesUsersEmitsEventAndRedirectsWithFlashMessage

✅ TeachingRecordSystem.SupportUi.Tests.PageTests.Users.UsersTests

✅ Get_UserWithAdministratorRole_ReturnsOk
✅ Get_UserWithOutAdministratorRole_ReturnsForbidden
✅ Get_ValidRequestAndUsersFound_RendersUsers