#[macro_use]
mod tester;
use tester::Tester;
use {
color_eyre::Result,
glues_tui::{config::LAST_PROXY_URL, input::KeyCode},
};
#[tokio::test]
async fn opens_instant_on_enter() -> Result<()> {
let mut t = Tester::new().await?;
t.draw()?;
t.press('j').await;
t.press('k').await;
t.key(KeyCode::Enter).await;
t.draw()?;
snap!(t, "instant");
Ok(())
}
#[tokio::test]
async fn quits_on_q() -> Result<()> {
let mut t = Tester::new().await?;
t.draw()?;
let quit = t.press('q').await;
assert!(quit);
Ok(())
}
#[tokio::test]
async fn help_overlay_toggles() -> Result<()> {
let mut t = Tester::new().await?;
t.draw()?;
t.press('h').await;
t.draw()?;
snap!(t, "help_open");
t.press('x').await;
t.draw()?;
snap!(t, "help_closed");
Ok(())
}
#[cfg(not(target_arch = "wasm32"))]
#[tokio::test]
async fn open_local_prompt() -> Result<()> {
let mut t = Tester::new().await?;
t.draw()?;
t.press('l').await;
t.draw()?;
snap!(t, "local_prompt");
Ok(())
}
#[tokio::test]
async fn open_redb_prompt() -> Result<()> {
let mut t = Tester::new().await?;
t.draw()?;
t.press('r').await;
t.draw()?;
snap!(t, "redb_prompt");
Ok(())
}
#[tokio::test]
async fn proxy_prompt_open() -> Result<()> {
let mut t = Tester::new().await?;
glues_tui::config::update(LAST_PROXY_URL, "").await;
t.draw()?;
t.press('p').await;
t.draw()?;
snap!(t, "proxy_prompt_open");
t.type_str("http://127.0.0.1:9").await;
t.key(KeyCode::Enter).await;
t.draw()?;
snap!(t, "proxy_token_prompt");
t.type_str("secret").await;
t.key(KeyCode::Enter).await;
t.draw()?;
snap!(t, "proxy_connect_error");
glues_tui::config::update(LAST_PROXY_URL, "").await;
Ok(())
}
#[tokio::test]
async fn theme_dialog_open() -> Result<()> {
let mut t = Tester::new().await?;
t.draw()?;
t.press('t').await;
t.draw()?;
snap!(t, "theme_dialog_open");
Ok(())
}