valensas-vault 0.2.2

A library that provides a convenient interface for interacting with Vault
Documentation
#![cfg(test)]
use serde::{Deserialize, Serialize};

use crate::service::VaultService;

#[derive(Debug, Serialize, Deserialize, Clone, PartialEq)]
struct TestData {
    name: String,
}

#[tokio::test]
async fn write_delete_test() {
    let (service, _) = VaultService::from_env().await.unwrap();
    let service = service.read().await;

    let test_data = TestData {
        name: "trial".to_string(),
    };
    service.insert("test_1", test_data.clone()).await.expect("Failed to insert data");
    let res = service.read::<TestData>("test_1").await.expect("Failed to read data");
    assert_eq!(res, test_data);
}

#[tokio::test]
async fn write_destroy_test() {
    let (service, _) = VaultService::from_env().await.unwrap();
    let service = service.read().await;

    let test_data = TestData {
        name: "trial".to_string(),
    };
    service.insert("test_2", test_data.clone()).await.expect("Failed to insert data");
    let res = service.read::<TestData>("test_2").await.expect("Failed to read data");
    assert_eq!(res, test_data);


    service.delete_permanent("test_2").await.expect("Failed to permanent delete");
    assert!(service.read::<TestData>("test_2").await.is_err());
}