##// END OF EJS Templates
added CancellationTests...
added CancellationTests added cancellations docs [ru]

File last commit:

r18:a8dda6a00a16 propose cancellat...
r18:a8dda6a00a16 propose cancellat...
Show More
TestTraits.ts
62 lines | 1.8 KiB | video/mp2t | TypeScriptLexer
cin
core/safe ported to typescript
r16 import { IObservable, ICancellation, IDestroyable } from "../../build/dist/interfaces";
import * as TraceEvent from '../../build/dist/log/TraceEvent';
import { Cancellation } from "../../build/dist/Cancellation";
import * as TraceSource from "../../build/dist/log/TraceSource";
cin
fixed format-compile bug while formatting strings with new line symbols....
r15 import * as tape from 'tape';
cin
core/safe ported to typescript
r16 import { argumentNotNull } from "../../build/dist/safe";
cin
fixed format-compile bug while formatting strings with new line symbols....
r15
export class TapeWriter implements IDestroyable {
readonly _tape: tape.Test
_subscriptions = new Array<IDestroyable>();
constructor(tape: tape.Test) {
argumentNotNull(tape, "tape");
this._tape = tape;
}
writeEvents(source: IObservable<TraceEvent>, ct: ICancellation = Cancellation.none) {
let subscription = source.on(this.writeEvent.bind(this));
if (ct.isSupported()) {
ct.register(subscription.destroy.bind(subscription));
}
this._subscriptions.push(subscription);
}
writeEvent(next: TraceEvent) {
if (next.level >= TraceSource.LogLevel) {
this._tape.comment("LOG " + next.arg);
cin
added CancellationTests...
r18 } else if (next.level >= TraceSource.WarnLevel) {
cin
fixed format-compile bug while formatting strings with new line symbols....
r15 this._tape.comment("WARN " + next.arg);
} else {
this._tape.comment("ERROR " + next.arg);
}
}
destroy() {
this._subscriptions.forEach(x => x.destroy());
}
cin
added CancellationTests...
r18 }
export async function delay(timeout: number, ct: ICancellation = Cancellation.none) {
let un: IDestroyable;
try {
await new Promise((resolve, reject) => {
if (ct.isRequested()) {
un = ct.register(reject);
} else {
let ht = setTimeout(() => {
resolve();
}, timeout);
un = ct.register(e => {
clearTimeout(ht);
reject(e);
});
}
});
} finally {
if(un)
un.destroy();
};
cin
fixed format-compile bug while formatting strings with new line symbols....
r15 }