UNPKG

observer-ax

Version:
49 lines (45 loc) 1.67 kB
import { ConcreteSubjectObserver, NotifyObject, Observer, } from '../app'; describe("Test Case Observer", () => { class Concrete implements Observer { data: NotifyObject; options?: any; update(data: NotifyObject, options?: any) { this.data = data; this.options = options; expect(data).toBeDefined(); } subscribe(callback: (data: any, options?: any) => any) { callback(this.data.data); } } beforeEach(() => { }); it("test #1 => notify", async () => { try { const concretSubject = new ConcreteSubjectObserver(); let clazz: Observer = new Concrete(); concretSubject.asObserver().subscribe((data: any, options: any) => console.log("subscribe", data)); concretSubject.attach(clazz); concretSubject.items = [{ data: { data: 'b' }, topic: "ALL", tries: 0 }]; concretSubject.items = [{ data: { data: 'a' }, topic: "ALL", tries: 0 }]; concretSubject.notify(); } catch (error) { console.error(error); expect(error).toBeDefined(); } }); it("test #2 => notifyData", async () => { try { const concretSubject = new ConcreteSubjectObserver(); let clazz: Observer = new Concrete(); concretSubject.attach(clazz); concretSubject.notifyNow({ data: { data: 'c' }, topic: "ALL", tries: 0 }); } catch (error) { console.error(error); expect(error).toBeDefined(); } }); });