use serde_json::json;
#[tokio::test]
async fn test_contract_is_operational() -> Result<(), Box<dyn std::error::Error>> {
let sandbox = utility_workspaces::sandbox().await?;
let contract_wasm = utility_workspaces::compile_project("./").await?;
let contract = sandbox.dev_deploy(&contract_wasm).await?;
let user_account = sandbox.dev_create_account().await?;
let outcome = user_account
.call(contract.id(), "set_greeting")
.args_json(json!({"greeting": "Hello World!"}))
.transact()
.await?;
assert!(outcome.is_success());
let user_message_outcome = contract
.view("get_greeting")
.args_json(json!({}))
.await?;
assert_eq!(user_message_outcome.json::<String>()?, "Hello World!");
Ok(())
}