MCPcopy Create free account
hub / github.com/cowprotocol/services / postgres_roundtrip

Function postgres_roundtrip

crates/database/src/auction.rs:129–172  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

127 #[tokio::test]
128 #[ignore]
129 async fn postgres_roundtrip() {
130 let mut db = PgConnection::connect("postgresql://").await.unwrap();
131 let mut db = db.begin().await.unwrap();
132 crate::clear_DANGER_(&mut db).await.unwrap();
133
134 let value = JsonValue::Number(1.into());
135 let id = get_next_auction_id(&mut db).await.unwrap();
136 let value_str = serde_json::to_string(&value).unwrap();
137 insert_auction_with_id(&mut db, id, &value_str)
138 .await
139 .unwrap();
140 let (id_, value_) = load_most_recent(&mut db).await.unwrap().unwrap();
141 assert_eq!(id, id_);
142 assert_eq!(value, value_);
143
144 let value = JsonValue::Number(2.into());
145 let id_ = get_next_auction_id(&mut db).await.unwrap();
146 assert_eq!(id + 1, id_);
147 let value_str = serde_json::to_string(&value).unwrap();
148 insert_auction_with_id(&mut db, id_, &value_str)
149 .await
150 .unwrap();
151 let (id, value_) = load_most_recent(&mut db).await.unwrap().unwrap();
152 assert_eq!(value, value_);
153 assert_eq!(id_, id);
154
155 // let's assume the second auction contains a valid competition data so it's
156 // meaningful to save it into `competition_auctions` table as well
157 let auction = Auction {
158 id: id_,
159 block: 1,
160 deadline: 2,
161 order_uids: vec![ByteArray([1u8; 56]), ByteArray([2u8; 56])],
162 price_tokens: vec![ByteArray([1u8; 20])],
163 price_values: vec![BigDecimal::from(1)],
164 surplus_capturing_jit_order_owners: vec![ByteArray([1u8; 20])],
165 };
166 save(&mut db, auction.clone()).await.unwrap();
167 let auction_ = fetch(&mut db, id_).await.unwrap().unwrap();
168 assert_eq!(auction, auction_);
169
170 let order_uids = get_order_uids(&mut db, id_).await.unwrap().unwrap();
171 assert_eq!(auction.order_uids, order_uids);
172 }
173}

Callers

nothing calls this directly

Calls 11

connectFunction · 0.85
clear_DANGER_Function · 0.85
get_next_auction_idFunction · 0.85
insert_auction_with_idFunction · 0.85
load_most_recentFunction · 0.85
get_order_uidsFunction · 0.85
unwrapMethod · 0.80
saveFunction · 0.70
fetchFunction · 0.70
intoMethod · 0.45
cloneMethod · 0.45

Tested by

no test coverage detected