Tone.js/Tone/core/util/Debug.test.ts
Yotam Mann be634eb093 running all logging and warning through Logger object
makes it possible to implement a Logger interface to visualize logging.
2019-09-20 00:31:43 -04:00

42 lines
1.1 KiB
TypeScript

import { expect } from "chai";
import { ToneOscillatorNode } from "../../source/oscillator/ToneOscillatorNode";
import { setLogger } from "./Debug";
import { theWindow } from "../context/AudioContext";
describe("Debug", () => {
it("can log a class when that class is set to 'debug'", () => {
const osc = new ToneOscillatorNode();
osc.debug = true;
let loggerInvoked = false;
let warnInvoked = false;
setLogger({
log: () => loggerInvoked = true,
warn: () => warnInvoked = true
});
osc.start();
expect(loggerInvoked).to.be.true;
expect(warnInvoked).to.be.false;
osc.dispose();
setLogger(console);
});
it("can log a class when the window is set with that class name", () => {
// @ts-ignore
theWindow.TONE_DEBUG_CLASS = "ToneOscillatorNode";
const osc = new ToneOscillatorNode();
let loggerInvoked = false;
let warnInvoked = false;
setLogger({
log: () => loggerInvoked = true,
warn: () => warnInvoked = true
});
osc.start();
expect(loggerInvoked).to.be.true;
expect(warnInvoked).to.be.false;
setLogger(console);
// @ts-ignore
theWindow.TONE_DEBUG_CLASS = undefined;
osc.dispose();
});
});