Gleeunit, currently, it has an unconfigurable timeout time. Which is a problem for running browser based tests, since they tend to take longer than the timeout permits.
For browser tests I currently recommend using qcheck_gleeunit_utils to run your tests. Since it allows you to set a timeout for your tests.
The ‘getting started’ would look something like this with qcheck_gleeunit_utils integration:
import butterbee
import butterbee/by
import butterbee/config/browser
import butterbee/input
import butterbee/nodes
import butterbee/query
import butterbee/webdriver
import gleeunit
import qcheck_gleeunit_utils/test_spec
pub fn minimal_example_test_() {
use <- test_spec.make_with_timeout(30)
let output =
webdriver.new(browser.Firefox)
|> webdriver.goto("https://gleam.run/")
|> query.node(by.xpath(
"//div[@class='hero']//a[@href='https://tour.gleam.run/']",
))
|> input.click(input.LeftClick)
|> query.node(by.css("pre.log"))
|> nodes.inner_text()
|> webdriver.close()
assert output == "Hello, Joe!\n"
}