Open bugs — still reproduce 14
Logged in ISSUES.md. Each assertion states the correct behaviour; the error shows what the platform did instead.
known bugs: data integrity @pr @known-bug › ISS-422 · punch times are stored as real UTC
ISS-422: the server stores IST wall time with a Z suffix (5h30 ahead)
ISS-422 · tests/contract/data-integrity.spec.ts:15
Error: server "now" 2026-10-14T21:28:32Z vs real UTC 2026-10-14T15:58:32.538Z
expect(received).toBeLessThan(expected)
Expected: < 10
Received: 329.99103333333335
known bugs: data integrity @pr @known-bug › ISS-440 · nobody is credited leave types restricted to another gender, or more than the yearly entitlement
ISS-440: male employees hold Maternity Leave; Wedding/Floating/Bereavement credited twice
ISS-440 · tests/contract/data-integrity.spec.ts:22
Error: expect(received).toEqual(expected) // deep equality
- Expected - 1
+ Received + 6
- Array []
+ Array [
+ "Aarav Krishnamurthy.: maternity 182",
+ "Kavya Raghunathan: paternity 5",
+ "Test Interviewer One: paternity 5",
+ "Test Interviewer Two: maternity 182",
+ ]
known bugs: data integrity @pr @known-bug › ISS-446 · no PTO is credited before the policy’s waiting period ends
ISS-446: a 1 Oct joiner was credited October PTO on 9 Oct, inside the waiting period (waitingDays 30, now startNextMonth)
ISS-446 · tests/contract/data-integrity.spec.ts:45
Error: expect(received).toEqual(expected) // deep equality
- Expected - 1
+ Received + 3
- Array []
+ Array [
+ "2026-10-09 1.25 policy_entitlement:2026-10",
+ ]
known bugs: data integrity @pr @known-bug › ISS-447 · the Service Leave policy form shows its rule without a validation error
ISS-447: blank accrual and "Entitlement can't be negative" on open
ISS-447 · tests/contract/data-integrity.spec.ts:73
Error: expect(locator).toHaveCount(expected) failed
Locator: getByRole('dialog').filter({ hasText: /Edit policy/ }).last().getByText(/Entitlement can't be negative/)
Expected: 0
Received: 1
Timeout: 30000ms
Call log:
- Expect "toHaveCount" getByRole('dialog').filter({ hasText: /Edit policy/ }).last().getByText(/Entitlement can't be negative/) with timeout 30000ms
- waiting for getByRole('dialog').filter({ hasText: /Edit policy/ }).last().getByText(/Entitlement can't be negative/)
62 × locator resolved to 1 element
- unexpected value "1"known gaps: permissions @pr @known-bug › ISS-444 · mgr can save the roster it is shown (rows 36–37)
ISS-444: reporting managers, department heads and HR SPOC are refused (403) on roster saves
ISS-444 · tests/contract/permissions.spec.ts:41
Error: expect(received).toBe(expected) // Object.is equality
Expected: false
Received: true
known gaps: permissions @pr @known-bug › ISS-444 · dh can save the roster it is shown (rows 36–37)
ISS-444: reporting managers, department heads and HR SPOC are refused (403) on roster saves
ISS-444 · tests/contract/permissions.spec.ts:41
Error: expect(received).toBe(expected) // Object.is equality
Expected: false
Received: true
known gaps: permissions @pr @known-bug › ISS-444 · spoc can save the roster it is shown (rows 36–37)
ISS-444: reporting managers, department heads and HR SPOC are refused (403) on roster saves
ISS-444 · tests/contract/permissions.spec.ts:41
Error: expect(received).toBe(expected) // Object.is equality
Expected: false
Received: true
leave policies @pr › PTO: 1.25 days a month after 30 days, carry-forward 30, LOP fallback (rows 48–51, 60)
ISS-450: since 14 Oct the PTO policy has startNextMonth instead of the 30-day waiting period
ISS-450 · tests/contract/policies.spec.ts:28
Error: expect(received).toMatchObject(expected)
- Expected - 1
+ Received + 0
Object {
"frequency": "monthly",
"rate": 1.25,
- "waitingDays": 30,
}known bugs: workflows @pr @known-bug › ISS-452 · the long-leave threshold used by leave approval is a visible parameter
ISS-452: routing works since 14 Oct, but param lv.long_leave_days is still not defined, so the 3-day threshold is a hidden default no one can see or change
ISS-452 · tests/contract/workflows.spec.ts:105
Error: expect(received).toContain(expected) // indexOf
Expected value: "lv.long_leave_days"
Received array: ["ext.ceo_pack_sla", "ext.clearance_trigger", "ext.counteroffer_issue_sla", "ext.counteroffer_response_sla", "ext.damage_assessment_sla", "ext.escalate_to_hr_sla", "ext.exit_docs_sla", "ext.ffs_clear_sla", "ext.ffs_gratuity_target", "ext.ffs_l1", …]
known bugs: workflows @pr @known-bug › ISS-441 · earning comp-off does not require an existing comp-off balance
ISS-441: Comp-Off Request rejects when employee.balance <= 0 and debits the ledger on approval
ISS-441 · tests/contract/workflows.spec.ts:112
Error: expect(received).toBe(expected) // Object.is equality
Expected: false
Received: true
regularization @journey › missed punch: manager approves and the day is rewritten (rows 4–5)
ISS-455/456: worked hours are not recalculated after a late-arrival correction (1.07 h span reported as 0.57 h)
ISS-455 · ISS-456 · tests/journeys/al01-al02-attendance.spec.ts:101
Error: worked 0.57 h vs span 1.07 h (2026-10-13 09:45:00+00 → 2026-10-13 10:49:04+00)
expect(received).toBeLessThan(expected)
Expected: < 0.1
Received: 0.49777777777777776
known bugs: leave @journey @known-bug › ISS-453 · a pending Leave Without Pay request can be withdrawn (row 18)
ISS-453: withdrawing a pending LWP request is refused with 403 PROTECTED_RUN ("forced by the platform tier")
ISS-453 · tests/journeys/al04-al05-leave.spec.ts:181
Error: timed out waiting for request withdrawn
known bugs: leave @journey @known-bug › ISS-437/439 · approved leave with confirmed unpaid days is posted and stays approved (row 15)
ISS-437/439: post_ledger fails with "Insufficient balance" and the request ends rejected
ISS-437 · ISS-439 · tests/journeys/al04-al05-leave.spec.ts:201
Error: timed out waiting for request decided
known bugs: comp-off @journey @known-bug › ISS-441 · a request to earn comp-off for a weekend reaches the manager (rows 29–30)
ISS-441: Request comp-off is rejected for having no comp-off balance
ISS-441 · tests/journeys/al08-al09-compoff-balances.spec.ts:35
Error: timed out waiting for manager task
Gaps against the workflow sheet 7
The Attendance & Leave sheet asks for this; the platform does not do it (GAPS.md).
known gaps: permissions @pr @known-bug › GAPS row 33 · HR SPOC can adjust special leave balances
HR SPOC has no balance-adjust right on this tenant (GAPS.md row 33)
GAPS.md row 33 · tests/contract/permissions.spec.ts:46
Error: expect(received).toBe(expected) // Object.is equality
Expected: false
Received: true
known gaps: permissions @pr @known-bug › GAPS row 34 · HR SPOC can change leave configuration
HR SPOC is view-only on leave policies on this tenant (GAPS.md row 34)
GAPS.md row 34 · tests/contract/permissions.spec.ts:50
Error: expect(received).toBe(expected) // Object.is equality
Expected: false
Received: true
known gaps: configuration @pr @known-bug › GAPS row 1 · days under 8 hours count as half days
Half-day cut-off is 4 hours on this tenant; the sheet asks for 8 (GAPS.md row 1)
tests/contract/policies.spec.ts:76
Error: expect(received).toBe(expected) // Object.is equality
Expected: 8
Received: 4
known gaps: work from home @journey @known-bug › GAPS row 22 · back-dated work from home is refused
Back-dated WFH is accepted and sent to the manager (GAPS.md row 22)
GAPS.md row 22 · tests/journeys/al06-wfh.spec.ts:79
Error: expect(received).toBeGreaterThanOrEqual(expected)
Expected: >= 400
Received: 201
known gaps: work from home @journey @known-bug › GAPS row 25 · long WFH gets an HR SPOC review
No HR SPOC step in the WFH workflow (GAPS.md row 25)
GAPS.md row 25 · tests/journeys/al06-wfh.spec.ts:87
Error: timed out waiting for HR SPOC task
known gaps: shifts @journey @known-bug › GAPS row 43 · the teammate is asked to accept a swap first
No peer acceptance: the swap goes straight to the manager (GAPS.md row 43)
GAPS.md row 43 · tests/journeys/al10-al11-shifts.spec.ts:87
Error: timed out waiting for teammate task
known gaps: shifts @journey @known-bug › GAPS row 42 · a swap between identical shifts is refused
Eligibility does not check identical shifts (GAPS.md row 42)
GAPS.md row 42 · tests/journeys/al10-al11-shifts.spec.ts:100
Error: expect(received).toBeGreaterThanOrEqual(expected)
Expected: >= 400
Received: 201