nim-codex/tests/ipfs/testIpfs.nim
2021-02-02 19:29:52 +01:00

49 lines
1.1 KiB
Nim

import std/os
import pkg/asynctest
import pkg/chronos
import pkg/ipfs
suite "integration":
let address = MultiAddress.init("/ip4/127.0.0.1/tcp/48952").get()
var peer1, peer2: Ipfs
var input, output: File
proc setupPeers {.async.} =
peer1 = await Ipfs.start(address)
peer2 = await Ipfs.start()
await peer2.connect(peer1.info)
proc setupFiles =
input = open("tests/input.txt", fmReadWrite)
output = open("tests/output.txt", fmReadWrite)
input.write("foo")
input.setFilePos(0)
proc teardownPeers {.async.} =
await peer1.stop()
await peer2.stop()
proc teardownFiles =
input.close()
output.close()
removeFile("tests/input.txt")
removeFile("tests/output.txt")
setup:
await setupPeers()
setupFiles()
teardown:
await teardownPeers()
teardownFiles()
test "file can be transferred from one peer to another":
let identifier = await peer1.add(input)
await peer2.get(identifier, output)
input.setFilePos(0)
output.setFilePos(0)
check output.readAll() == input.readAll()