nope/test/testNopeObservable.ts
2021-10-19 21:27:30 +02:00

61 lines
1.4 KiB
TypeScript

import { sleep } from "../lib/helpers/async";
import { NopeObservable } from "../lib/observables/nopeObservable";
import { addObervableToDispatcher, generateConnectedLoaders } from "../lib/testing/generators";
import { generateBenchmarkFunction } from "../modules/funcs/generateBenchmarkFunction";
const observable = new NopeObservable<number>();
observable.setContent(0);
const max = 10000000;
const benchmark = generateBenchmarkFunction(max, "Test");
const observer = observable.subscribe(benchmark, { skipCurrent: true });
let i = 1;
while (i <= max * 5) {
observable.setContent(i);
i++;
}
i = 10;
observable.subscribe((...args) => {
console.log("shoud not receive 10:", ...args);
}, { skipCurrent: true });
observable.setContent(1337);
async function main() {
const loaders = await generateConnectedLoaders({
logLevel: "info"
});
const sender = await addObervableToDispatcher(loaders[0].dispatcher, {
topic: "test",
schema: {},
mode: "publish",
}, "data");
await sleep(100);
const receiver = await addObervableToDispatcher(loaders[1].dispatcher, {
topic: "test",
schema: {},
mode: "subscribe",
});
await sleep(100);
console.log("should receive 'test' and 'update'");
receiver.subscribe((data) => console.log("receiver:", data));
sender.subscribe((data) => console.log("sender :", data));
sender.setContent("update");
await sleep(100);
process.exit(0);
}
main().catch(console.error);