import {IndexNode} from "../../index/IndexNode.js";
import {Base} from "../../util/Common.js";
import {LogLevel} from "../../util/role/CanLog.js";


export class GenericAssertion extends IndexNode(Base) {
    isTodo          : boolean
}


export class Assertion extends GenericAssertion {
    name            : string

    passed          : boolean

    description     : string

    annotation      : string

    sourceLine      : number
}


export class WaitForAssertion extends Assertion {
    completed       : boolean   = false
}


export class Exception extends GenericAssertion {
    message         : string
    stack           : string
}


export class LogMessage extends IndexNode(Base) {
    level           : LogLevel

    text            : string
}


export class SubTest extends IndexNode(Base) {
    name            : string

    testType        : 'it' | 'describe'
}
