()
| 1808 | #[tokio::test] |
| 1809 | #[ignore] |
| 1810 | async fn postgres_solvable_presign_orders() { |
| 1811 | let mut db = PgConnection::connect("postgresql://").await.unwrap(); |
| 1812 | let mut db = db.begin().await.unwrap(); |
| 1813 | crate::clear_DANGER_(&mut db).await.unwrap(); |
| 1814 | |
| 1815 | let order = Order { |
| 1816 | sell_amount: 1.into(), |
| 1817 | buy_amount: 1.into(), |
| 1818 | signing_scheme: SigningScheme::PreSign, |
| 1819 | creation_timestamp: Utc::now(), |
| 1820 | ..Default::default() |
| 1821 | }; |
| 1822 | insert_order(&mut db, &order).await.unwrap(); |
| 1823 | |
| 1824 | async fn get_full_order(ex: &mut PgConnection) -> Option<FullOrder> { |
| 1825 | solvable_orders(ex, 0).next().await.transpose().unwrap() |
| 1826 | } |
| 1827 | |
| 1828 | async fn pre_signature_event( |
| 1829 | ex: &mut PgTransaction<'_>, |
| 1830 | block_number: i64, |
| 1831 | owner: Address, |
| 1832 | order_uid: OrderUid, |
| 1833 | signed: bool, |
| 1834 | ) { |
| 1835 | let events = [( |
| 1836 | EventIndex { |
| 1837 | block_number, |
| 1838 | log_index: 0, |
| 1839 | }, |
| 1840 | Event::PreSignature(PreSignature { |
| 1841 | owner, |
| 1842 | order_uid, |
| 1843 | signed, |
| 1844 | }), |
| 1845 | )]; |
| 1846 | crate::events::append(ex, &events).await.unwrap() |
| 1847 | } |
| 1848 | |
| 1849 | // not solvable because there is no presignature event. |
| 1850 | assert!(get_full_order(&mut db).await.unwrap().presignature_pending); |
| 1851 | |
| 1852 | // solvable because once presignature event is observed. |
| 1853 | pre_signature_event(&mut db, 0, order.owner, order.uid, true).await; |
| 1854 | assert!(!get_full_order(&mut db).await.unwrap().presignature_pending); |
| 1855 | |
| 1856 | // not solvable because "unsigned" presignature event. |
| 1857 | pre_signature_event(&mut db, 1, order.owner, order.uid, false).await; |
| 1858 | assert!(get_full_order(&mut db).await.unwrap().presignature_pending); |
| 1859 | |
| 1860 | // solvable once again because of new presignature event. |
| 1861 | pre_signature_event(&mut db, 2, order.owner, order.uid, true).await; |
| 1862 | assert!(!get_full_order(&mut db).await.unwrap().presignature_pending); |
| 1863 | } |
| 1864 | |
| 1865 | #[tokio::test] |
| 1866 | #[ignore] |
nothing calls this directly
no test coverage detected