Rozszerz mobilną obsługę urlopów i nieobecności
This commit is contained in:
@@ -38,7 +38,9 @@ class DriverLeaveApiContractTest {
|
||||
"requiredFields": [],
|
||||
"requiredDocuments": [],
|
||||
"fieldOptions": {},
|
||||
"description": "Urlop rozliczany według grafiku."
|
||||
"description": "Urlop rozliczany według grafiku.",
|
||||
"financialTreatmentLabel": "Płatny według danych przekazanych przez kadry i płace.",
|
||||
"affectsAnnualLeaveBalance": true
|
||||
}]
|
||||
}
|
||||
}
|
||||
@@ -51,6 +53,7 @@ class DriverLeaveApiContractTest {
|
||||
assertEquals("URLOP", response.data.availableTypes.single().value)
|
||||
assertEquals("ANNUAL", response.data.availableTypes.single().code)
|
||||
assertTrue("hours" in response.data.availableTypes.single().requestModes)
|
||||
assertTrue(response.data.availableTypes.single().affectsAnnualLeaveBalance)
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -64,11 +67,14 @@ class DriverLeaveApiContractTest {
|
||||
"type": "WOLNE",
|
||||
"ruleCode": "CHILD_CARE_14",
|
||||
"requestMode": "days",
|
||||
"requestedQuantity": 480,
|
||||
"requestedQuantity": 1,
|
||||
"quantityUnit": "days",
|
||||
"details": {
|
||||
"childrenBornCount": 1,
|
||||
"childBirthDate": "2020-05-12"
|
||||
},
|
||||
"financialTreatmentLabel": "Płatne według zasad ustawowych.",
|
||||
"affectsAnnualLeaveBalance": false,
|
||||
"status": "pending",
|
||||
"missingDocumentTypes": ["parent_declaration"]
|
||||
}
|
||||
@@ -78,6 +84,9 @@ class DriverLeaveApiContractTest {
|
||||
|
||||
assertEquals("1", request.details["childrenBornCount"])
|
||||
assertEquals("2020-05-12", request.details["childBirthDate"])
|
||||
assertEquals("days", request.quantityUnit)
|
||||
assertEquals(false, request.affectsAnnualLeaveBalance)
|
||||
assertEquals("Płatne według zasad ustawowych.", request.financialTreatmentLabel)
|
||||
assertEquals(listOf("parent_declaration"), request.missingDocumentTypes)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,6 +8,8 @@ import org.junit.Test
|
||||
import pl.firmatpp.kierowca.data.model.DriverLeaveCalendarDriverDto
|
||||
import pl.firmatpp.kierowca.data.model.DriverLeaveCalendarEntryDto
|
||||
import pl.firmatpp.kierowca.data.model.DriverLeavePoolDto
|
||||
import pl.firmatpp.kierowca.data.model.DriverLeaveRequestDto
|
||||
import pl.firmatpp.kierowca.data.model.DriverLeaveRuleSnapshotDto
|
||||
import pl.firmatpp.kierowca.data.model.DriverLeaveSummaryDto
|
||||
|
||||
class DriverLeaveRequestUiRulesTest {
|
||||
@@ -59,9 +61,71 @@ class DriverLeaveRequestUiRulesTest {
|
||||
assertEquals("Kierowca poprosił o anulowanie", DriverLeaveRequestUiRules.eventActionLabel("cancellation_requested"))
|
||||
assertEquals("Anulowanie zatwierdzone", DriverLeaveRequestUiRules.eventActionLabel("cancellation_approved"))
|
||||
assertEquals("Anulowanie odrzucone", DriverLeaveRequestUiRules.eventActionLabel("cancellation_rejected"))
|
||||
assertEquals("Przywrócono urlop wypoczynkowy", DriverLeaveRequestUiRules.eventActionLabel("annual_leave_interrupted"))
|
||||
assertEquals("Aktualizacja wniosku", DriverLeaveRequestUiRules.eventActionLabel("some_raw_action"))
|
||||
}
|
||||
|
||||
@Test
|
||||
fun formatsStatutoryDayLimitsAsDaysInsteadOfMinutes() {
|
||||
val dayBasedRequest = DriverLeaveRequestDto(
|
||||
id = "child-care",
|
||||
dateFrom = "2026-08-03",
|
||||
dateTo = "2026-08-03",
|
||||
type = "CHILD_CARE_14",
|
||||
requestMode = "days",
|
||||
requestedQuantity = 1,
|
||||
quantityUnit = "days",
|
||||
status = "pending",
|
||||
)
|
||||
val legacyDayBasedRequest = dayBasedRequest.copy(
|
||||
id = "force-majeure",
|
||||
type = "FORCE_MAJEURE",
|
||||
quantityUnit = null,
|
||||
rule = DriverLeaveRuleSnapshotDto(
|
||||
unit = "work_schedule",
|
||||
poolCode = "FORCE_MAJEURE",
|
||||
),
|
||||
)
|
||||
|
||||
assertEquals("days", DriverLeaveRequestUiRules.requestQuantityUnit(dayBasedRequest))
|
||||
assertEquals("1 dzień", DriverLeaveRequestUiRules.formatQuantity(1, "days"))
|
||||
assertEquals("days", DriverLeaveRequestUiRules.requestQuantityUnit(legacyDayBasedRequest))
|
||||
}
|
||||
|
||||
@Test
|
||||
fun exposesOtherStatutoryBalancesSeparatelyFromAnnualLeave() {
|
||||
val summary = DriverLeaveSummaryDto(
|
||||
pools = listOf(
|
||||
annualPool(year = 2026, available = 4_800, reserved = 0, used = 0, granted = 4_800),
|
||||
DriverLeavePoolDto(
|
||||
id = 31,
|
||||
poolCode = "CHILD_CARE_14",
|
||||
year = 2026,
|
||||
unit = "days",
|
||||
availableQuantity = 1,
|
||||
usedQuantity = 1,
|
||||
grantedQuantity = 2,
|
||||
status = "active",
|
||||
),
|
||||
DriverLeavePoolDto(
|
||||
id = 32,
|
||||
poolCode = "CARE_LEAVE",
|
||||
year = 2026,
|
||||
unit = "days",
|
||||
availableQuantity = 5,
|
||||
grantedQuantity = 5,
|
||||
status = "active",
|
||||
),
|
||||
),
|
||||
)
|
||||
|
||||
val pools = DriverLeaveRequestUiRules.otherEntitlementPools(summary)
|
||||
|
||||
assertEquals(listOf("CHILD_CARE_14", "CARE_LEAVE"), pools.map { it.poolCode })
|
||||
assertEquals("Urlop opiekuńczy", DriverLeaveRequestUiRules.poolLabel("CARE_LEAVE"))
|
||||
assertEquals("Rodzina i opieka", DriverLeaveRequestUiRules.categoryLabel("family"))
|
||||
}
|
||||
|
||||
@Test
|
||||
fun driverCanCancelPendingAndFutureApprovedRequests() {
|
||||
val tomorrow = LocalDate.now().plusDays(1).toString()
|
||||
|
||||
Reference in New Issue
Block a user