@@ -1216,7 +1216,7 @@ mod tests {
12161216 use crate :: config:: { default_polling_interval, ChainSection , Web3Rule } ;
12171217
12181218 use super :: {
1219- Chain , Config , FirehoseProvider , Provider , ProviderDetails , Transport , Web3Provider ,
1219+ Chain , Config , FirehoseProvider , Provider , ProviderDetails , Shard , Transport , Web3Provider ,
12201220 } ;
12211221 use graph:: blockchain:: BlockchainKind ;
12221222 use graph:: firehose:: SubgraphLimit ;
@@ -1937,4 +1937,42 @@ mod tests {
19371937 actual. chains. get( "mainnet" ) . unwrap( ) . polling_interval
19381938 ) ;
19391939 }
1940+
1941+ #[ test]
1942+ fn pool_sizes ( ) {
1943+ let index = NodeId :: new ( "index_node_1" ) . unwrap ( ) ;
1944+ let query = NodeId :: new ( "query_node_1" ) . unwrap ( ) ;
1945+ let other = NodeId :: new ( "other_node_1" ) . unwrap ( ) ;
1946+
1947+ let shard = {
1948+ let mut shard = toml:: from_str :: < Shard > (
1949+ r#"
1950+ connection = "postgresql://postgres:postgres@postgres/graph"
1951+ pool_size = [
1952+ { node = "index_node_.*", size = 20 },
1953+ { node = "query_node_.*", size = 40 }]
1954+ fdw_pool_size = [
1955+ { node = "index_node_.*", size = 10 },
1956+ { node = ".*", size = 5 },
1957+ ]"# ,
1958+ )
1959+ . unwrap ( ) ;
1960+
1961+ shard. validate ( "index_node_1" ) . unwrap ( ) ;
1962+ shard
1963+ } ;
1964+
1965+ assert_eq ! (
1966+ shard. connection,
1967+ "postgresql://postgres:postgres@postgres/graph"
1968+ ) ;
1969+
1970+ assert_eq ! ( shard. pool_size. size_for( & index, "ashard" ) . unwrap( ) , 20 ) ;
1971+ assert_eq ! ( shard. pool_size. size_for( & query, "ashard" ) . unwrap( ) , 40 ) ;
1972+ assert ! ( shard. pool_size. size_for( & other, "ashard" ) . is_err( ) ) ;
1973+
1974+ assert_eq ! ( shard. fdw_pool_size. size_for( & index, "ashard" ) . unwrap( ) , 10 ) ;
1975+ assert_eq ! ( shard. fdw_pool_size. size_for( & query, "ashard" ) . unwrap( ) , 5 ) ;
1976+ assert_eq ! ( shard. fdw_pool_size. size_for( & other, "ashard" ) . unwrap( ) , 5 ) ;
1977+ }
19401978}
0 commit comments