test(run): make completion metadata timing assertion deterministic
Avoid Date.now call-order flakiness by pinning the mocked current time and setting the message start time explicitly in the test setup. Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
This commit is contained in:
@@ -1,4 +1,4 @@
|
|||||||
import { describe, it, expect, spyOn } from "bun:test"
|
const { describe, it, expect, spyOn } = require("bun:test")
|
||||||
import type { RunContext } from "./types"
|
import type { RunContext } from "./types"
|
||||||
import { createEventState } from "./events"
|
import { createEventState } from "./events"
|
||||||
import { handleSessionStatus, handleMessagePartUpdated, handleMessageUpdated, handleTuiToast } from "./event-handlers"
|
import { handleSessionStatus, handleMessagePartUpdated, handleMessageUpdated, handleTuiToast } from "./event-handlers"
|
||||||
@@ -235,9 +235,7 @@ describe("handleMessagePartUpdated", () => {
|
|||||||
|
|
||||||
it("prints completion metadata once when assistant text part is completed", () => {
|
it("prints completion metadata once when assistant text part is completed", () => {
|
||||||
// given
|
// given
|
||||||
const nowSpy = spyOn(Date, "now")
|
const nowSpy = spyOn(Date, "now").mockReturnValue(3400)
|
||||||
nowSpy.mockReturnValueOnce(1000)
|
|
||||||
nowSpy.mockReturnValueOnce(3400)
|
|
||||||
|
|
||||||
const ctx = createMockContext("ses_main")
|
const ctx = createMockContext("ses_main")
|
||||||
const state = createEventState()
|
const state = createEventState()
|
||||||
@@ -259,6 +257,7 @@ describe("handleMessagePartUpdated", () => {
|
|||||||
} as any,
|
} as any,
|
||||||
state,
|
state,
|
||||||
)
|
)
|
||||||
|
state.messageStartedAtById["msg_1"] = 1000
|
||||||
|
|
||||||
// when
|
// when
|
||||||
handleMessagePartUpdated(
|
handleMessagePartUpdated(
|
||||||
|
|||||||
Reference in New Issue
Block a user