[ { "id": "T001", "description": "Unit: ISlaBackend interface has all required method signatures", "implemented": true, "featureIds": ["F001"] }, { "id": "T002", "description": "Unit: SlaBackendFactory returns PgBossSlaBackend when isEnterprise is false", "implemented": true, "featureIds": ["F002"] }, { "id": "T003", "description": "Unit: SlaBackendFactory returns TemporalSlaBackend when isEnterprise is true and Temporal available", "implemented": true, "featureIds": ["F002"] }, { "id": "T004", "description": "Unit: SlaBackendFactory falls back to PgBossSlaBackend when Temporal unavailable in EE", "implemented": true, "featureIds": ["F002", "F033", "F034"] }, { "id": "T005", "description": "Unit: PgBossSlaBackend.startSlaTracking() returns without error", "implemented": true, "featureIds": ["F003", "F047"] }, { "id": "T006", "description": "Unit: PgBossSlaBackend.pauseSla() calls slaPauseService.pauseSla()", "implemented": true, "featureIds": ["F003"] }, { "id": "T007", "description": "Unit: PgBossSlaBackend.resumeSla() calls slaPauseService.resumeSla()", "implemented": true, "featureIds": ["F003"] }, { "id": "T008", "description": "Unit: PgBossSlaBackend.completeSla('response') calls slaService.recordFirstResponse()", "implemented": true, "featureIds": ["F003"] }, { "id": "T009", "description": "Unit: PgBossSlaBackend.completeSla('resolution') calls slaService.recordResolution()", "implemented": true, "featureIds": ["F003"] }, { "id": "T010", "description": "Unit: PgBossSlaBackend.cancelSla() returns without error", "implemented": true, "featureIds": ["F003", "F048"] }, { "id": "T011", "description": "Unit: PgBossSlaBackend.getSlaStatus() delegates to slaService.getSlaStatus()", "implemented": true, "featureIds": ["F003", "F049"] }, { "id": "T012", "description": "Unit: SlaTicketWorkflow initializes with correct input parameters", "implemented": true, "featureIds": ["F004", "F005"] }, { "id": "T013", "description": "Unit: SlaTicketWorkflow initial state has currentPhase='response' and empty notifiedThresholds", "implemented": true, "featureIds": ["F006"] }, { "id": "T014", "description": "Unit: SlaTicketWorkflow calculates correct sleep duration for 50% threshold", "implemented": true, "featureIds": ["F007"] }, { "id": "T015", "description": "Unit: SlaTicketWorkflow calculates correct sleep duration for 75% threshold", "implemented": true, "featureIds": ["F007"] }, { "id": "T016", "description": "Unit: SlaTicketWorkflow calculates correct sleep duration for 90% threshold", "implemented": true, "featureIds": ["F007"] }, { "id": "T017", "description": "Unit: SlaTicketWorkflow calculates correct sleep duration for 100% threshold", "implemented": true, "featureIds": ["F007"] }, { "id": "T018", "description": "Unit: SlaTicketWorkflow pause signal sets pauseStartedAt timestamp", "implemented": true, "featureIds": ["F008"] }, { "id": "T019", "description": "Unit: SlaTicketWorkflow resume signal clears pauseStartedAt and increments totalPauseMinutes", "implemented": true, "featureIds": ["F009"] }, { "id": "T020", "description": "Unit: SlaTicketWorkflow resume signal recalculates next wake time with updated pause minutes", "implemented": true, "featureIds": ["F009"] }, { "id": "T021", "description": "Unit: SlaTicketWorkflow completeResponse signal transitions to resolution phase", "implemented": true, "featureIds": ["F010"] }, { "id": "T022", "description": "Unit: SlaTicketWorkflow completeResolution signal terminates workflow with success", "implemented": true, "featureIds": ["F011"] }, { "id": "T023", "description": "Unit: SlaTicketWorkflow cancel signal terminates workflow without breach", "implemented": true, "featureIds": ["F012"] }, { "id": "T024", "description": "Unit: SlaTicketWorkflow getState query returns current status and remaining time", "implemented": true, "featureIds": ["F013"] }, { "id": "T025", "description": "Unit: calculateNextWakeTime returns correct wall-clock time for 8am-5pm Mon-Fri schedule", "implemented": true, "featureIds": ["F014"] }, { "id": "T026", "description": "Unit: calculateNextWakeTime advances to Monday when start is Friday 4pm and target is 2 hours", "implemented": true, "featureIds": ["F014", "F015"] }, { "id": "T027", "description": "Unit: calculateNextWakeTime skips holidays in calculation", "implemented": true, "featureIds": ["F014"] }, { "id": "T028", "description": "Unit: calculateNextWakeTime handles recurring holidays correctly", "implemented": true, "featureIds": ["F014"] }, { "id": "T029", "description": "Unit: calculateNextWakeTime subtracts pause minutes from elapsed time", "implemented": true, "featureIds": ["F016"] }, { "id": "T030", "description": "Unit: calculateNextWakeTime returns immediate time for 24x7 schedule", "implemented": true, "featureIds": ["F014", "F050"] }, { "id": "T031", "description": "Unit: sendSlaNotification activity calls slaNotificationService.sendSlaNotification()", "implemented": true, "featureIds": ["F017"] }, { "id": "T032", "description": "Unit: checkAndEscalate activity calls escalationService.checkEscalationNeeded()", "implemented": true, "featureIds": ["F018"] }, { "id": "T033", "description": "Unit: checkAndEscalate activity calls escalationService.escalateTicket() when threshold exceeded", "implemented": true, "featureIds": ["F018"] }, { "id": "T034", "description": "Unit: updateSlaStatus activity updates ticket sla_response_met field", "implemented": true, "featureIds": ["F019"] }, { "id": "T035", "description": "Unit: updateSlaStatus activity updates ticket sla_resolution_met field", "implemented": true, "featureIds": ["F019"] }, { "id": "T036", "description": "Unit: recordSlaAuditLog activity inserts entry with correct event type", "implemented": true, "featureIds": ["F020"] }, { "id": "T037", "description": "Unit: TemporalSlaBackend.startSlaTracking() starts workflow with correct ID", "implemented": true, "featureIds": ["F021", "F022"] }, { "id": "T038", "description": "Unit: TemporalSlaBackend workflow ID follows format sla-ticket-{tenantId}-{ticketId}", "implemented": true, "featureIds": ["F022"] }, { "id": "T039", "description": "Unit: TemporalSlaBackend.pauseSla() sends pause signal to workflow", "implemented": true, "featureIds": ["F023"] }, { "id": "T040", "description": "Unit: TemporalSlaBackend.resumeSla() sends resume signal to workflow", "implemented": true, "featureIds": ["F024"] }, { "id": "T041", "description": "Unit: TemporalSlaBackend.completeSla('response') sends completeResponse signal", "implemented": true, "featureIds": ["F025"] }, { "id": "T042", "description": "Unit: TemporalSlaBackend.completeSla('resolution') sends completeResolution signal", "implemented": true, "featureIds": ["F025"] }, { "id": "T043", "description": "Unit: TemporalSlaBackend.cancelSla() sends cancel signal to workflow", "implemented": true, "featureIds": ["F026"] }, { "id": "T044", "description": "Unit: TemporalSlaBackend.getSlaStatus() queries workflow state", "implemented": true, "featureIds": ["F027"] }, { "id": "T045", "description": "Unit: slaService.startSlaForTicket() calls backend.startSlaTracking()", "implemented": true, "featureIds": ["F028"] }, { "id": "T046", "description": "Unit: slaPauseService.pauseSla() calls backend.pauseSla()", "implemented": true, "featureIds": ["F029"] }, { "id": "T047", "description": "Unit: slaPauseService.resumeSla() calls backend.resumeSla()", "implemented": true, "featureIds": ["F030"] }, { "id": "T048", "description": "Unit: slaService.recordFirstResponse() calls backend.completeSla('response')", "implemented": true, "featureIds": ["F031"] }, { "id": "T049", "description": "Unit: slaService.recordResolution() calls backend.completeSla('resolution')", "implemented": true, "featureIds": ["F032"] }, { "id": "T050", "description": "Unit: TemporalSlaBackend.startSlaTracking() handles duplicate workflow ID without error", "implemented": true, "featureIds": ["F035"] }, { "id": "T051", "description": "Unit: CE stub TemporalSlaBackend throws 'only available in Enterprise Edition'", "implemented": true, "featureIds": ["F046"] }, { "id": "T052", "description": "Integration: New ticket in EE starts Temporal workflow", "implemented": true, "featureIds": ["F004", "F021", "F028"] }, { "id": "T053", "description": "Integration: Workflow sends notification at 50% threshold", "implemented": true, "featureIds": ["F038"] }, { "id": "T054", "description": "Integration: Workflow sends notification at 75% threshold", "implemented": true, "featureIds": ["F039"] }, { "id": "T055", "description": "Integration: Workflow sends notification at 90% threshold", "implemented": true, "featureIds": ["F040"] }, { "id": "T056", "description": "Integration: Workflow marks breach at 100% threshold", "implemented": true, "featureIds": ["F041"] }, { "id": "T057", "description": "Integration: Workflow checks escalation at each threshold", "implemented": true, "featureIds": ["F042"] }, { "id": "T058", "description": "Integration: Pausing ticket pauses workflow timer", "implemented": true, "featureIds": ["F008", "F023", "F029"] }, { "id": "T059", "description": "Integration: Resuming ticket resumes workflow timer with adjusted time", "implemented": true, "featureIds": ["F009", "F024", "F030"] }, { "id": "T060", "description": "Integration: First response transitions workflow to resolution phase", "implemented": true, "featureIds": ["F010", "F031"] }, { "id": "T061", "description": "Integration: Resolution completes workflow", "implemented": true, "featureIds": ["F011", "F032"] }, { "id": "T062", "description": "Integration: Ticket deletion cancels workflow", "implemented": true, "featureIds": ["F012", "F036"] }, { "id": "T063", "description": "Integration: SLA policy change cancels old workflow and starts new one", "implemented": true, "featureIds": ["F037"] }, { "id": "T064", "description": "Integration: New ticket in CE does not start Temporal workflow", "implemented": true, "featureIds": ["F002", "F003"] }, { "id": "T065", "description": "Integration: CE sla-timer job continues to process tickets normally", "implemented": true, "featureIds": ["F003"] }, { "id": "T066", "description": "Integration: Temporal worker loads SlaTicketWorkflow on startup", "implemented": true, "featureIds": ["F043", "F044"] }, { "id": "T067", "description": "Integration: Temporal worker loads SLA activities on startup", "implemented": true, "featureIds": ["F045"] }, { "id": "T068", "description": "E2E: Full ticket lifecycle in EE - create, 50% notification, pause, resume, first response, 50% resolution notification, resolve", "implemented": true, "featureIds": ["F004", "F008", "F009", "F010", "F011", "F038"] }, { "id": "T069", "description": "E2E: Full ticket lifecycle in CE - create, poll-based 50% notification, pause, resume, first response, resolve", "implemented": true, "featureIds": ["F003"] }, { "id": "T070", "description": "E2E: EE fallback to pgboss when Temporal unavailable", "implemented": true, "featureIds": ["F033", "F034"] }, { "id": "T071", "description": "Unit: calculateNextWakeTime handles timezone correctly for America/New_York", "implemented": true, "featureIds": ["F014"] }, { "id": "T072", "description": "Unit: calculateNextWakeTime handles timezone correctly for Europe/London", "implemented": true, "featureIds": ["F014"] }, { "id": "T073", "description": "Unit: calculateNextWakeTime handles DST transition correctly", "implemented": true, "featureIds": ["F014"] }, { "id": "T074", "description": "Unit: SlaTicketWorkflow handles workflow replay correctly (deterministic)", "implemented": true, "featureIds": ["F004"] }, { "id": "T075", "description": "Unit: SlaTicketWorkflow survives worker restart and continues from correct state", "implemented": true, "featureIds": ["F004"] } ]