From 11f7b4b4d80f8f4b3b1182a49d8948a26458f870 Mon Sep 17 00:00:00 2001 From: Mark Spanbroek Date: Thu, 31 Mar 2022 11:34:33 +0200 Subject: [PATCH] [sales] Clean up tests --- tests/dagger/testsales.nim | 56 ++++++++++++++------------------------ 1 file changed, 20 insertions(+), 36 deletions(-) diff --git a/tests/dagger/testsales.nim b/tests/dagger/testsales.nim index ef757b18..aad99ca3 100644 --- a/tests/dagger/testsales.nim +++ b/tests/dagger/testsales.nim @@ -7,12 +7,19 @@ import ./examples suite "Sales": + let availability = Availability.init(size=100, duration=60, minPrice=42.u256) + let request = StorageRequest(duration: 60.u256, size: 100.u256, maxPrice:42.u256) + var sales: Sales var market: MockMarket setup: market = MockMarket.new() sales = Sales.new(market) + sales.start() + + teardown: + sales.stop() test "has no availability initially": check sales.available.len == 0 @@ -27,7 +34,6 @@ suite "Sales": check sales.available.contains(availability2) test "can remove available storage": - let availability = Availability.example sales.add(availability) sales.remove(availability) check sales.available.len == 0 @@ -38,68 +44,46 @@ suite "Sales": check availability1.id != availability2.id test "offers available storage when matching request comes in": - let availability = Availability.init(size=100, duration=60, minPrice=42.u256) sales.add(availability) - sales.start() - let request = StorageRequest(duration:60.u256, size:100.u256, maxPrice:42.u256) discard await market.requestStorage(request) check market.offered.len == 1 check market.offered[0].price == 42.u256 - sales.stop() test "ignores request when no matching storage is available": - let availability = Availability.init(size=99, duration=60, minPrice=42.u256) sales.add(availability) - sales.start() - let request = StorageRequest(duration:60.u256, size:100.u256, maxPrice:42.u256) - discard await market.requestStorage(request) + var tooBig = request + tooBig.size = request.size + 1 + discard await market.requestStorage(tooBig) check market.offered.len == 0 - sales.stop() test "makes storage unavailable when offer is submitted": - let availability = Availability.init(size=100, duration=60, minPrice=42.u256) sales.add(availability) - sales.start() - let request = StorageRequest(duration:60.u256, size:100.u256, maxPrice:42.u256) discard await market.requestStorage(request) check sales.available.len == 0 - sales.stop() test "sets expiry time of offer": - let availability = Availability.init(size=100, duration=60, minPrice=42.u256) sales.add(availability) - sales.start() - let request = StorageRequest(duration:60.u256, size:100.u256, maxPrice:42.u256) let now = getTime().toUnix().u256 discard await market.requestStorage(request) check market.offered[0].expiry == now + sales.offerExpiryInterval - sales.stop() - test "call onSale when offer is selected": - let availability = Availability.init(size=100, duration=60, minPrice=42.u256) - sales.add(availability) - var selectedOffer: StorageOffer + test "calls onSale when offer is selected": + var sold: StorageOffer sales.onSale = proc(offer: StorageOffer) = - selectedOffer = offer - sales.start() - let request = StorageRequest(duration:60.u256, size:100.u256, maxPrice:42.u256) + sold = offer + sales.add(availability) discard await market.requestStorage(request) let offer = market.offered[0] await market.selectOffer(offer.id) - check selectedOffer == offer - sales.stop() + check sold == offer test "does not call onSale when a different offer is selected": - let availability = Availability.init(size=100, duration=60, minPrice=42.u256) - sales.add(availability) - var onSaleWasCalled: bool + var didSell: bool sales.onSale = proc(offer: StorageOffer) = - onSaleWasCalled = true - sales.start() - var request = StorageRequest(duration:60.u256, size:100.u256, maxPrice:42.u256) - request = await market.requestStorage(request) + didSell = true + sales.add(availability) + let request = await market.requestStorage(request) var otherOffer = StorageOffer(requestId: request.id, price: 1.u256) otherOffer = await market.offerStorage(otherOffer) await market.selectOffer(otherOffer.id) - check not onSaleWasCalled - sales.stop() + check not didSell