#[tokio::test]
#[serial]
async fn multiwriter_different_keys() {
let node_id = Uuid::parse_str("7f0153b0-79cf-4922-85ef-61e390970514").unwrap();
let clock = Arc::new(RwLock::new(SizedClock::Fake(FakeClock::new(Timestamp::default()))));
let (ds, _) = new_ds(node_id, clock).await;
let mut tx = ds.transaction(Write, Optimistic).await.unwrap();
tx.set("test", "some text").await.unwrap();
tx.commit().await.unwrap();
let mut tx1 = ds.transaction(Write, Optimistic).await.unwrap();
tx1.set("test1", "other text 1").await.unwrap();
let mut tx2 = ds.transaction(Write, Optimistic).await.unwrap();
tx2.set("test2", "other text 2").await.unwrap();
let mut tx3 = ds.transaction(Write, Optimistic).await.unwrap();
tx3.set("test3", "other text 3").await.unwrap();
tx1.commit().await.unwrap();
tx2.commit().await.unwrap();
tx3.commit().await.unwrap();
let mut tx = ds.transaction(Read, Optimistic).await.unwrap();
let val = tx.get("test").await.unwrap().unwrap();
assert_eq!(val, b"some text");
let val = tx.get("test1").await.unwrap().unwrap();
assert_eq!(val, b"other text 1");
let val = tx.get("test2").await.unwrap().unwrap();
assert_eq!(val, b"other text 2");
let val = tx.get("test3").await.unwrap().unwrap();
assert_eq!(val, b"other text 3");
tx.cancel().await.unwrap();
}