fix: reconcile ticket timer with server start
This commit is contained in:
parent
1df7e13c8f
commit
3b5676ed35
3 changed files with 96 additions and 5 deletions
36
tests/ticket-timer.test.ts
Normal file
36
tests/ticket-timer.test.ts
Normal 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" })
|
||||
})
|
||||
})
|
||||
Loading…
Add table
Add a link
Reference in a new issue