nim-codex/tests/integration/testblockexpiration.nim
2025-02-07 15:17:07 +11:00

51 lines
1.2 KiB
Nim

import ../examples
import ./multinodes
multinodesuite "Node block expiration tests":
var content: seq[byte]
setup:
content = await RandomChunker.example(blocks = 8)
test "node retains not-expired file",
NodeConfigs(
clients: CodexConfigs
.init(nodes = 1)
.withBlockTtl(0, 10)
.withBlockMaintenanceInterval(0, 1).some,
providers: CodexConfigs.none,
):
let client = clients()[0]
let clientApi = client.client
let contentId = clientApi.upload(content).get
await sleepAsync(2.seconds)
let download = clientApi.download(contentId, local = true)
check:
download.isOk
download.get == string.fromBytes(content)
test "node deletes expired file",
NodeConfigs(
clients: CodexConfigs
.init(nodes = 1)
.withBlockTtl(0, 1)
.withBlockMaintenanceInterval(0, 1).some,
providers: CodexConfigs.none,
):
let client = clients()[0]
let clientApi = client.client
let contentId = clientApi.upload(content).get
await sleepAsync(3.seconds)
let download = clientApi.download(contentId, local = true)
check:
download.isFailure
download.error.msg == "404 Not Found"