1
+ import { render , screen } from '@testing-library/react'
2
+ import '@testing-library/jest-dom'
3
+ import { initStore } from "./helpers" ;
4
+ import { Provider } from "react-redux" ;
5
+ import { poolsSlice } from "../src/store/poolsSlice" ;
6
+ import PoolTicker from "../src/components/PoolTicker" ;
7
+ import { getCExplorerUrlForPool } from "../src/utils" ;
8
+
9
+ function renderPoolTickerComponent ( aggregator , partyId , default_state = undefined ) {
10
+ const store = initStore ( default_state ) ;
11
+ return [
12
+ render (
13
+ < Provider store = { store } >
14
+ < PoolTicker aggregator = { aggregator } partyId = { partyId } />
15
+ </ Provider >
16
+ ) ,
17
+ store
18
+ ] ;
19
+ }
20
+
21
+ describe ( 'PoolTicker' , ( ) => {
22
+ it ( 'Pool ticker not on the three main network doesn\'t show link to cexplorer' , ( ) => {
23
+ const partyId = "pool1zmtm8yef33z2n7x4nn0kvv9xpzjuj7725p9y9m5t960g5qy51ua" ;
24
+ const poolTicker = "[MITHRIL] Mithril Signer" ;
25
+ renderPoolTickerComponent (
26
+ "myaggregator" ,
27
+ partyId ,
28
+ {
29
+ pools : {
30
+ ...poolsSlice . getInitialState ( ) ,
31
+ list : [
32
+ {
33
+ aggregator : "myaggregator" ,
34
+ network : "devnet" ,
35
+ pools : [ {
36
+ "party_id" : partyId ,
37
+ "pool_ticker" : poolTicker ,
38
+ "has_registered" : true ,
39
+ } ] ,
40
+ } ] ,
41
+ } ,
42
+ } ) ;
43
+
44
+ expect ( screen . getByText ( poolTicker ) ) ;
45
+ expect ( screen . queryByRole ( 'link' ) ) . toBe ( null ) ;
46
+ } ) ;
47
+
48
+ it . each ( [ "mainnet" , "preprod" , "preview" ] )
49
+ ( 'Pool ticker on %s network link to cexplorer' , ( network ) => {
50
+ const partyId = "pool1zmtm8yef33z2n7x4nn0kvv9xpzjuj7725p9y9m5t960g5qy51ua" ;
51
+ const poolTicker = "[MITHRIL] Mithril Signer" ;
52
+ renderPoolTickerComponent (
53
+ "myaggregator" ,
54
+ partyId ,
55
+ {
56
+ pools : {
57
+ ...poolsSlice . getInitialState ( ) ,
58
+ list : [
59
+ {
60
+ aggregator : "myaggregator" ,
61
+ network : network ,
62
+ pools : [ {
63
+ "party_id" : partyId ,
64
+ "pool_ticker" : poolTicker ,
65
+ "has_registered" : true ,
66
+ } ] ,
67
+ } ] ,
68
+ } ,
69
+ } ) ;
70
+
71
+ expect ( screen . getByText ( poolTicker ) ) ;
72
+ expect ( screen . getByRole ( 'link' ) ) . toHaveAttribute ( 'href' , getCExplorerUrlForPool ( network , partyId ) ) ;
73
+ } ) ;
74
+
75
+ it . each ( [ "mainnet" , "preprod" , "preview" ] )
76
+ ( 'Not available Pool ticker on %s network still show link to cexplorer' , ( network ) => {
77
+ const partyId = "pool1zmtm8yef33z2n7x4nn0kvv9xpzjuj7725p9y9m5t960g5qy51ua" ;
78
+ renderPoolTickerComponent (
79
+ "myaggregator" ,
80
+ partyId ,
81
+ {
82
+ pools : {
83
+ ...poolsSlice . getInitialState ( ) ,
84
+ list : [
85
+ {
86
+ aggregator : "myaggregator" ,
87
+ network : network ,
88
+ pools : [ {
89
+ "party_id" : partyId ,
90
+ "has_registered" : true ,
91
+ } ] ,
92
+ } ] ,
93
+ } ,
94
+ } ) ;
95
+
96
+ expect ( screen . getByText ( "Not available" ) ) ;
97
+ expect ( screen . getByRole ( 'link' ) ) . toHaveAttribute ( 'href' , getCExplorerUrlForPool ( network , partyId ) ) ;
98
+ } ) ;
99
+
100
+ it . each ( [ "mainnet" , "preprod" , "preview" ] )
101
+ ( 'Not available Pool ticker on %s network still show link to cexplorer even without pools data' , ( network ) => {
102
+ const partyId = "pool1zmtm8yef33z2n7x4nn0kvv9xpzjuj7725p9y9m5t960g5qy51ua" ;
103
+ renderPoolTickerComponent (
104
+ "myaggregator" ,
105
+ partyId ,
106
+ {
107
+ pools : {
108
+ ...poolsSlice . getInitialState ( ) ,
109
+ list : [
110
+ {
111
+ aggregator : "myaggregator" ,
112
+ network : network ,
113
+ pools : [ ] ,
114
+ } ] ,
115
+ } ,
116
+ } ) ;
117
+
118
+ expect ( screen . getByText ( "Not available" ) ) ;
119
+ expect ( screen . getByRole ( 'link' ) ) . toHaveAttribute ( 'href' , getCExplorerUrlForPool ( network , partyId ) ) ;
120
+ } ) ;
121
+ } ) ;
0 commit comments