dont show all 20 send messages

support muting a logger and chaining calls
pull/21833/head
Bruno Windels 2018-09-12 09:47:57 +02:00
parent dcf96e1461
commit 244d5b0851
2 changed files with 29 additions and 5 deletions

View File

@ -111,8 +111,11 @@ async function aLazyLoadingTest(alice, bob, charlies) {
await bob.delay(500);
await charlies.join(alias);
const messageRange = range(1, 20);
bob.log.step("sends 20 messages").mute();
for(let i = 20; i >= 1; --i) {
await sendMessage(bob, `I will only say this ${i} time(s)!`);
}
bob.log.unmute().done();
await join(alice, room);
}

View File

@ -35,25 +35,46 @@ class Logger {
constructor(username) {
this.indent = 0;
this.username = username;
this.muted = false;
}
startGroup(description) {
const indent = " ".repeat(this.indent * 2);
console.log(`${indent} * ${this.username} ${description}:`);
if (!this.muted) {
const indent = " ".repeat(this.indent * 2);
console.log(`${indent} * ${this.username} ${description}:`);
}
this.indent += 1;
return this;
}
endGroup() {
this.indent -= 1;
return this;
}
step(description) {
const indent = " ".repeat(this.indent * 2);
process.stdout.write(`${indent} * ${this.username} ${description} ... `);
if (!this.muted) {
const indent = " ".repeat(this.indent * 2);
process.stdout.write(`${indent} * ${this.username} ${description} ... `);
}
return this;
}
done(status = "done") {
process.stdout.write(status + "\n");
if (!this.muted) {
process.stdout.write(status + "\n");
}
return this;
}
mute() {
this.muted = true;
return this;
}
unmute() {
this.muted = false;
return this;
}
}