SagaSaga
Standard Library

Std.Test

Test framework with assertions, grouping, and focused/skipped test support.

Types

TestMode

type TestMode =
  | Normal
  | OnlyMode
  | SkipMode

TestResult

record TestResult {
  passed: Int,
  failed: Int,
  skipped: Int
}

Effects

Test

effect Test {
  fun assert : (ok: Bool) -> (msg: String) -> Unit
}

Effect for assertions inside a single test body.

Testing

effect Testing {
  fun register_test : (name: String) -> (mode: TestMode) -> (body: Unit -> Unit needs {Test}) -> Unit
  fun enter_group : (name: String) -> Unit
  fun leave_group : Unit -> Unit
}

Effect for defining tests and groups during collection.

Functions

test

fun test : (name: String) -> (body: Unit -> Unit needs {Test}) -> Unit needs {Testing}

only

fun only : (name: String) -> (body: Unit -> Unit needs {Test}) -> Unit needs {Testing}

skip

fun skip : (name: String) -> (body: Unit -> Unit needs {Test}) -> Unit needs {Testing}

describe

fun describe : (name: String) -> (body: Unit -> Unit needs {Testing, ..e}) -> Unit needs {Testing, ..e}

run_modules

fun run_modules : List (String, Unit -> Unit needs {Testing}) -> Unit

assert_eq

fun assert_eq : (a: x) -> (b: x) -> Unit needs {Test} where {x: Debug + Eq}

assert_neq

fun assert_neq : (a: x) -> (b: x) -> Unit needs {Test} where {x: Debug + Eq}

assert_gt

fun assert_gt : a -> a -> Unit needs {Test} where {a: Debug + Ord}

assert_lt

fun assert_lt : (a: x) -> (b: x) -> Unit needs {Test} where {x: Debug + Ord}

assert_true

fun assert_true : Bool -> Unit needs {Test}

assert_false

fun assert_false : Bool -> Unit needs {Test}

assert_just

fun assert_just : Maybe a -> Unit needs {Test} where {a: Debug}

assert_nothing

fun assert_nothing : Maybe a -> Unit needs {Test}

assert_ok

fun assert_ok : Result a b -> Unit needs {Test} where {b: Debug}

assert_err

fun assert_err : Result a b -> Unit needs {Test} where {a: Debug}

assert_panics

fun assert_panics : (f: Unit -> a) -> Unit needs {Test}