Colour agent logs
This commit is contained in:
parent
3471a9c498
commit
1be1764db6
2 changed files with 50 additions and 9 deletions
|
|
@ -1,8 +1,9 @@
|
|||
import { choose } from "../utils/choose";
|
||||
import { v4 as uuidv4 } from "uuid";
|
||||
import { assert } from "../utils/assert";
|
||||
import { SyncSettings } from "sync-client";
|
||||
import { LogLevel, SyncSettings } from "sync-client";
|
||||
import { MockClient } from "./mock-client";
|
||||
import chalk from "chalk";
|
||||
|
||||
export class MockAgent extends MockClient {
|
||||
private writtenContents: Array<string> = [];
|
||||
|
|
@ -11,11 +12,39 @@ export class MockAgent extends MockClient {
|
|||
public constructor(
|
||||
globalFiles: Record<string, Uint8Array>,
|
||||
initialSettings: Partial<SyncSettings>,
|
||||
private readonly name: string
|
||||
public readonly name: string,
|
||||
private readonly color: string
|
||||
) {
|
||||
super(globalFiles, initialSettings);
|
||||
}
|
||||
|
||||
public async init(): Promise<void> {
|
||||
await super.init();
|
||||
|
||||
this.client.logger.addOnMessageListener((message) => {
|
||||
const formatted = chalk.hex(this.color)(
|
||||
`[${this.name}] ${message.timestamp.toISOString()} ${message.level} ${message.message}`
|
||||
);
|
||||
|
||||
switch (message.level) {
|
||||
case LogLevel.ERROR:
|
||||
console.error(formatted);
|
||||
break;
|
||||
case LogLevel.WARNING:
|
||||
console.warn(formatted);
|
||||
break;
|
||||
case LogLevel.INFO:
|
||||
console.info(formatted);
|
||||
break;
|
||||
case LogLevel.DEBUG:
|
||||
console.debug(formatted);
|
||||
break;
|
||||
}
|
||||
});
|
||||
|
||||
this.client.logger.info("Agent initialized");
|
||||
}
|
||||
|
||||
public async act(): Promise<void> {
|
||||
let options: Array<() => Promise<unknown>> = [
|
||||
() =>
|
||||
|
|
|
|||
|
|
@ -7,20 +7,21 @@ const globalFiles: Record<string, Uint8Array> = {};
|
|||
const iterations = 100;
|
||||
|
||||
async function runTest(): Promise<void> {
|
||||
console.info("Starting test...");
|
||||
console.info("Starting test");
|
||||
|
||||
const initialSettings: Partial<SyncSettings> = {
|
||||
isSyncEnabled: true,
|
||||
token: "token",
|
||||
vaultName: uuidv4()
|
||||
vaultName: uuidv4(),
|
||||
remoteUri: "http://localhost:3030"
|
||||
};
|
||||
|
||||
const clients = [
|
||||
new MockAgent(globalFiles, initialSettings, "agent-1"),
|
||||
new MockAgent(globalFiles, initialSettings, "agent-2"),
|
||||
new MockAgent(globalFiles, initialSettings, "agent-3"),
|
||||
new MockAgent(globalFiles, initialSettings, "agent-4"),
|
||||
new MockAgent(globalFiles, initialSettings, "agent-5")
|
||||
new MockAgent(globalFiles, initialSettings, "agent-1", "#ff0000"),
|
||||
new MockAgent(globalFiles, initialSettings, "agent-2", "#00ff00"),
|
||||
new MockAgent(globalFiles, initialSettings, "agent-3", "#0000ff"),
|
||||
new MockAgent(globalFiles, initialSettings, "agent-4", "#ffaa00"),
|
||||
new MockAgent(globalFiles, initialSettings, "agent-5", "#00ffaa")
|
||||
];
|
||||
|
||||
await Promise.all(clients.map((client) => client.init()));
|
||||
|
|
@ -32,9 +33,20 @@ async function runTest(): Promise<void> {
|
|||
|
||||
await Promise.all(clients.map((client) => client.finish()));
|
||||
|
||||
console.info("Agents finished successfully");
|
||||
|
||||
clients.forEach((client) => {
|
||||
console.info(`Checking consistency for ${client.name}`);
|
||||
client.assertFileSystemIsConsistent();
|
||||
console.info(`Consistency check for ${client.name} passed`);
|
||||
});
|
||||
|
||||
console.info("File systems found to be consistent");
|
||||
|
||||
clients.forEach((client) => {
|
||||
console.info(`Checking content for ${client.name}`);
|
||||
client.assertAllContentIsPresentOnce();
|
||||
console.info(`Content check for ${client.name} passed`);
|
||||
});
|
||||
|
||||
console.info("Test completed successfully");
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue