use specit::it;
#[it("should be correct")]
fn t() {
assert_eq!(2 + 2, 4);
}
#[it("should be wrong")]
#[should_panic]
fn t() {
assert_eq!(1 + 1, 3);
}
#[cfg(feature = "tokio")]
mod pure_it_with_tokio {
use specit::it;
#[it("should work with tokio::test")]
#[tokio::test]
async fn t() {
let f = async { 10 };
assert_eq!(f.await, 10);
}
}
#[cfg(feature = "tokio")]
mod tokio {
use specit::tokio_it as it;
#[it("should work with non-async function")]
fn t() {
assert_eq!(2 + 2, 4);
}
#[it("should work with tokio")]
async fn t() {
let f = async { 10 };
assert_eq!(f.await, 10);
}
#[it("should panic with tokio")]
#[should_panic]
async fn t() {
let f = async { 10 };
assert_eq!(f.await, 12);
}
}
#[cfg(feature = "async-std")]
mod async_std {
use specit::async_std_it as it;
#[it("should work with non-async function")]
fn t() {
assert_eq!(2 + 2, 4);
}
#[it("should be correct")]
async fn t() {
let f = async { 10 };
assert_eq!(f.await, 10);
}
#[it("should panic with async_std")]
#[should_panic]
async fn t() {
let f = async { 10 };
assert_eq!(f.await, 12);
}
}
#[cfg(feature = "lib-wasm-bindgen")]
mod wasm_bindgen_test {
use specit::wasm_bindgen_test_it as it;
use wasm_bindgen::prelude::JsValue;
use wasm_bindgen_futures::JsFuture;
#[it("should work with non-async function")]
fn t() {
assert_eq!(2 + 2, 4);
}
#[it("should be correct")]
async fn t() {
let promise = js_sys::Promise::resolve(&JsValue::from(42));
let x = JsFuture::from(promise).await.unwrap();
assert_eq!(x, 42);
}
}