TraceSourceTests.ts
69 lines
| 1.6 KiB
| video/mp2t
|
TypeScriptLexer
|
|
r50 | import { TraceSource, DebugLevel } from "@implab/core/log/TraceSource"; | ||
| import * as tape from "tape"; | ||||
| import { TapeWriter } from "./TestTraits"; | ||||
| const sourceId = "test/TraceSourceTests"; | ||||
| tape("trace message", t => { | ||||
| const trace = TraceSource.get(sourceId); | ||||
| trace.level = DebugLevel; | ||||
| const h = trace.events.on(ev => { | ||||
| t.equal(ev.source, trace, "sender should be the current trace source"); | ||||
| t.equal(ev.level, DebugLevel, "level should be debug level"); | ||||
| t.equal(ev.arg, "Hello, World!", "The message should be a formatted message"); | ||||
| t.end(); | ||||
| }); | ||||
| trace.debug("Hello, {0}!", "World"); | ||||
| h.destroy(); | ||||
| }); | ||||
| tape("trace event", t => { | ||||
| const trace = TraceSource.get(sourceId); | ||||
| trace.level = DebugLevel; | ||||
| const event = { | ||||
| name: "custom event" | ||||
| }; | ||||
| const h = trace.events.on(ev => { | ||||
| t.equal(ev.source, trace, "sender should be the current trace source"); | ||||
| t.equal(ev.level, DebugLevel, "level should be debug level"); | ||||
| t.equal(ev.arg, event, "The message should be the specified object"); | ||||
| t.end(); | ||||
| }); | ||||
| trace.traceEvent(DebugLevel, event); | ||||
| h.destroy(); | ||||
| }); | ||||
| tape("tape comment writer", async t => { | ||||
| const writer = new TapeWriter(t); | ||||
| TraceSource.on(ts => { | ||||
| writer.writeEvents(ts.events); | ||||
| }); | ||||
| const trace = TraceSource.get(sourceId); | ||||
| trace.level = DebugLevel; | ||||
| trace.log("Hello, {0}!", "World"); | ||||
| trace.log("Multi\n line"); | ||||
| trace.warn("Look at me!"); | ||||
| trace.error("DIE!"); | ||||
| writer.destroy(); | ||||
| trace.log("You shouldn't see it!"); | ||||
| t.comment("DONE"); | ||||
| t.end(); | ||||
| }); | ||||
