feat: implement browser extension UI with WebAssembly integration

This commit is contained in:
Sameh Abouel-saad
2025-05-22 11:53:32 +03:00
parent 13945a8725
commit ed76ba3d8d
74 changed files with 7054 additions and 577 deletions

View File

@@ -31,3 +31,22 @@ async fn test_native_store_basic() {
let keys = store.keys().await.unwrap();
assert_eq!(keys.len(), 0);
}
#[tokio::test]
async fn test_native_store_persistence() {
let tmp_dir = tempfile::tempdir().unwrap();
let path = tmp_dir.path().join("persistdb");
let db_path = path.to_str().unwrap();
// First open, set value
{
let store = NativeStore::open(db_path).unwrap();
store.set("persist", b"value").await.unwrap();
}
// Reopen and check value
{
let store = NativeStore::open(db_path).unwrap();
let val = store.get("persist").await.unwrap();
assert_eq!(val, Some(b"value".to_vec()));
}
}

View File

@@ -8,7 +8,7 @@ wasm_bindgen_test_configure!(run_in_browser);
#[wasm_bindgen_test]
async fn test_set_and_get() {
let store = WasmStore::open("test-db").await.expect("open");
let store = WasmStore::open("vault").await.expect("open");
store.set("foo", b"bar").await.expect("set");
let val = store.get("foo").await.expect("get");
assert_eq!(val, Some(b"bar".to_vec()));
@@ -16,7 +16,7 @@ async fn test_set_and_get() {
#[wasm_bindgen_test]
async fn test_delete_and_exists() {
let store = WasmStore::open("test-db").await.expect("open");
let store = WasmStore::open("vault").await.expect("open");
store.set("foo", b"bar").await.expect("set");
assert_eq!(store.contains_key("foo").await.unwrap(), true);
assert_eq!(store.contains_key("bar").await.unwrap(), false);
@@ -26,7 +26,7 @@ async fn test_delete_and_exists() {
#[wasm_bindgen_test]
async fn test_keys() {
let store = WasmStore::open("test-db").await.expect("open");
let store = WasmStore::open("vault").await.expect("open");
store.set("foo", b"bar").await.expect("set");
store.set("baz", b"qux").await.expect("set");
let keys = store.keys().await.unwrap();
@@ -35,9 +35,26 @@ async fn test_keys() {
assert!(keys.contains(&"baz".to_string()));
}
#[wasm_bindgen_test]
async fn test_wasm_store_persistence() {
// Use a unique store name to avoid collisions
let store_name = "persist_test_store";
// First open, set value
{
let store = WasmStore::open(store_name).await.expect("open");
store.set("persist", b"value").await.expect("set");
}
// Reopen and check value
{
let store = WasmStore::open(store_name).await.expect("open");
let val = store.get("persist").await.expect("get");
assert_eq!(val, Some(b"value".to_vec()));
}
}
#[wasm_bindgen_test]
async fn test_clear() {
let store = WasmStore::open("test-db").await.expect("open");
let store = WasmStore::open("vault").await.expect("open");
store.set("foo", b"bar").await.expect("set");
store.set("baz", b"qux").await.expect("set");
store.clear().await.unwrap();