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.

Search Document