Skip to content

Commit 042c0c3

Browse files
Add nodeCanSupportMultipleEtcdClusters test
1 parent 4699e46 commit 042c0c3

File tree

1 file changed

+51
-0
lines changed

1 file changed

+51
-0
lines changed

hydra-cluster/test/Test/EndToEndSpec.hs

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -190,6 +190,57 @@ spec = around (showLogsOnFailure "EndToEndSpec") $ do
190190
waitMatch 10 bobNode $ \v -> do
191191
guard $ v ^? key "tag" == Just "SnapshotConfirmed"
192192

193+
it "supports multiple etcd clusters" $ \tracer -> do
194+
withClusterTempDir $ \tmpDir -> do
195+
(aliceCardanoVk, _) <- keysFor Alice
196+
(bobCardanoVk, _) <- keysFor Bob
197+
(carolCardanoVk, _) <- keysFor Carol
198+
199+
initialUTxO <- generate $ do
200+
a <- genUTxOFor aliceCardanoVk
201+
b <- genUTxOFor bobCardanoVk
202+
c <- genUTxOFor carolCardanoVk
203+
pure $ a <> b <> c
204+
205+
initialUTxO' <- generate $ do
206+
b <- genUTxOFor bobCardanoVk
207+
c <- genUTxOFor carolCardanoVk
208+
pure $ b <> c
209+
210+
Aeson.encodeFile (tmpDir </> "utxo.json") initialUTxO
211+
Aeson.encodeFile (tmpDir </> "utxo2.json") initialUTxO'
212+
213+
let offlineConfig =
214+
Offline
215+
OfflineChainConfig
216+
{ offlineHeadSeed = "test"
217+
, initialUTxOFile = tmpDir </> "utxo.json"
218+
, ledgerGenesisFile = Nothing
219+
}
220+
221+
let offlineConfig' =
222+
Offline
223+
OfflineChainConfig
224+
{ offlineHeadSeed = "test2"
225+
, initialUTxOFile = tmpDir </> "utxo2.json"
226+
, ledgerGenesisFile = Nothing
227+
}
228+
229+
let hydraTracer = contramap FromHydraNode tracer
230+
231+
withHydraNode hydraTracer offlineConfig tmpDir 1 aliceSk [bobVk, carolVk] [1, 2, 3] $ \n1 -> do
232+
withHydraNode hydraTracer offlineConfig tmpDir 2 bobSk [aliceVk, carolVk] [1, 2, 3] $ \n2 -> do
233+
withHydraNode hydraTracer offlineConfig tmpDir 3 carolSk [aliceVk, bobVk] [1, 2, 3] $ \n3 -> do
234+
waitForNodesConnected hydraTracer 30 $ n1 :| [n2, n3]
235+
236+
withHydraNode hydraTracer offlineConfig' tmpDir 2 bobSk [carolVk] [2, 3] $ \n2 -> do
237+
withHydraNode hydraTracer offlineConfig' tmpDir 3 carolSk [bobVk] [2, 3] $ \n3 -> do
238+
waitForNodesConnected hydraTracer 30 $ n2 :| [n3]
239+
240+
withHydraNode hydraTracer offlineConfig tmpDir 2 bobSk [aliceVk, carolVk] [1, 2, 3] $ \n2 -> do
241+
withHydraNode hydraTracer offlineConfig tmpDir 3 carolSk [aliceVk, bobVk] [1, 2, 3] $ \n3 -> do
242+
waitForNodesConnected hydraTracer 30 $ n1 :| [n2, n3]
243+
193244
describe "End-to-end on Cardano devnet" $ do
194245
describe "single party hydra head" $ do
195246
it "full head life-cycle" $ \tracer -> do

0 commit comments

Comments
 (0)