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