vxml_pipeline/testing
Test data, collections, and runners for desugarers.
Assertive tests describe a complete VXML transformation as source and expected VXML strings. A collection binds those cases to one desugarer constructor. The runner parses both strings, applies the desugarer, and compares the resulting VXML while presenting blame-aware diagnostics.
Types
One executable desugarer test.
pub type AssertiveTest =
@internal AssertiveTest
A named collection of tests belonging to one desugarer.
pub type AssertiveTestCollection =
@internal AssertiveTestCollection
Source, expected output, and parameter data for a parameterized desugarer.
pub type AssertiveTestData(a) =
@internal AssertiveTestData(a)
Source and expected output data for a parameterless desugarer.
pub type AssertiveTestDataNoParam =
@internal AssertiveTestDataNoParam
Test data for a parameterless __outside desugarer.
pub type AssertiveTestDataNoParamWithOutside =
@internal AssertiveTestDataNoParamWithOutside
Test data for a parameterized __outside desugarer.
pub type AssertiveTestDataWithOutside(a) =
@internal AssertiveTestDataWithOutside(a)
A parse, transformation, or comparison failure from one assertive test.
pub type AssertiveTestError =
@internal AssertiveTestError
Results for all tests belonging to one desugarer.
pub type AssertiveTestResults {
AssertiveTestResults(
desugarer_name: String,
results: List(Result(Nil, AssertiveTestError)),
)
}
Constructors
-
AssertiveTestResults( desugarer_name: String, results: List(Result(Nil, AssertiveTestError)), )
Values
pub fn all_passed(results: List(AssertiveTestResults)) -> Bool
Returns whether every result in every supplied collection passed.
pub fn collection(
name name: String,
data data: List(AssertiveTestData(a)),
constructor constructor: fn(a) -> core.Desugarer,
) -> AssertiveTestCollection
Builds a named test collection for a parameterized desugarer constructor.
pub fn collection_no_param(
name name: String,
data data: List(AssertiveTestDataNoParam),
constructor constructor: fn() -> core.Desugarer,
) -> AssertiveTestCollection
Builds a named test collection for a parameterless desugarer constructor.
pub fn collection_no_param_with_outside(
name name: String,
data data: List(AssertiveTestDataNoParamWithOutside),
constructor constructor: fn(List(String)) -> core.Desugarer,
) -> AssertiveTestCollection
Builds a named test collection for a parameterless __outside constructor.
pub fn collection_with_outside(
name name: String,
data data: List(AssertiveTestDataWithOutside(a)),
constructor constructor: fn(a, List(String)) -> core.Desugarer,
) -> AssertiveTestCollection
Builds a named test collection for a parameterized __outside constructor.
pub fn data(
param param: a,
source source: String,
expected expected: String,
) -> AssertiveTestData(a)
Defines one test case for a parameterized desugarer.
pub fn data_no_param(
source source: String,
expected expected: String,
) -> AssertiveTestDataNoParam
Defines one test case for a parameterless desugarer.
pub fn data_no_param_with_outside(
outside outside: List(String),
source source: String,
expected expected: String,
) -> AssertiveTestDataNoParamWithOutside
Defines one test case for a parameterless __outside desugarer.
pub fn data_with_outside(
param param: a,
outside outside: List(String),
source source: String,
expected expected: String,
) -> AssertiveTestDataWithOutside(a)
Defines one test case for a parameterized __outside desugarer.
pub fn run(
collections: List(AssertiveTestCollection),
) -> List(AssertiveTestResults)
Runs every test in each supplied collection without printing a summary.
pub fn run_test(
name: String,
assertive_test: AssertiveTest,
) -> Result(Nil, AssertiveTestError)
Runs one already-constructed assertive test.
pub fn test_desugarers(
collection_builders: List(fn() -> AssertiveTestCollection),
requested_names: List(String),
) -> Result(Nil, String)
Run some or all tests from a desugarer collection registry.
An empty list of names selects every collection. Names may optionally end
in .gleam.
pub fn test_desugarers_content(
collection_builders: List(fn() -> AssertiveTestCollection),
requested_names: List(String),
) -> Result(Nil, String)
Run local desugarer tests without closing the surrounding output block.