nope/test/testNopeObservable.ts

61 lines
1.4 KiB
TypeScript
Raw Normal View History

2021-10-19 08:01:00 +00:00
import { sleep } from "../lib/helpers/async";
2021-10-18 06:02:29 +00:00
import { NopeObservable } from "../lib/observables/nopeObservable";
2021-10-19 08:01:00 +00:00
import { addObervableToDispatcher, generateConnectedLoaders } from "../lib/testing/generators";
2021-10-19 19:27:30 +00:00
import { generateBenchmarkFunction } from "../modules/funcs/generateBenchmarkFunction";
2020-08-21 14:49:48 +00:00
2021-10-18 06:02:29 +00:00
const observable = new NopeObservable<number>();
observable.setContent(0);
2021-10-19 19:27:30 +00:00
const max = 10000000;
const benchmark = generateBenchmarkFunction(max, "Test");
const observer = observable.subscribe(benchmark, { skipCurrent: true });
2020-08-21 14:49:48 +00:00
2021-10-18 06:02:29 +00:00
let i = 1;
2020-08-21 14:49:48 +00:00
2021-10-19 19:27:30 +00:00
while (i <= max * 5) {
2021-10-18 06:02:29 +00:00
observable.setContent(i);
i++;
}
2020-08-30 07:43:59 +00:00
2021-10-18 06:02:29 +00:00
i = 10;
2020-08-30 07:43:59 +00:00
2021-10-18 06:02:29 +00:00
observable.subscribe((...args) => {
console.log("shoud not receive 10:", ...args);
2021-10-19 19:27:30 +00:00
}, { skipCurrent: true });
2021-10-18 06:02:29 +00:00
2021-10-19 08:01:00 +00:00
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);