#![allow(clippy::single_match_else, clippy::manual_let_else, clippy::doc_markdown)]
#[tokio::test(flavor = "multi_thread", worker_threads = 2)]
async fn test_react_counter_live() {
let url = match std::env::var("VITE_URL") {
Ok(u) => u,
Err(_) => {
eprintln!("VITE_URL not set, skipping live React CT test");
return;
},
};
let browser = ferridriver::chromium()
.launch(ferridriver::options::LaunchOptions::default())
.await
.unwrap();
let page = browser.new_page_with_url(&url).await.unwrap();
tokio::time::sleep(std::time::Duration::from_millis(500)).await;
let count = page
.locator("#count", None)
.text_content()
.await
.unwrap()
.unwrap_or_default();
assert_eq!(count, "0", "initial count");
for _ in 0..3 {
page.locator("#inc", None).click(None).await.unwrap();
}
let count = page
.locator("#count", None)
.text_content()
.await
.unwrap()
.unwrap_or_default();
assert_eq!(count, "3", "after 3 increments");
page.locator("#dec", None).click(None).await.unwrap();
let count = page
.locator("#count", None)
.text_content()
.await
.unwrap()
.unwrap_or_default();
assert_eq!(count, "2", "after decrement");
let _ = browser.close(None).await;
}