Skip to content

Commit ec958e7

Browse files
committed
Fix integration tests
1 parent 7486e3c commit ec958e7

13 files changed

+200
-152
lines changed

service/build.gradle.kts

+1
Original file line numberDiff line numberDiff line change
@@ -153,6 +153,7 @@ dependencies {
153153
testImplementation("org.junit.jupiter:junit-jupiter")
154154

155155
testImplementation("io.kotest:kotest-property")
156+
testImplementation("io.mockk:mockk")
156157
testImplementation("net.bytebuddy:byte-buddy")
157158
testImplementation("net.logstash.logback:logstash-logback-encoder")
158159
testImplementation("org.jetbrains:annotations")

service/evaka-bom/build.gradle.kts

+1
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ dependencies {
2323
api("com.zaxxer:HikariCP:6.1.0")
2424
api("io.github.microutils:kotlin-logging-jvm:3.0.5")
2525
api("io.kotest:kotest-property:5.9.1")
26+
api("io.mockk:mockk:1.13.13")
2627
api("jakarta.annotation:jakarta.annotation-api:3.0.0")
2728
api("jakarta.jws:jakarta.jws-api:3.0.0")
2829
api("jakarta.xml.ws:jakarta.xml.ws-api:4.0.0")
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
// SPDX-FileCopyrightText: 2017-2024 City of Espoo
2+
//
3+
// SPDX-License-Identifier: LGPL-2.1-or-later
4+
5+
package fi.espoo.evaka
6+
7+
import fi.espoo.evaka.shared.domain.getHolidays
8+
import io.mockk.every
9+
import io.mockk.mockkStatic
10+
import io.mockk.unmockkAll
11+
import java.time.LocalDate
12+
13+
@Deprecated("Instead of mocking, use real holidays like Jan 6th, May 1st or Dec 6th")
14+
fun <T> withHolidays(holidays: Set<LocalDate>, fn: () -> T): T {
15+
mockkStatic(::getHolidays)
16+
every { getHolidays(any()) } returns holidays
17+
return try {
18+
fn()
19+
} finally {
20+
unmockkAll()
21+
}
22+
}

service/src/integrationTest/kotlin/fi/espoo/evaka/calendarevent/CalendarEventServiceIntegrationTest.kt

+1-3
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,6 @@ import fi.espoo.evaka.shared.dev.DevDaycareGroup
4747
import fi.espoo.evaka.shared.dev.DevDaycareGroupPlacement
4848
import fi.espoo.evaka.shared.dev.DevEmployee
4949
import fi.espoo.evaka.shared.dev.DevFosterParent
50-
import fi.espoo.evaka.shared.dev.DevHoliday
5150
import fi.espoo.evaka.shared.dev.DevPerson
5251
import fi.espoo.evaka.shared.dev.DevPersonType
5352
import fi.espoo.evaka.shared.dev.DevPlacement
@@ -102,7 +101,7 @@ class CalendarEventServiceIntegrationTest : FullApplicationTest(resetDbBeforeEac
102101
private val guardian = AuthenticatedUser.Citizen(testAdult_1.id, CitizenAuthLevel.STRONG)
103102

104103
// a monday
105-
private val today = LocalDate.of(2021, 6, 5)
104+
private val today = LocalDate.of(2022, 1, 3)
106105
private val now = HelsinkiDateTime.of(today, LocalTime.of(12, 0, 0))
107106
private val clock = MockEvakaClock(now)
108107

@@ -135,7 +134,6 @@ class CalendarEventServiceIntegrationTest : FullApplicationTest(resetDbBeforeEac
135134
tx.insert(group1Data)
136135
tx.insert(DevDaycareGroup(id = groupId2, daycareId = testDaycare.id))
137136
tx.insert(DevDaycareGroup(id = unit2GroupId, daycareId = testDaycare2.id))
138-
tx.insert(DevHoliday(today.plusDays(3)))
139137

140138
placementId =
141139
tx.insert(

service/src/integrationTest/kotlin/fi/espoo/evaka/children/ChildControllerCitizenTest.kt

+6-7
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@ import fi.espoo.evaka.shared.auth.CitizenAuthLevel
1616
import fi.espoo.evaka.shared.dev.DevAbsence
1717
import fi.espoo.evaka.shared.dev.DevCareArea
1818
import fi.espoo.evaka.shared.dev.DevDaycare
19-
import fi.espoo.evaka.shared.dev.DevHoliday
2019
import fi.espoo.evaka.shared.dev.DevPerson
2120
import fi.espoo.evaka.shared.dev.DevPersonType
2221
import fi.espoo.evaka.shared.dev.DevPlacement
@@ -237,26 +236,26 @@ class ChildControllerCitizenTest : FullApplicationTest(resetDbBeforeEach = true)
237236
DevPlacement(
238237
childId = childId,
239238
unitId = unitId,
240-
startDate = LocalDate.of(2023, 9, 1),
241-
endDate = LocalDate.of(2023, 9, 30),
239+
startDate = LocalDate.of(2023, 5, 1),
240+
endDate = LocalDate.of(2023, 5, 31),
242241
)
243242
)
244-
tx.insert(DevHoliday(date = LocalDate.of(2023, 9, 11), description = "holiday"))
245243
Pair(guardianId, childId)
246244
}
247245

246+
// 05/2023: 23 weekdays minus 2 holidays
248247
assertThat(
249248
childControllerCitizen.getChildAttendanceSummary(
250249
dbInstance(),
251250
AuthenticatedUser.Citizen(guardianId, CitizenAuthLevel.WEAK),
252251
MockEvakaClock(
253-
HelsinkiDateTime.of(LocalDate.of(2023, 9, 11), LocalTime.of(8, 23))
252+
HelsinkiDateTime.of(LocalDate.of(2023, 5, 11), LocalTime.of(8, 23))
254253
),
255254
childId,
256-
YearMonth.of(2023, 9),
255+
YearMonth.of(2023, 5),
257256
)
258257
)
259-
.isEqualTo(AttendanceSummary(attendanceDays = 20))
258+
.isEqualTo(AttendanceSummary(attendanceDays = 21))
260259
}
261260

262261
@Test

service/src/integrationTest/kotlin/fi/espoo/evaka/reports/HolidayPeriodAttendanceReportTest.kt

+46-39
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,6 @@ import fi.espoo.evaka.shared.dev.DevBackupCare
3232
import fi.espoo.evaka.shared.dev.DevCareArea
3333
import fi.espoo.evaka.shared.dev.DevDaycare
3434
import fi.espoo.evaka.shared.dev.DevEmployee
35-
import fi.espoo.evaka.shared.dev.DevHoliday
3635
import fi.espoo.evaka.shared.dev.DevHolidayPeriod
3736
import fi.espoo.evaka.shared.dev.DevPerson
3837
import fi.espoo.evaka.shared.dev.DevPersonType
@@ -47,6 +46,7 @@ import fi.espoo.evaka.shared.domain.MockEvakaClock
4746
import fi.espoo.evaka.shared.domain.TimeRange
4847
import fi.espoo.evaka.shared.security.PilotFeature
4948
import fi.espoo.evaka.snDaycareFullDay35
49+
import fi.espoo.evaka.withHolidays
5050
import java.time.DayOfWeek
5151
import java.time.LocalDate
5252
import java.time.LocalTime
@@ -168,27 +168,33 @@ class HolidayPeriodAttendanceReportTest : FullApplicationTest(resetDbBeforeEach
168168
initTestPlacementData(holidayPeriod.period.start, testUnitData[0])
169169

170170
val reportResultsA =
171-
holidayPeriodAttendanceReport.getHolidayPeriodAttendanceReport(
172-
dbInstance(),
173-
mockClock,
174-
adminLoginUser,
175-
testUnitData[0],
176-
holidayPeriod.id,
177-
)
171+
@Suppress("DEPRECATION")
172+
withHolidays(emptySet()) {
173+
holidayPeriodAttendanceReport.getHolidayPeriodAttendanceReport(
174+
dbInstance(),
175+
mockClock,
176+
adminLoginUser,
177+
testUnitData[0],
178+
holidayPeriod.id,
179+
)
180+
}
178181
val periodDays = holidayPeriod.period.dates().toList()
179182
val periodDaysInA = periodDays.filter { it.dayOfWeek < DayOfWeek.SATURDAY }
180183
val resultDaysA = reportResultsA.map { it.date }
181184

182185
assertThat(resultDaysA).containsAll(periodDaysInA)
183186

184187
val reportResultsB =
185-
holidayPeriodAttendanceReport.getHolidayPeriodAttendanceReport(
186-
dbInstance(),
187-
mockClock,
188-
adminLoginUser,
189-
testUnitData[1],
190-
holidayPeriod.id,
191-
)
188+
@Suppress("DEPRECATION")
189+
withHolidays(emptySet()) {
190+
holidayPeriodAttendanceReport.getHolidayPeriodAttendanceReport(
191+
dbInstance(),
192+
mockClock,
193+
adminLoginUser,
194+
testUnitData[1],
195+
holidayPeriod.id,
196+
)
197+
}
192198
val resultDaysB = reportResultsB.map { it.date }
193199

194200
assertThat(resultDaysB).containsAll(periodDays)
@@ -200,15 +206,18 @@ class HolidayPeriodAttendanceReportTest : FullApplicationTest(resetDbBeforeEach
200206
val testData = initTestPlacementData(holidayPeriod.period.start, testUnitData[0])
201207

202208
val reportResultsByDate =
203-
holidayPeriodAttendanceReport
204-
.getHolidayPeriodAttendanceReport(
205-
dbInstance(),
206-
mockClock,
207-
adminLoginUser,
208-
testUnitData[0],
209-
holidayPeriod.id,
210-
)
211-
.associateBy { it.date }
209+
@Suppress("DEPRECATION")
210+
withHolidays(emptySet()) {
211+
holidayPeriodAttendanceReport
212+
.getHolidayPeriodAttendanceReport(
213+
dbInstance(),
214+
mockClock,
215+
adminLoginUser,
216+
testUnitData[0],
217+
holidayPeriod.id,
218+
)
219+
.associateBy { it.date }
220+
}
212221

213222
val expectedMonday =
214223
HolidayPeriodAttendanceReportRow(
@@ -299,7 +308,7 @@ class HolidayPeriodAttendanceReportTest : FullApplicationTest(resetDbBeforeEach
299308
fun `Report returns correct attendance data for shift care unit`() {
300309
val monday = holidayPeriod.period.start
301310
val testUnitData = initTestUnitData(monday)
302-
val testData = initTestPlacementData(monday, testUnitData[1], listOf(monday.plusDays(2)))
311+
val testData = initTestPlacementData(monday, testUnitData[1])
303312
addTestServiceNeed(testData[0].second[0], ShiftCareType.FULL)
304313

305314
val reportResultsByDate =
@@ -456,15 +465,18 @@ class HolidayPeriodAttendanceReportTest : FullApplicationTest(resetDbBeforeEach
456465
)
457466

458467
val reportResultsByDate =
459-
holidayPeriodAttendanceReport
460-
.getHolidayPeriodAttendanceReport(
461-
dbInstance(),
462-
mockClock,
463-
adminLoginUser,
464-
testUnitData[0],
465-
holidayPeriod.id,
466-
)
467-
.associateBy { it.date }
468+
@Suppress("DEPRECATION")
469+
withHolidays(emptySet()) {
470+
holidayPeriodAttendanceReport
471+
.getHolidayPeriodAttendanceReport(
472+
dbInstance(),
473+
mockClock,
474+
adminLoginUser,
475+
testUnitData[0],
476+
holidayPeriod.id,
477+
)
478+
.associateBy { it.date }
479+
}
468480

469481
val expectedMonday =
470482
HolidayPeriodAttendanceReportRow(
@@ -604,7 +616,6 @@ class HolidayPeriodAttendanceReportTest : FullApplicationTest(resetDbBeforeEach
604616
private fun initTestPlacementData(
605617
monday: LocalDate,
606618
daycareId: DaycareId,
607-
holidays: List<LocalDate> = emptyList(),
608619
): List<Pair<DevPerson, List<DevPlacement>>> {
609620
val tuesday = monday.plusDays(1)
610621
val wednesday = monday.plusDays(2)
@@ -620,10 +631,6 @@ class HolidayPeriodAttendanceReportTest : FullApplicationTest(resetDbBeforeEach
620631

621632
tx.insertDaycareAclRow(daycareId, unitSupervisorA.id, UserRole.UNIT_SUPERVISOR)
622633

623-
holidays.forEachIndexed { index, date ->
624-
tx.insert(DevHoliday(date, "Test holiday ${index + 1}"))
625-
}
626-
627634
val testChildAapo =
628635
DevPerson(
629636
id = ChildId(UUID.randomUUID()),

0 commit comments

Comments
 (0)