Skip to content

Commit

Permalink
Added integration testing and fixed municipal assistance counting
Browse files Browse the repository at this point in the history
  • Loading branch information
tmkrepo committed Jan 31, 2025
1 parent 40c37ec commit 9d783a6
Show file tree
Hide file tree
Showing 2 changed files with 77 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -728,13 +728,13 @@ class TampereRegionalSurveyTest : FullApplicationTest(resetDbBeforeEach = true)
// Fabio (>3y) 23 + 21 + (22 - 4)
val expectedResults = Pair(17, 62)

val assistanceResults =
val careDayResults =
Pair(
results.ageStatistics.first().effectiveFamilyDaycareDaysUnder3Count,
results.ageStatistics.first().effectiveFamilyDaycareDaysOver3Count,
)

assertEquals(expectedResults, assistanceResults)
assertEquals(expectedResults, careDayResults)
}

@Test
Expand Down Expand Up @@ -905,6 +905,79 @@ class TampereRegionalSurveyTest : FullApplicationTest(resetDbBeforeEach = true)
assertEquals(2, results.yearlyStatistics.first().club5YearOldCount)
}

@Test
fun `Voucher assistance count is correct`() {
val octFirst = LocalDate.of(2024, 10, 1)
val testUnitData = initTestUnitData(octFirst)
val defaultPlacementDuration =
FiniteDateRange(octFirst, octFirst.plusMonths(3).minusDays(1))

val childTestData =
initTestPlacementData(
start = octFirst,
daycareId = testUnitData[3],
defaultPlacementDuration = defaultPlacementDuration,
baseAge = 5,
)

db.transaction { tx ->
// add an assistance factor for Aapo that should show up
tx.insert(
DevAssistanceFactor(
childId = childTestData[0].first.id,
validDuring =
FiniteDateRange(
defaultPlacementDuration.start,
defaultPlacementDuration.end,
),
capacityFactor = 5.50,
)
)

// add a test child with an assistance factor that should not show up
val testChildKaarina =
DevPerson(
dateOfBirth = startDate.minusYears(2),
firstName = "Kaarina",
lastName = "Kunnallinen",
language = "fi",
)

tx.insert(testChildKaarina, DevPersonType.CHILD)
tx.insert(
DevPlacement(
childId = testChildKaarina.id,
type = PlacementType.DAYCARE,
unitId = testUnitData[0],
startDate = defaultPlacementDuration.start,
endDate = defaultPlacementDuration.end,
)
)
tx.insert(
DevAssistanceFactor(
childId = testChildKaarina.id,
validDuring =
FiniteDateRange(
defaultPlacementDuration.start,
defaultPlacementDuration.end,
),
capacityFactor = 5.50,
)
)
}

val results =
tampereRegionalSurvey.getTampereRegionalSurveyYearlyStatistics(
dbInstance(),
adminLoginUser,
mockClock,
year = startDate.year,
)

// Bertil (action 40) + Cecil (action 10) + Aapo (factor)
assertEquals(3, results.yearlyStatistics.first().voucherAssistanceCount)
}

private fun initTestUnitData(monday: LocalDate): List<DaycareId> {
return db.transaction { tx ->
val areaAId = tx.insert(DevCareArea(name = "Area A", shortName = "Area A"))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -791,8 +791,8 @@ WHERE ${predicate(placementPred.forTable("pl"))}
SELECT count(pl.child_id) as placement_count
FROM placement pl
JOIN daycare d ON pl.unit_id = d.id
JOIN daycare_assistance da
ON da.child_id = pl.child_id
JOIN daycare_assistance da
ON da.child_id = pl.child_id
AND da.valid_during @> ${bind(statDay)}
WHERE ${predicate(daycarePred.forTable("d"))}
AND ${predicate(assistancePred.forTable("da"))}
Expand Down

0 comments on commit 9d783a6

Please sign in to comment.