Add tests for runtime NPC presence
This commit is contained in:
38
tests/domain/runtime-npc-presence.test.ts
Normal file
38
tests/domain/runtime-npc-presence.test.ts
Normal file
@@ -0,0 +1,38 @@
|
||||
import { describe, expect, it } from "vitest";
|
||||
|
||||
import {
|
||||
createNpcAlwaysPresence,
|
||||
createNpcTimeWindowPresence
|
||||
} from "../../src/entities/entity-instances";
|
||||
import {
|
||||
hasNpcPresenceActivityChanged,
|
||||
resolveNpcPresenceActive
|
||||
} from "../../src/runtime-three/runtime-npc-presence";
|
||||
|
||||
describe("runtime NPC presence", () => {
|
||||
it("keeps always-authored NPC presence active at any time of day", () => {
|
||||
const presence = createNpcAlwaysPresence();
|
||||
|
||||
expect(resolveNpcPresenceActive(presence, 2)).toBe(true);
|
||||
expect(resolveNpcPresenceActive(presence, 14.5)).toBe(true);
|
||||
expect(
|
||||
hasNpcPresenceActivityChanged(presence, 6, 18)
|
||||
).toBe(false);
|
||||
});
|
||||
|
||||
it("resolves time-windowed NPC presence across midnight and detects window boundaries", () => {
|
||||
const presence = createNpcTimeWindowPresence({
|
||||
startHour: 22,
|
||||
endHour: 2
|
||||
});
|
||||
|
||||
expect(resolveNpcPresenceActive(presence, 21.5)).toBe(false);
|
||||
expect(resolveNpcPresenceActive(presence, 23.5)).toBe(true);
|
||||
expect(resolveNpcPresenceActive(presence, 1.5)).toBe(true);
|
||||
expect(resolveNpcPresenceActive(presence, 3)).toBe(false);
|
||||
|
||||
expect(hasNpcPresenceActivityChanged(presence, 21.5, 23)).toBe(true);
|
||||
expect(hasNpcPresenceActivityChanged(presence, 23, 1)).toBe(false);
|
||||
expect(hasNpcPresenceActivityChanged(presence, 1.5, 2.5)).toBe(true);
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user