# Inlined Code Test Reference

This reference contains functionality you can use for your inlined Litexa code tests. For more information, refer to the Testing Chapter of the Book.

If you'd like to look at the source code for this test library, go to the litexa package's src/parser/testing.coffee's TestLibrary class.

# Test.error(message)

Throws an error with the message specified.

# Test.equal(a, b)

Checks a==b and throws an error if it is false.

# Test.check(condition)

Takes in a function condition and evaluates it on its truthiness value (See CoffeeScript truthiness values reference).

# Test.report(message)

Outputs the message specified with a t! prepended to it. The message can be an object.

# Test.warning(message)

Outputs the message specified with a t✘! prepended to it. The message can be an object.

# Test.expect(name, condition)

This specifies an individual test case, with name being the name of your test, and condition being the function that executes the test contents. The name will be the reference used in your litexa test output.

For example, this is a test called "stuff to work":

Test.expect("stuff to work", function() {
  Test.equal(typeof (todayName()), 'string');
  Test.check(function() {
    return addNumbers(1, 2, 3) === 6;
  return Test.report(`today is ${todayName()}`);

# Test.directives(title, directives)

This is equivalent to directive in your Litexa tests, but applicable to your inlined code tests. The title field is the name of your directive test that will be used in output. The directive field takes in a directive or an array of directives. It will perform validation checks against the input directives and output any violations to the console. Otherwise, if it passes validation, it will output an "OK".

For example, this is a test with valid syntax, but wouldn't pass if simply added to a skill:

Test.expect("dummy directive testing", function() {
  Test.directives("dummy directive", {type: "dummy"})