38 lines
1.2 KiB
Nim
Raw Normal View History

2025-02-11 12:42:20 +01:00
import pkg/asynctest/chronos/unittest
2025-02-12 14:48:57 +01:00
import ../../../codexcrawler/state
import ../../../codexcrawler/utils/asyncdataevent
import ../../../codexcrawler/types
import ../../../codexcrawler/config
2025-02-11 10:54:58 +01:00
2025-02-11 12:43:55 +01:00
type MockState* = ref object of State
2025-02-13 12:35:19 +01:00
steppers*: seq[OnStep]
delays*: seq[Duration]
2025-02-11 10:54:58 +01:00
2025-02-12 13:25:37 +01:00
proc checkAllUnsubscribed*(s: MockState) =
check:
s.events.nodesFound.listeners == 0
s.events.newNodesDiscovered.listeners == 0
s.events.dhtNodeCheck.listeners == 0
s.events.nodesToRevisit.listeners == 0
2025-02-12 13:25:37 +01:00
2025-06-02 16:16:41 +02:00
method whileRunning*(
s: MockState, step: OnStep, delay: Duration
) {.async: (raises: []).} =
2025-02-13 12:35:19 +01:00
s.steppers.add(step)
s.delays.add(delay)
2025-02-12 13:25:37 +01:00
2025-02-11 10:54:58 +01:00
proc createMockState*(): MockState =
MockState(
2025-02-11 15:33:40 +01:00
status: ApplicationStatus.Running,
2025-03-24 09:27:52 +01:00
config: Config(dhtEnable: true, marketplaceEnable: true, requestCheckDelay: 4),
2025-02-11 10:54:58 +01:00
events: Events(
nodesFound: newAsyncDataEvent[seq[Nid]](),
newNodesDiscovered: newAsyncDataEvent[seq[Nid]](),
dhtNodeCheck: newAsyncDataEvent[DhtNodeCheckEventData](),
nodesToRevisit: newAsyncDataEvent[seq[Nid]](),
nodesDeleted: newAsyncDataEvent[seq[Nid]](),
2025-02-11 10:54:58 +01:00
),
2025-02-13 12:35:19 +01:00
steppers: newSeq[OnStep](),
delays: newSeq[Duration](),
2025-02-11 10:54:58 +01:00
)