@gooddata/gooddata-js
Version:
GoodData JavaScript SDK
34 lines (30 loc) • 901 B
text/typescript
// (C) 2007-2018 GoodData Corporation
import { createSubject } from "../async";
function delay(timeout = 0) {
return new Promise(resolve => {
setTimeout(() => {
resolve();
}, timeout);
});
}
describe("createSubject", () => {
it("should keep stream opened after error", done => {
const error = jest.fn();
let successCalls = 0;
const subject = createSubject(() => {
successCalls++;
if (successCalls === 2) {
expect(error).toHaveBeenCalledTimes(1);
subject.unsubscribe();
done();
}
}, error);
subject.next(Promise.resolve("a"));
delay().then(() => {
subject.next(Promise.reject("b"));
return delay().then(() => {
subject.next(Promise.resolve("c"));
});
});
});
});