Skip to content

Push on EHD-1057-simplify-hosting #234

Push on EHD-1057-simplify-hosting

Push on EHD-1057-simplify-hosting #234

GitHub Actions / test-results succeeded Jan 15, 2025 in 0s

191 passed, 0 failed and 0 skipped

Tests passed successfully

✅ GenderPayGap.UnitTests/GenderPayGap.WebUI.Tests/TestResults/test-results.trx

191 tests were completed in 5s with 191 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
GenderPayGap.BusinessLogic.Tests.Services.AuditLoggerTests 1✅ 17ms
GenderPayGap.Core.Tests.Helpers.CsvWriterTests 6✅ 27ms
GenderPayGap.Core.Tests.Helpers.ReportingYearsHelperTests 11✅ 5ms
GenderPayGap.Database.ReturnTests.IsLateSubmissionTests 25✅ 14ms
GenderPayGap.Database.ReturnTests.IsVoluntarySubmissionTests 46✅ 6ms
GenderPayGap.Extensions.Tests.VirtualDateTimeTests 1✅ 11ms
GenderPayGap.WebUI.Tests.CodeQualityTests.DoNotAllowHtmlDotRawTests 1✅ 82ms
GenderPayGap.WebUI.Tests.CodeQualityTests.DoNotUseRedirectWithReturnUrls 1✅ 722ms
GenderPayGap.WebUI.Tests.CodeQualityTests.EnsureAllPostRequestsRequireAntiForgeryTokenTests 1✅ 36ms
GenderPayGap.WebUI.Tests.Controllers.Account.AccountCreationTests 2✅ 1s
GenderPayGap.WebUI.Tests.Controllers.Account.ChangeEmailTests 6✅ 205ms
GenderPayGap.WebUI.Tests.Controllers.Account.ChangePasswordControllerTests 9✅ 377ms
GenderPayGap.WebUI.Tests.Controllers.Account.CloseAccountTests 3✅ 272ms
GenderPayGap.WebUI.Tests.Controllers.Administration.AdminDatabaseIntegrityChecksControllerTests 12✅ 378ms
GenderPayGap.WebUI.Tests.Controllers.Administration.AdminUnconfirmedPinsControllerTests 2✅ 37ms
GenderPayGap.WebUI.Tests.Controllers.CookieControllerTests 3✅ 34ms
GenderPayGap.WebUI.Tests.Controllers.PasswordReset.PasswordResetControllerTests 6✅ 147ms
GenderPayGap.WebUI.Tests.Controllers.Scope.ScopeControllerTests 1✅ 25ms
GenderPayGap.WebUI.Tests.Search.SearchRepositoryTests 14✅ 196ms
GenderPayGap.WebUI.Tests.Services.PinInThePostServiceTests 6✅ 3ms
Repositories.RegistrationRepository.RemoveRegistrationTests 2✅ 79ms
Repositories.UserRepository.CheckPasswordTests 2✅ 41ms
Repositories.UserRepository.FindByEmailTests 7✅ 66ms
Repositories.UserRepository.RemoveRetiredUserRegistrationsTests 1✅ 27ms
Repositories.UserRepository.RetireUserTests 5✅ 57ms
Repositories.UserRepository.UpdateEmailTests 8✅ 62ms
Repositories.UserRepository.UpdatePasswordTests 8✅ 119ms
Tests.ConfigTests 1✅ 0ms

✅ GenderPayGap.BusinessLogic.Tests.Services.AuditLoggerTests

✅ AllAuditActionsMustHaveUniqueEnumValues

✅ GenderPayGap.Core.Tests.Helpers.CsvWriterTests

✅ CsvWriter_Does_Not_Sanitize_Negative_Values
✅ CsvWriter_Does_Not_Sanitize_Strings_That_Do_Not_Start_With_Injection_Character
✅ CsvWriter_Sanitizes_Strings_That_Start_With('-')
✅ CsvWriter_Sanitizes_Strings_That_Start_With('@')
✅ CsvWriter_Sanitizes_Strings_That_Start_With('+')
✅ CsvWriter_Sanitizes_Strings_That_Start_With('=')

✅ GenderPayGap.Core.Tests.Helpers.ReportingYearsHelperTests

✅ IsReportingYearWithFurloughScheme_Returns_False_Given_A_Year_Without_Furlough_Scheme(2017)
✅ IsReportingYearWithFurloughScheme_Returns_False_Given_A_Year_Without_Furlough_Scheme(2018)
✅ IsReportingYearWithFurloughScheme_Returns_False_Given_A_Year_Without_Furlough_Scheme(2019)
✅ IsReportingYearWithFurloughScheme_Returns_False_Given_A_Year_Without_Furlough_Scheme(2022)
✅ IsReportingYearWithFurloughScheme_Returns_False_Given_A_Year_Without_Furlough_Scheme(2023)
✅ IsReportingYearWithFurloughScheme_Returns_False_Given_A_Year_Without_Furlough_Scheme(2024)
✅ IsReportingYearWithFurloughScheme_Returns_False_Given_A_Year_Without_Furlough_Scheme(2025)
✅ IsReportingYearWithFurloughScheme_Returns_False_Given_A_Year_Without_Furlough_Scheme(2026)
✅ IsReportingYearWithFurloughScheme_Returns_False_Given_A_Year_Without_Furlough_Scheme(2027)
✅ IsReportingYearWithFurloughScheme_Returns_True_Given_A_Year_With_Furlough_Scheme(2020)
✅ IsReportingYearWithFurloughScheme_Returns_True_Given_A_Year_With_Furlough_Scheme(2021)

✅ GenderPayGap.Database.ReturnTests.IsLateSubmissionTests

✅ Is_False_When_ModifiedDate_Is_Late_And_ExcludeFromLateFlagEnforcement_Year_And_AnyScope(Private,InScope)
✅ Is_False_When_ModifiedDate_Is_Late_And_ExcludeFromLateFlagEnforcement_Year_And_AnyScope(Private,OutOfScope)
✅ Is_False_When_ModifiedDate_Is_Late_And_ExcludeFromLateFlagEnforcement_Year_And_AnyScope(Private,PresumedInScope)
✅ Is_False_When_ModifiedDate_Is_Late_And_ExcludeFromLateFlagEnforcement_Year_And_AnyScope(Private,PresumedOutOfScope)
✅ Is_False_When_ModifiedDate_Is_Late_And_ExcludeFromLateFlagEnforcement_Year_And_AnyScope(Public,InScope)
✅ Is_False_When_ModifiedDate_Is_Late_And_ExcludeFromLateFlagEnforcement_Year_And_AnyScope(Public,OutOfScope)
✅ Is_False_When_ModifiedDate_Is_Late_And_ExcludeFromLateFlagEnforcement_Year_And_AnyScope(Public,PresumedInScope)
✅ Is_False_When_ModifiedDate_Is_Late_And_ExcludeFromLateFlagEnforcement_Year_And_AnyScope(Public,PresumedOutOfScope)
✅ Is_False_When_ModifiedDate_Is_Late_And_OutOfScope(Private,OutOfScope)
✅ Is_False_When_ModifiedDate_Is_Late_And_OutOfScope(Private,PresumedOutOfScope)
✅ Is_False_When_ModifiedDate_Is_Late_And_OutOfScope(Public,OutOfScope)
✅ Is_False_When_ModifiedDate_Is_Late_And_OutOfScope(Public,PresumedOutOfScope)
✅ Is_False_When_ModifiedDate_Is_Late_Given_Any_ExcludeFromLateFlagEnforcement_Year(2019)
✅ Is_False_When_ModifiedDate_Is_Not_Late_And_AnyScope(Private,InScope)
✅ Is_False_When_ModifiedDate_Is_Not_Late_And_AnyScope(Private,OutOfScope)
✅ Is_False_When_ModifiedDate_Is_Not_Late_And_AnyScope(Private,PresumedInScope)
✅ Is_False_When_ModifiedDate_Is_Not_Late_And_AnyScope(Private,PresumedOutOfScope)
✅ Is_False_When_ModifiedDate_Is_Not_Late_And_AnyScope(Public,InScope)
✅ Is_False_When_ModifiedDate_Is_Not_Late_And_AnyScope(Public,OutOfScope)
✅ Is_False_When_ModifiedDate_Is_Not_Late_And_AnyScope(Public,PresumedInScope)
✅ Is_False_When_ModifiedDate_Is_Not_Late_And_AnyScope(Public,PresumedOutOfScope)
✅ Is_True_When_ModifiedDate_Is_Late_And_InScope(Private,InScope)
✅ Is_True_When_ModifiedDate_Is_Late_And_InScope(Private,PresumedInScope)
✅ Is_True_When_ModifiedDate_Is_Late_And_InScope(Public,InScope)
✅ Is_True_When_ModifiedDate_Is_Late_And_InScope(Public,PresumedInScope)

✅ GenderPayGap.Database.ReturnTests.IsVoluntarySubmissionTests

✅ IsFalseWhenNotVoluntary(Private,0,InScope)
✅ IsFalseWhenNotVoluntary(Private,0,PresumedInScope)
✅ IsFalseWhenNotVoluntary(Private,0,Unknown)
✅ IsFalseWhenNotVoluntary(Private,19999,InScope)
✅ IsFalseWhenNotVoluntary(Private,19999,PresumedInScope)
✅ IsFalseWhenNotVoluntary(Private,19999,Unknown)
✅ IsFalseWhenNotVoluntary(Private,249,InScope)
✅ IsFalseWhenNotVoluntary(Private,249,PresumedInScope)
✅ IsFalseWhenNotVoluntary(Private,249,Unknown)
✅ IsFalseWhenNotVoluntary(Private,499,InScope)
✅ IsFalseWhenNotVoluntary(Private,499,PresumedInScope)
✅ IsFalseWhenNotVoluntary(Private,499,Unknown)
✅ IsFalseWhenNotVoluntary(Private,4999,InScope)
✅ IsFalseWhenNotVoluntary(Private,4999,PresumedInScope)
✅ IsFalseWhenNotVoluntary(Private,4999,Unknown)
✅ IsFalseWhenNotVoluntary(Private,999,InScope)
✅ IsFalseWhenNotVoluntary(Private,999,PresumedInScope)
✅ IsFalseWhenNotVoluntary(Private,999,Unknown)
✅ IsFalseWhenNotVoluntary(Private,int.MaxValue,InScope)
✅ IsFalseWhenNotVoluntary(Private,int.MaxValue,PresumedInScope)
✅ IsFalseWhenNotVoluntary(Private,int.MaxValue,Unknown)
✅ IsFalseWhenNotVoluntary(Public,0,InScope)
✅ IsFalseWhenNotVoluntary(Public,0,PresumedInScope)
✅ IsFalseWhenNotVoluntary(Public,0,Unknown)
✅ IsFalseWhenNotVoluntary(Public,19999,InScope)
✅ IsFalseWhenNotVoluntary(Public,19999,PresumedInScope)
✅ IsFalseWhenNotVoluntary(Public,19999,Unknown)
✅ IsFalseWhenNotVoluntary(Public,249,InScope)
✅ IsFalseWhenNotVoluntary(Public,249,PresumedInScope)
✅ IsFalseWhenNotVoluntary(Public,249,Unknown)
✅ IsFalseWhenNotVoluntary(Public,499,InScope)
✅ IsFalseWhenNotVoluntary(Public,499,PresumedInScope)
✅ IsFalseWhenNotVoluntary(Public,499,Unknown)
✅ IsFalseWhenNotVoluntary(Public,4999,InScope)
✅ IsFalseWhenNotVoluntary(Public,4999,PresumedInScope)
✅ IsFalseWhenNotVoluntary(Public,4999,Unknown)
✅ IsFalseWhenNotVoluntary(Public,999,InScope)
✅ IsFalseWhenNotVoluntary(Public,999,PresumedInScope)
✅ IsFalseWhenNotVoluntary(Public,999,Unknown)
✅ IsFalseWhenNotVoluntary(Public,int.MaxValue,InScope)
✅ IsFalseWhenNotVoluntary(Public,int.MaxValue,PresumedInScope)
✅ IsFalseWhenNotVoluntary(Public,int.MaxValue,Unknown)
✅ IsTrueWhenVoluntary(Private,249,OutOfScope)
✅ IsTrueWhenVoluntary(Private,249,PresumedOutOfScope)
✅ IsTrueWhenVoluntary(Public,249,OutOfScope)
✅ IsTrueWhenVoluntary(Public,249,PresumedOutOfScope)

✅ GenderPayGap.Extensions.Tests.VirtualDateTimeTests

✅ VirtualDateTime_Now_Returns_DateTime_Now_Plus_Three_Days_And_One_Hour_When_Configured

✅ GenderPayGap.WebUI.Tests.CodeQualityTests.DoNotAllowHtmlDotRawTests

✅ DoNotAllowHtmlDotRawInCode

✅ GenderPayGap.WebUI.Tests.CodeQualityTests.DoNotUseRedirectWithReturnUrls

✅ DoNotAllowRedirectWithReturnUrlInCode

✅ GenderPayGap.WebUI.Tests.CodeQualityTests.EnsureAllPostRequestsRequireAntiForgeryTokenTests

✅ EnsureAllPostRequestsRequireAntiForgeryToken

✅ GenderPayGap.WebUI.Tests.Controllers.Account.AccountCreationTests

✅ GET_Clicking_Link_In_Verification_Email_Confirms_User
✅ POST_Verification_Email_Is_Sent_After_Creating_User_Account

✅ GenderPayGap.WebUI.Tests.Controllers.Account.ChangeEmailTests

✅ POST_Cannot_Update_Email_Address_For_Non_Active_User
✅ POST_Cannot_Update_Email_Address_To_Email_Associated_With_Another_Account
✅ POST_Providing_A_Valid_New_Email_Address_Results_In_A_Verification_Email_Being_Sent
✅ POST_Trying_To_Change_Email_Address_To_Current_Email_Address_Does_Not_Send_Verification_Email
✅ POST_Trying_To_Change_Email_Address_To_Other_Users_Email_Address_Does_Not_Send_Verification_Email
✅ POST_User_Can_Verify_Their_Email_Address_And_Confirm_Password_To_Change_Email_Address

✅ GenderPayGap.WebUI.Tests.Controllers.Account.ChangePasswordControllerTests

✅ POST_Audit_Log_Item_Is_Saved_When_Password_Is_Successfully_Updated
✅ POST_Email_Is_Sent_When_Password_Is_Successfully_Updated
✅ POST_Password_Is_Not_Updated_When_New_Password_Different_To_Confirmation_Password
✅ POST_Password_Is_Not_Updated_When_New_Password_Has_Fewer_Than_8_Characters
✅ POST_Password_Is_Not_Updated_When_New_Password_Missing_Lowercase_Letter
✅ POST_Password_Is_Not_Updated_When_New_Password_Missing_Uppercase_Letter
✅ POST_Password_Is_Not_Updated_When_Old_Password_Is_Incorrect
✅ POST_Password_Is_Updated_As_Expected
✅ POST_User_Is_Logged_Out_If_Failing_To_Change_The_Password_For_Five_Times

✅ GenderPayGap.WebUI.Tests.Controllers.Account.CloseAccountTests

✅ POST_Closing_Account_Removes_User_From_Organisations_And_Emails_GEO_For_Orphans
✅ POST_Closing_Account_Sets_The_Account_To_Retired
✅ POST_Entering_Wrong_Password_Does_Not_Retire_Account

✅ GenderPayGap.WebUI.Tests.Controllers.Administration.AdminDatabaseIntegrityChecksControllerTests

✅ AdminDatabaseIntegrityChecksController_PrivateEmployersReturnsWithoutResponsiblePerson_Success
✅ AdminDatabaseIntegrityChecksController_ReturnsWithFiguresWithMoreThanOneDecimalPlace_Success
✅ AdminDatabaseIntegrityChecksController_ReturnsWithInvalidBonusFigures_Success
✅ AdminDatabaseIntegrityChecksController_ReturnsWithInvalidBonusFiguresGivenNoWomenBonus_Success
✅ AdminDatabaseIntegrityChecksController_ReturnsWithInvalidBonusMeanMedianFigures_Success
✅ AdminDatabaseIntegrityChecksController_ReturnsWithInvalidCompanyLink_Success
✅ AdminDatabaseIntegrityChecksController_ReturnsWithInvalidMeanMedianFigures_Success
✅ AdminDatabaseIntegrityChecksController_ReturnsWithInvalidOptedOutOfReportingPayQuartersValue_Success
✅ AdminDatabaseIntegrityChecksController_ReturnsWithInvalidQuartersFigures_Success
✅ AdminDatabaseIntegrityChecksController_ReturnsWithInvalidTextFieldsValues_Success
✅ AdminDatabaseIntegrityChecksController_ReturnsWithMissingFigures_Success
✅ AdminDatabaseIntegrityChecksController_ReturnsWithQuartersFiguresSumDifferentThan100_Success

✅ GenderPayGap.WebUI.Tests.Controllers.Administration.AdminUnconfirmedPinsControllerTests

✅ AdminUnconfirmedPinsController_POST_When_PIN_has_expired_create_new_PIN_and_send_email
✅ AdminUnconfirmedPinsController_POST_When_PIN_is_still_valid_send_email

✅ GenderPayGap.WebUI.Tests.Controllers.CookieControllerTests

✅ CookieController_CookieConsent_Cookies_Accepted
✅ CookieController_CookieConsent_Cookies_Rejected
✅ CookieController_CookieConsent_Redirect_To_HomePage

✅ GenderPayGap.WebUI.Tests.Controllers.PasswordReset.PasswordResetControllerTests

✅ POST_Not_Providing_Reset_Code_In_URL_Gives_PageNotFoundException
✅ POST_Password_Reset_Email_Is_Not_Sent_When_One_Has_Been_Sent_Within_Last_10_Minutes
✅ POST_Password_Reset_Email_Is_Not_Sent_When_There_Is_No_User_With_Email_Address_Provided
✅ POST_Password_Reset_Email_Is_Sent_When_Valid_Email_Address_Is_Provided
✅ POST_Using_Expired_Reset_Code_Gives_PasswordResetCodeExpiredException
✅ POST_Valid_Reset_Code_In_URL_Allows_User_To_Change_Their_Password

✅ GenderPayGap.WebUI.Tests.Controllers.Scope.ScopeControllerTests

✅ POST_Existing_Scopes_Are_Retired_When_New_Scope_Is_Added

✅ GenderPayGap.WebUI.Tests.Search.SearchRepositoryTests

✅ LoadSearchDataIntoCache_DoesNotInclude_ActiveOrganisationsOutOfScope
✅ LoadSearchDataIntoCache_DoesNotInclude_DeletedOrganisations
✅ LoadSearchDataIntoCache_DoesNotInclude_RetiredOrganisationsInScope
✅ LoadSearchDataIntoCache_DoesNotInclude_RetiredOrganisationsOutOfScope
✅ LoadSearchDataIntoCache_DoesNotInclude_RetiredOrganisationsPresumedInScope
✅ LoadSearchDataIntoCache_DoesNotInclude_RetiredOrganisationsPreviouslyInScope
✅ LoadSearchDataIntoCache_DoesNotInclude_RetiredOrganisationsWithDraftReports
✅ LoadSearchDataIntoCache_DoesNotInclude_RetiredOrganisationsWithNoReports
✅ LoadSearchDataIntoCache_DoesNotIncludes_ActiveOrganisationsPreviouslyInScope
✅ LoadSearchDataIntoCache_Includes_ActiveOrganisationsInScope
✅ LoadSearchDataIntoCache_Includes_ActiveOrganisationsPresumedInScope
✅ LoadSearchDataIntoCache_Includes_ActiveOrganisationsWithDraftReports
✅ LoadSearchDataIntoCache_Includes_ActiveOrganisationsWithSubmittedReports
✅ LoadSearchDataIntoCache_Includes_RetiredOrganisationsWithSubmittedReports

✅ GenderPayGap.WebUI.Tests.Services.PinInThePostServiceTests

✅ FiveLineAddressIsReducedToFourLines
✅ FourLineAddressIsNotShortened
✅ LongLinesAreNotConcatenated
✅ ThreeLineAddressIsNotShortened
✅ UkCountryLineIsRemoved
✅ UnitedKingdomCountryLineIsRemoved

✅ Repositories.RegistrationRepository.RemoveRegistrationTests

✅ UserCanUnregisterAnotherUser
✅ UserCanUnregisterThemselves

✅ Repositories.UserRepository.CheckPasswordTests

✅ CorrectPasswordShouldResetLoginAttempts
✅ IncorrectPasswordShouldIncreaseLoginAttempts

✅ Repositories.UserRepository.FindByEmailTests

✅ FindsMatchingEmailUsingMultipleStatusFilters("[email protected]",New,Retired)
✅ FindsMatchingEmailUsingMultipleStatusFilters("[email protected]",New,Retired)
✅ FindsMatchingEmailUsingSingleStatusFilter("[email protected]",Active,Active)
✅ FindsMatchingEmailUsingSingleStatusFilter("[email protected]",Active)
✅ FindsMatchingEmailUsingSingleStatusFilter("[email protected]",New,New)
✅ FindsMatchingEmailUsingSingleStatusFilter("[email protected]",Retired,Retired)
✅ ReturnsNullWhenEmailDoesNotMatch("[email protected]")

✅ Repositories.UserRepository.RemoveRetiredUserRegistrationsTests

✅ UnregistersAllOrganisationsForUser

✅ Repositories.UserRepository.RetireUserTests

✅ SavesRetiredStatus()
✅ ThrowsErrorWhenArgumentIsNull(null,"Value cannot be null. (Parameter 'userToRetire')")
✅ ThrowsErrorWhenUserStatusIsNotActive("[email protected]",New)
✅ ThrowsErrorWhenUserStatusIsNotActive("[email protected]",Retired)
✅ ThrowsErrorWhenUserStatusIsNotActive("[email protected]",Unknown)

✅ Repositories.UserRepository.UpdateEmailTests

✅ SavesExpectedEmailFields("[email protected]","[email protected]")
✅ ThrowsErrorWhenArgumentIsNull(GenderPayGap.Database.User," ","Value cannot be null. (Parameter 'newEmailAddress')")
✅ ThrowsErrorWhenArgumentIsNull(GenderPayGap.Database.User,"","Value cannot be null. (Parameter 'newEmailAddress')")
✅ ThrowsErrorWhenArgumentIsNull(GenderPayGap.Database.User,null,"Value cannot be null. (Parameter 'newEmailAddress')")
✅ ThrowsErrorWhenArgumentIsNull(null,"[email protected]","Value cannot be null. (Parameter 'userToUpdate')")
✅ ThrowsErrorWhenUserStatusIsNotActive("[email protected]",New)
✅ ThrowsErrorWhenUserStatusIsNotActive("[email protected]",Retired)
✅ ThrowsErrorWhenUserStatusIsNotActive("[email protected]",Unknown)

✅ Repositories.UserRepository.UpdatePasswordTests

✅ SavesNewPasswordHash()
✅ ThrowsErrorWhenArgumentIsNull(GenderPayGap.Database.User," ","Value cannot be null. (Parameter 'newPassword')")
✅ ThrowsErrorWhenArgumentIsNull(GenderPayGap.Database.User,"","Value cannot be null. (Parameter 'newPassword')")
✅ ThrowsErrorWhenArgumentIsNull(GenderPayGap.Database.User,null,"Value cannot be null. (Parameter 'newPassword')")
✅ ThrowsErrorWhenArgumentIsNull(null,"newpassword123","Value cannot be null. (Parameter 'userToUpdate')")
✅ ThrowsErrorWhenUserStatusIsNotActive("[email protected]",New)
✅ ThrowsErrorWhenUserStatusIsNotActive("[email protected]",Retired)
✅ ThrowsErrorWhenUserStatusIsNotActive("[email protected]",Unknown)

✅ Tests.ConfigTests

✅ Config_DefaultDate_Returns_DateTime_Now_Plus_917_Days_When_Configured