Current section
Files
Jump to
Current section
Files
src/showtime/tests/test.gleam
import showtime/tests/should
import showtime/tests/meta.{type Meta}
import gleam/io
pub type Test {
Test(meta: Meta, test_function: fn() -> Nil)
}
pub type MetaShould(t) {
MetaShould(equal: fn(t, t) -> Nil, not_equal: fn(t, t) -> Nil)
}
pub fn test(meta: Meta, test_function: fn(Meta) -> Nil) {
Test(meta, fn() { test_function(meta) })
}
pub fn with_meta(meta: Meta, test_function: fn(MetaShould(a)) -> Nil) {
Test(
meta,
fn() {
test_function(MetaShould(
fn(a, b) { equal(a, b, meta) },
fn(a, b) { not_equal(a, b, meta) },
))
},
)
}
pub fn equal(a: t, b: t, meta: Meta) {
io.debug(a)
io.debug(b)
should.equal_meta(a, b, meta)
}
pub fn not_equal(a: t, b: t, meta: Meta) {
should.equal_meta(a, b, meta)
}
pub fn be_ok(a: Result(o, e), meta: Meta) {
should.be_ok_meta(a, meta)
}
pub fn be_error(a: Result(o, e), meta: Meta) {
should.be_error_meta(a, meta)
}
pub fn fail(meta: Meta) {
should.fail_meta(meta)
}
pub fn be_true(a: Bool, meta: Meta) {
should.be_true_meta(a, meta)
}
pub fn be_false(a: Bool, meta: Meta) {
should.be_false_meta(a, meta)
}