Skip to content

Commit 8fecc9c

Browse files
committed
Add KStorage unit test
1 parent c07d1b4 commit 8fecc9c

File tree

1 file changed

+55
-0
lines changed

1 file changed

+55
-0
lines changed

test/unit/KStorage.test.ts

+55
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
import { EventEmitter } from "events";
2+
import { KStorage } from "../../src/lib/KStorage";
3+
import * as proxyquire from "proxyquire";
4+
import * as assert from "assert";
5+
import * as most from "most";
6+
7+
class FakeKafka extends EventEmitter {
8+
constructor () {
9+
super();
10+
}
11+
}
12+
13+
describe("KStorage UNIT", function () {
14+
it("should store incoming values under corresponding keys, and unsubscribe when closed", function (done) {
15+
const kafka = new FakeKafka();
16+
const store = new KStorage({});
17+
const stream$ = most.fromEvent("message", kafka)
18+
.map((value: any) => value.toLowerCase().split(" "))
19+
.map(value => ({ key: value[0], "value": value[1] }))
20+
.recoverWith(e => {
21+
console.error(e);
22+
return most.empty();
23+
});
24+
25+
store.start(stream$.subscribe(store));
26+
stream$.forEach(value => console.log(value));
27+
28+
kafka.emit("message", "key1 value1");
29+
kafka.emit("message", "key2 value2");
30+
31+
setTimeout(() => {
32+
store.close();
33+
kafka.emit("message", "key3 value3");
34+
35+
setTimeout(() => {
36+
store
37+
.get("key1")
38+
.then(v => assert.equal(v, "value1"))
39+
.catch(e => console.error(e));
40+
41+
store
42+
.get("key2")
43+
.then(v => assert.equal(v, "value2"))
44+
.catch(e => console.error(e));
45+
46+
store
47+
.get("key3")
48+
.then(v => assert.equal(v, undefined))
49+
.catch(e => console.error(e));
50+
51+
done();
52+
});
53+
});
54+
});
55+
});

0 commit comments

Comments
 (0)