#![cfg(target_arch = "wasm32")]
use absurder_sql::storage::{BLOCK_SIZE, BlockStorage};
use wasm_bindgen_test::*;
#[wasm_bindgen_test]
async fn test_wasm_checksum_mismatch_after_restart() {
let s1 = BlockStorage::new_with_capacity("wasm_meta_mismatch_db", 8)
.await
.expect("create storage s1");
let block_id = 7u64;
let data = vec![0xEEu8; BLOCK_SIZE];
s1.write_block(block_id, data).await.expect("write block");
s1.sync().await.expect("sync s1");
drop(s1);
let mut s2 = BlockStorage::new("wasm_meta_mismatch_db")
.await
.expect("create storage s2");
let restored = s2.get_block_checksum(block_id);
assert!(
restored.is_some(),
"checksum should be restored after restart"
);
s2.set_block_checksum_for_testing(block_id, 123456789);
let err = s2
.read_block(block_id)
.await
.expect_err("expected checksum mismatch after corruption");
assert_eq!(err.code, "CHECKSUM_MISMATCH");
}