@suitest/smst
v4.13.0
Published
UNIST definition and JSX factory for Suitest test lines rendering
Downloads
20,946
Readme
SMST
Suitest message syntax tree.
Suitest flavour of the unist domain-specific syntax tree, designed to express test line definitions, results and other user-facing messages. SMST can be used to render messages in plain text, text with ANSI styling and HTML.
Nodes
Text
Inline plain text.
interface Text {
type: "text"
value: string
}
Subject
Inline text, that represents test line subject name
interface Subject <: Text {
type: "subject"
}
See Text.
Input
Inline text, that represents user-defined values in test lines, e.g. expectations.
interface Input <: Text {
type: "input"
}
See Text.
Code
Inline code.
interface Code <: Text {
type: "code"
}
See Text.
Paragraph
A collection of simple text nodes.
interface Paragraph {
type: "paragraph"
children: InlineText[]
}
See InlineText
CodeBlock
A block of code.
interface CodeBlock {
type: "code-block"
language: "javascript" | "brightscript"
value: string
}
See Paragraph.
Property
A single prop in the properties table.
interface Property {
type: "prop"
prop: Paragraph
comparator: string
expectedValue: Paragraph
actualValue: [Paragraph | CodeBlock]
status: ["success" | "failure"]
}
Properties
A simple table, where each row represents a property
interface Properties {
type: "props"
children: Property[]
}
See Property.
Condition
A test line condition. Could be used in assertions or as a part of conditional line.
For example, element [my element] exists
is a condition and can be used in such lines:
Assert element [my element] exists timeout 2s
Press button OK only if element [my element] exists
Condition consists of title and optional Properties table. Could also include result status when rendering test line result.
interface Condition {
type: "condition"
title: Paragraph
children: [Properties]
status: ["success" | "fail"]
}
See Paragraph and Properties.
TestLine
Represent a single Suitest test line.
interface TestLine {
type: "test-line"
title: Paragraph
children: [(Properties | Condition)[]]
status: ["success" | "fatal" | "fail" | "warning" | "exit" | "excluded"]
}
See Paragraph, Properties and [Condition][dfn-condition]
TestLineResult
Test line result is a wrapper around TestLine, that also includes execution results for that line.
interface TestLineResult {
type: "test-line-result"
level: "success" | "fatal" | "fail" | "warning" | "exit" | "excluded"
children: TestLine
message: [Paragraph],
screenhost: [string],
}
Enumeration
InlineText
Any inline text node.
type InlineText = Text | Subject | Input | Code