mirror of
https://github.com/Kir-Antipov/mc-publish.git
synced 2024-11-30 04:10:55 -05:00
59 lines
2 KiB
TypeScript
59 lines
2 KiB
TypeScript
import { describe, test, expect } from "@jest/globals";
|
|
import sleep from "../../../../src/utils/sleep";
|
|
import Stopwatch from "../../../../src/utils/diagnostics/stopwatch";
|
|
|
|
describe("Stopwatch", () => {
|
|
test("base functionality of Stopwatch works", async () => {
|
|
const stopwatch = new Stopwatch();
|
|
expect(stopwatch.isRunning).toBe(false);
|
|
expect(stopwatch.elapsedMilliseconds).toBe(0);
|
|
expect(stopwatch.start()).toBe(true);
|
|
await sleep(100);
|
|
expect(stopwatch.start()).toBe(false);
|
|
expect(stopwatch.stop()).toBe(true);
|
|
expect(stopwatch.stop()).toBe(false);
|
|
expect(stopwatch.elapsedMilliseconds).toBeGreaterThan(50);
|
|
expect(stopwatch.elapsedMilliseconds).toBeLessThan(200);
|
|
stopwatch.reset();
|
|
expect(stopwatch.elapsedMilliseconds).toBe(0);
|
|
});
|
|
|
|
test("Stopwatch executes callbacks on start and end", async () => {
|
|
let started = 0;
|
|
let stopped = 0;
|
|
let ms = 0;
|
|
|
|
const stopwatch = new Stopwatch(() => ++started, elapsedMilliseconds => {
|
|
++stopped;
|
|
ms = elapsedMilliseconds;
|
|
});
|
|
|
|
expect(stopwatch.isRunning).toBe(false);
|
|
expect(stopwatch.elapsedMilliseconds).toBe(0);
|
|
|
|
expect(stopwatch.start()).toBe(true);
|
|
expect(started).toBe(1);
|
|
expect(stopped).toBe(0);
|
|
|
|
await sleep(100);
|
|
|
|
expect(stopwatch.start()).toBe(false);
|
|
expect(started).toBe(1);
|
|
expect(stopped).toBe(0);
|
|
|
|
expect(stopwatch.stop()).toBe(true);
|
|
expect(started).toBe(1);
|
|
expect(stopped).toBe(1);
|
|
|
|
expect(stopwatch.stop()).toBe(false);
|
|
expect(started).toBe(1);
|
|
expect(stopped).toBe(1);
|
|
|
|
expect(stopwatch.elapsedMilliseconds).toBeGreaterThan(50);
|
|
expect(stopwatch.elapsedMilliseconds).toBeLessThan(200);
|
|
expect(stopwatch.elapsedMilliseconds).toBe(ms);
|
|
|
|
stopwatch.reset();
|
|
expect(stopwatch.elapsedMilliseconds).toBe(0);
|
|
});
|
|
});
|