File size: 1,297 Bytes
f23825d
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
import { filterEventsWithRange } from "../helpers/filterEvents"
import EventScheduler from "./EventScheduler"

describe("EventScheduler", () => {
  it("readNextEvents", () => {
    const events = [{ tick: 0 }, { tick: 100 }, { tick: 110 }]
    const s = new EventScheduler(
      (start, end) => filterEventsWithRange(events, start, end),
      () => [],
      0,
      480,
      100,
    )

    // ๅ…ˆ่ชญใฟๆ™‚้–“ๅˆ†ใฎใ‚คใƒ™ใƒณใƒˆใŒๅ…ฅใฃใฆใ„ใ‚‹
    // There are events for read ahead time
    {
      const result = s.readNextEvents(120, 0)
      expect(result.length).toBe(1)
      expect(result[0].event).toBe(events[0])
    }

    // ๅ‰ๅ›žใ‹ใ‚‰ๆ™‚้–“ใŒ็ตŒ้Žใ—ใฆใชใ‘ใ‚Œใฐใ‚คใƒ™ใƒณใƒˆใฏใชใ„
    // There is no event if time has passed since last time
    {
      const result = s.readNextEvents(120, 0)
      expect(result.length).toBe(0)
    }

    // ๆ™‚้–“ใŒ็ตŒ้Žใ™ใ‚‹ใจ2ๅ€‹็›ฎไปฅ้™ใฎใ‚คใƒ™ใƒณใƒˆใŒ่ฟ”ใฃใฆใใ‚‹
    // If time has passed, the second or later events will come back
    {
      const result = s.readNextEvents(120, 120)
      expect(result.length).toBe(2)
      expect(result[0].event).toBe(events[1])
      expect(result[0].timestamp).toBe(120)
      expect(result[1].event).toBe(events[2])
      expect(result[1].timestamp).toBe(120)
    }
  })
})