fix: reconcile ticket timer with server start

This commit is contained in:
Esdras Renan 2025-10-19 19:52:42 -03:00
parent 1df7e13c8f
commit 3b5676ed35
3 changed files with 96 additions and 5 deletions

View file

@ -0,0 +1,36 @@
import { describe, expect, it } from "vitest"
import { reconcileLocalSessionStart } from "@/components/tickets/ticket-timer.utils"
describe("reconcileLocalSessionStart", () => {
it("usa o timestamp remoto quando não há marcador local", () => {
const result = reconcileLocalSessionStart({ remoteStart: 5000, localStart: 0, origin: "unknown" })
expect(result).toEqual({ localStart: 5000, origin: "remote" })
})
it("mantém o fallback local quando o remoto é menor e a sessão acabou de começar", () => {
const result = reconcileLocalSessionStart({
remoteStart: 1_000,
localStart: 2_000,
origin: "fresh-local",
})
expect(result).toEqual({ localStart: 2_000, origin: "fresh-local" })
})
it("substitui o fallback local quando já havia sessão em andamento", () => {
const result = reconcileLocalSessionStart({
remoteStart: 1_000,
localStart: 2_000,
origin: "already-running-fallback",
})
expect(result).toEqual({ localStart: 1_000, origin: "remote" })
})
it("sincroniza com o servidor quando o remoto é mais recente", () => {
const result = reconcileLocalSessionStart({
remoteStart: 4_000,
localStart: 2_000,
origin: "fresh-local",
})
expect(result).toEqual({ localStart: 4_000, origin: "remote" })
})
})