nim-codex/tests/ipfs/testRepo.nim
Mark Spanbroek b0a1166c3c Bitswap: retrieve() waits until IPFS object has been retrieved
Workaround that always waited for exactly 1 second has been removed.
2021-02-02 19:29:52 +01:00

37 lines
867 B
Nim

import pkg/asynctest
import pkg/chronos
import pkg/ipfs/repo
suite "repo":
let obj = IpfsObject(data: @[1'u8, 2'u8, 3'u8])
var repo: Repo
setup:
repo = Repo()
test "stores IPFS objects":
repo.store(obj)
test "retrieves IPFS objects by their content id":
repo.store(obj)
check repo.retrieve(obj.cid).get() == obj
test "signals retrieval failure":
check repo.retrieve(obj.cid).isNone
test "knows which content ids are stored":
check repo.contains(obj.cid) == false
repo.store(obj)
check repo.contains(obj.cid) == true
test "waits for IPFS object to arrive":
let waiting = repo.wait(obj.cid, 1.minutes)
check not waiting.finished
repo.store(obj)
check waiting.finished
test "does not wait when IPFS object is already stored":
repo.store(obj)
check repo.wait(obj.cid, 1.minutes).finished