test("fiberConnWrapper", ()=>{ stub(util, 'Fiber').returns({run: v.run = stub()}); koru.fiberConnWrapper((conn, data)=>{ v.thread = util.merge({This: conn, data: data}, util.thread); }, v.conn = {userId: 'u123', db: v.mydb = {id: "mydb"}}, v.data = [1, 2]); assert.called(v.run); util.Fiber.args(0, 0)(); assert(v.thread); assert.equals(v.thread.userId, "u123"); assert.same(v.thread.db, v.mydb); assert.same(v.thread.connection, v.conn); assert.same(v.thread.This, v.conn); assert.same(v.thread.data, v.data); util.Fiber.reset(); stub(koru, 'error'); koru.fiberConnWrapper(()=>{throw new Error("Foo")}, v.conn, v.data); util.Fiber.args(0, 0)(); assert.calledWith(koru.error, TH.match(/Foo/)); /** can't restart fiber **/ koru.error.reset(); util.Fiber.args(0, 0)(); refute.called(koru.error); });
test("runFiber", ()=>{ stub(util, 'Fiber').returns({run: v.run = stub()}); koru.runFiber(() => {v.success = true}); assert.called(v.run); util.Fiber.args(0, 0)(); assert(v.success); util.Fiber.reset(); stub(koru, 'error'); koru.runFiber(()=>{throw new Error("Foo")}); util.Fiber.args(0, 0)(); assert.calledWith(koru.error, TH.match(/Foo/)); /** can't restart fiber **/ koru.error.reset(); util.Fiber.args(0, 0)(); refute.called(koru.error); });