Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ data class ComplianceStatusDataModel(
val gasSafetyExpiryDate: LocalDate? = null,
val electricalSafetyExpiryDate: LocalDate? = null,
val epcExpiryDate: LocalDate? = null,
val tenancyStartedBeforeEpcExpiry: Boolean = false,
) {
fun shouldShowCert(status: ComplianceCertStatus): Boolean =
status == ComplianceCertStatus.EXPIRED ||
Expand Down Expand Up @@ -71,6 +72,7 @@ data class ComplianceStatusDataModel(
gasSafetyExpiryDate = propertyCompliance.gasSafetyCertExpiryDate,
electricalSafetyExpiryDate = propertyCompliance.electricalSafetyExpiryDate,
epcExpiryDate = propertyCompliance.epcExpiryDate,
tenancyStartedBeforeEpcExpiry = propertyCompliance.tenancyStartedBeforeEpcExpiry ?: false,
)

private val PropertyCompliance.gasSafetyStatus: ComplianceCertStatus
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -183,7 +183,9 @@ class ComplianceActionViewModelBuilderMay26Redesign {
}

private fun getInsetViewModel(dataModel: ComplianceStatusDataModel): ComplianceActionInsetViewModel? =
if (dataModel.epcStatusMay2026Redesign == ComplianceCertStatus.EXPIRED && dataModel.isOccupied) {
if (dataModel.epcStatusMay2026Redesign == ComplianceCertStatus.EXPIRED && dataModel.isOccupied &&
dataModel.tenancyStartedBeforeEpcExpiry
) {
if (dataModel.epcExpiryDate == null) throw PrsdbWebException("epcExpiryDate was null for an expired certificate")
ComplianceActionInsetViewModel(
expiryDate = dataModel.epcExpiryDate.format(DATE_FORMATTER),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -343,6 +343,7 @@ class ComplianceActionsPageTests : IntegrationTest() {
val card = complianceActionsPage.findRedesignedSummaryCard("EPC Expired Not In Date Occupied")
val expectedDate = LocalDate.now().minusDays(1).format(DATE_FORMATTER)
assertThat(card.summaryList.energyPerformanceRow).containsText("Expired on $expectedDate")
assertThat(card.epcInsetText).isHidden()
}

@Test
Expand All @@ -351,6 +352,7 @@ class ComplianceActionsPageTests : IntegrationTest() {
val card = complianceActionsPage.findRedesignedSummaryCard("EPC Expired Not In Date Unoccupied")
val expectedDate = LocalDate.now().minusDays(1).format(DATE_FORMATTER)
assertThat(card.summaryList.energyPerformanceRow).containsText("Expired on $expectedDate")
assertThat(card.epcInsetText).isHidden()
}

@Test
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -502,6 +502,7 @@ class ComplianceActionViewModelBuilderTests {
isOccupied: Boolean,
provideLaterDeadline: LocalDate? = null,
epcExpiryDate: LocalDate? = null,
tenancyStartedBeforeEpcExpiry: Boolean = false,
) = ComplianceStatusDataModel(
propertyOwnershipId = 1L,
singleLineAddress = "123 Test Street",
Expand All @@ -514,6 +515,7 @@ class ComplianceActionViewModelBuilderTests {
isOccupied = isOccupied,
provideLaterDeadline = provideLaterDeadline,
epcExpiryDate = epcExpiryDate,
tenancyStartedBeforeEpcExpiry = tenancyStartedBeforeEpcExpiry,
)

private fun getEpcRow(viewModel: SummaryCardViewModel) =
Expand Down Expand Up @@ -649,13 +651,29 @@ class ComplianceActionViewModelBuilderTests {
}

@Test
fun `occupied property with expired epc has inset view model with expiry date`() {
fun `occupied property with expired epc not in date at tenancy start does not has inset view model with expiry date`() {
val viewModel =
ComplianceActionViewModelBuilderMay26Redesign.fromDataModel(
buildDataModel(
epcStatus = ComplianceCertStatus.EXPIRED,
isOccupied = true,
epcExpiryDate = epcExpiryDate,
tenancyStartedBeforeEpcExpiry = false,
),
)

assertNull(viewModel.insetViewModel)
}

@Test
fun `occupied property with expired epc in date at tenancy start has inset view model with expiry date`() {
val viewModel =
ComplianceActionViewModelBuilderMay26Redesign.fromDataModel(
buildDataModel(
epcStatus = ComplianceCertStatus.EXPIRED,
isOccupied = true,
epcExpiryDate = epcExpiryDate,
tenancyStartedBeforeEpcExpiry = true,
),
)

Expand Down
Loading