@@ -22,6 +22,7 @@ import fiatOrderReducer, {
22
22
getOrders ,
23
23
getAllDepositOrders ,
24
24
getPendingOrders ,
25
+ getForceUpdateOrders ,
25
26
getProviderName ,
26
27
getRampNetworks ,
27
28
initialState ,
@@ -1564,6 +1565,206 @@ describe('selectors', () => {
1564
1565
} ) ;
1565
1566
} ) ;
1566
1567
1568
+ describe ( 'getForceUpdateOrders' , ( ) => {
1569
+ it ( 'should return the orders by forceUpdate property' , ( ) => {
1570
+ const state1 = merge ( { } , initialRootState , {
1571
+ engine : {
1572
+ backgroundState : {
1573
+ NetworkController : {
1574
+ selectedNetworkClientId : 'binance' ,
1575
+ networksMetadata : {
1576
+ binance : {
1577
+ status : 'available' ,
1578
+ EIPS : { } ,
1579
+ } ,
1580
+ } ,
1581
+ networkConfigurationsByChainId : {
1582
+ '0x38' : {
1583
+ blockExplorerUrls : [ 'https://etherscan.com' ] ,
1584
+ chainId : '0x38' ,
1585
+ defaultRpcEndpointIndex : 0 ,
1586
+ name : 'Binance network' ,
1587
+ nativeCurrency : 'BNB' ,
1588
+ rpcEndpoints : [
1589
+ {
1590
+ networkClientId : 'binance' ,
1591
+ type : 'Custom' ,
1592
+ url : 'https://binance.infura.io/v3' ,
1593
+ } ,
1594
+ ] ,
1595
+ } ,
1596
+ } ,
1597
+ } ,
1598
+ AccountsController : MOCK_ACCOUNTS_CONTROLLER_STATE_1 ,
1599
+ } ,
1600
+ } ,
1601
+ fiatOrders : {
1602
+ orders : [
1603
+ {
1604
+ ...mockOrder1 ,
1605
+ state : 'PENDING' ,
1606
+ id : 'test-56-order-1' ,
1607
+ network : '56' ,
1608
+ account : MOCK_ADDRESS_1 ,
1609
+ forceUpdate : true ,
1610
+ } ,
1611
+ {
1612
+ ...mockOrder1 ,
1613
+ id : 'test-56-order-2' ,
1614
+ network : '56' ,
1615
+ account : MOCK_ADDRESS_2 ,
1616
+ forceUpdate : true ,
1617
+ } ,
1618
+ {
1619
+ ...mockOrder1 ,
1620
+ state : 'PENDING' ,
1621
+ id : 'test-56-order-3' ,
1622
+ network : '56' ,
1623
+ account : MOCK_ADDRESS_1 ,
1624
+ } ,
1625
+ {
1626
+ ...mockOrder1 ,
1627
+ id : 'test-1-order-1' ,
1628
+ network : '1' ,
1629
+ account : MOCK_ADDRESS_1 ,
1630
+ } ,
1631
+ {
1632
+ ...mockOrder1 ,
1633
+ id : 'test-1-order-2' ,
1634
+ network : '1' ,
1635
+ account : MOCK_ADDRESS_2 ,
1636
+ forceUpdate : true ,
1637
+ } ,
1638
+ {
1639
+ ...mockOrder1 ,
1640
+ id : 'test-56-order-3' ,
1641
+ network : '1' ,
1642
+ account : MOCK_ADDRESS_1 ,
1643
+ } ,
1644
+ ] ,
1645
+ } ,
1646
+ } ) ;
1647
+
1648
+ const state2 = merge ( { } , initialRootState , {
1649
+ engine : {
1650
+ backgroundState : {
1651
+ NetworkController : {
1652
+ selectedNetworkClientId : 'mainnet' ,
1653
+ networksMetadata : { } ,
1654
+ networkConfigurations : {
1655
+ mainnet : {
1656
+ id : 'mainnet' ,
1657
+ rpcUrl : 'https://mainnet.infura.io/v3' ,
1658
+ chainId : '0x1' ,
1659
+ ticker : 'ETH' ,
1660
+ nickname : 'Ethereum network' ,
1661
+ rpcPrefs : {
1662
+ blockExplorerUrl : 'https://etherscan.com' ,
1663
+ } ,
1664
+ } ,
1665
+ } ,
1666
+ } ,
1667
+ AccountsController : MOCK_ACCOUNTS_CONTROLLER_STATE_2 ,
1668
+ } ,
1669
+ } ,
1670
+ fiatOrders : {
1671
+ orders : [
1672
+ {
1673
+ ...mockOrder1 ,
1674
+ id : 'test-56-order-1' ,
1675
+ network : '56' ,
1676
+ account : MOCK_ADDRESS_1 ,
1677
+ } ,
1678
+ {
1679
+ ...mockOrder1 ,
1680
+ id : 'test-56-order-2' ,
1681
+ network : '56' ,
1682
+ account : MOCK_ADDRESS_2 ,
1683
+ forceUpdate : true ,
1684
+ } ,
1685
+ {
1686
+ ...mockOrder1 ,
1687
+ id : 'test-56-order-3' ,
1688
+ network : '56' ,
1689
+ account : MOCK_ADDRESS_1 ,
1690
+ forceUpdate : false ,
1691
+ } ,
1692
+ {
1693
+ ...mockOrder1 ,
1694
+ id : 'test-1-order-1' ,
1695
+ network : '1' ,
1696
+ account : MOCK_ADDRESS_1 ,
1697
+ forceUpdate : true ,
1698
+ } ,
1699
+ {
1700
+ ...mockOrder1 ,
1701
+ id : 'test-1-order-2' ,
1702
+ state : 'PENDING' ,
1703
+ network : '1' ,
1704
+ account : MOCK_ADDRESS_2 ,
1705
+ } ,
1706
+ {
1707
+ ...mockOrder1 ,
1708
+ id : 'test-1-order-3' ,
1709
+ network : '1' ,
1710
+ excludeFromPurchases : true ,
1711
+ account : MOCK_ADDRESS_2 ,
1712
+ forceUpdate : true ,
1713
+ } ,
1714
+ {
1715
+ ...mockOrder1 ,
1716
+ id : 'test-56-order-3' ,
1717
+ network : '1' ,
1718
+ account : MOCK_ADDRESS_1 ,
1719
+ } ,
1720
+ ] ,
1721
+ } ,
1722
+ } ) ;
1723
+
1724
+ expect ( getForceUpdateOrders ( state1 ) ) . toHaveLength ( 3 ) ;
1725
+ expect ( getForceUpdateOrders ( state1 ) . map ( ( o ) => o . id ) ) . toEqual ( [
1726
+ 'test-56-order-1' ,
1727
+ 'test-56-order-2' ,
1728
+ 'test-1-order-2' ,
1729
+ ] ) ;
1730
+ expect ( getForceUpdateOrders ( state2 ) ) . toHaveLength ( 3 ) ;
1731
+ expect ( getForceUpdateOrders ( state2 ) . map ( ( o ) => o . id ) ) . toEqual ( [
1732
+ 'test-56-order-2' ,
1733
+ 'test-1-order-1' ,
1734
+ 'test-1-order-3' ,
1735
+ ] ) ;
1736
+ } ) ;
1737
+
1738
+ it ( 'it should return empty array by default' , ( ) => {
1739
+ const state = merge ( { } , initialRootState , {
1740
+ engine : {
1741
+ backgroundState : {
1742
+ NetworkController : {
1743
+ selectedNetworkClientId : 'mainnet' ,
1744
+ networksMetadata : { } ,
1745
+ networkConfigurations : {
1746
+ mainnet : {
1747
+ id : 'mainnet' ,
1748
+ rpcUrl : 'https://mainnet.infura.io/v3' ,
1749
+ chainId : '0x1' ,
1750
+ ticker : 'ETH' ,
1751
+ nickname : 'Sepolia network' ,
1752
+ rpcPrefs : {
1753
+ blockExplorerUrl : 'https://etherscan.com' ,
1754
+ } ,
1755
+ } ,
1756
+ } ,
1757
+ } ,
1758
+ AccountsController : MOCK_ACCOUNTS_CONTROLLER_STATE_2 ,
1759
+ } ,
1760
+ } ,
1761
+ fiatOrders : { } ,
1762
+ } ) ;
1763
+
1764
+ expect ( getForceUpdateOrders ( state ) ) . toEqual ( [ ] ) ;
1765
+ } ) ;
1766
+ } ) ;
1767
+
1567
1768
describe ( 'customOrdersSelector' , ( ) => {
1568
1769
it ( 'should return empty array if custom order property is not defined' , ( ) => {
1569
1770
const state = merge ( { } , initialRootState , {
0 commit comments