From 1a2bfa5df91ad2c426bc02c98bc4745a88c9ffe5 Mon Sep 17 00:00:00 2001
From: Xiao Gui <xgui3783@gmail.com>
Date: Tue, 27 Jul 2021 19:44:34 +0200
Subject: [PATCH] chore: fix unit tests

---
 .../layerCtrl.service.spec.ts                 | 129 +++++++++---------
 1 file changed, 66 insertions(+), 63 deletions(-)

diff --git a/src/viewerModule/nehuba/layerCtrl.service/layerCtrl.service.spec.ts b/src/viewerModule/nehuba/layerCtrl.service/layerCtrl.service.spec.ts
index e8e06c852..7e41087b1 100644
--- a/src/viewerModule/nehuba/layerCtrl.service/layerCtrl.service.spec.ts
+++ b/src/viewerModule/nehuba/layerCtrl.service/layerCtrl.service.spec.ts
@@ -28,7 +28,7 @@ describe('> layerctrl.service.ts', () => {
         'getMultiNgIdsRegionsLabelIndexMap'
       ).and.returnValue(() => getMultiNgIdsRegionsLabelIndexMapReturnVal)
       mockStore.overrideSelector(viewerStateCustomLandmarkSelector, [])
-
+      mockStore.overrideSelector(viewerStateSelectedRegionsSelector, [])
       mockStore.overrideSelector(viewerStateSelectedTemplateSelector, {})
       mockStore.overrideSelector(viewerStateSelectedParcellationSelector, {})
     })
@@ -48,7 +48,7 @@ describe('> layerctrl.service.ts', () => {
             expect(getMultiNgIdsRegionsLabelIndexMapSpy).toHaveBeenCalled()
           })
 
-          it('> emitted value is as expected', () => {
+          it('> emitted value is as expected', fakeAsync(() => {
             const map = new Map<number, layerCtrlUtil.IRegion>()
             getMultiNgIdsRegionsLabelIndexMapReturnVal.set(
               'foo-bar',
@@ -64,19 +64,19 @@ describe('> layerctrl.service.ts', () => {
             })
 
             const service = TestBed.inject(NehubaLayerControlService)
-            expect(
-              service.setColorMap$
-            ).toBeObservable(
-              hot('a', {
-                a: {
-                  'foo-bar': {
-                    1: { red: 100, green: 200, blue: 255 },
-                    2: { red: 15, green: 15, blue: 15}
-                  }
-                }
-              })
-            )
-          })
+            let v: any
+            service.setColorMap$.subscribe(val => {
+              v = val
+            })
+            tick(32)
+            const expectedVal = {
+              'foo-bar': {
+                1: { red: 100, green: 200, blue: 255 },
+                2: { red: 15, green: 15, blue: 15}
+              }
+            }
+            expect(v).toEqual(expectedVal)
+          }))
 
         })
 
@@ -107,33 +107,34 @@ describe('> layerctrl.service.ts', () => {
             })
           })
 
-          it('> should inherit values from tmpl and parc', () => {
+          it('> should inherit values from tmpl and parc',  fakeAsync(() => {
 
             const service = TestBed.inject(NehubaLayerControlService)
-            expect(
-              service.setColorMap$
-            ).toBeObservable(
-              hot('a', {
-                a: {
-                  'bazz': {
-                    1: { red: 100, green: 100, blue: 100 },
-                    2: { red: 100, green: 100, blue: 100 },
-                    3: { red: 100, green: 100, blue: 100 },
-                  },
-                  'hello-world': {
-                    4: { red: 200, green: 200, blue: 200 },
-                    5: { red: 200, green: 200, blue: 200 },
-                    6: { red: 200, green: 200, blue: 200 },
-                    10: { red: 255, green: 255, blue: 255 },
-                    11: { red: 255, green: 255, blue: 255 },
-                    12: { red: 255, green: 255, blue: 255 },
-                  }
-                }
-              })
-            )
-          })
+            let val
+            service.setColorMap$.subscribe(v => {
+              val = v
+            })
 
-          it('> should overwrite any value if at all, from region', () => {
+            tick(32)
+
+            expect(val).toEqual({
+              'bazz': {
+                1: { red: 100, green: 100, blue: 100 },
+                2: { red: 100, green: 100, blue: 100 },
+                3: { red: 100, green: 100, blue: 100 },
+              },
+              'hello-world': {
+                4: { red: 200, green: 200, blue: 200 },
+                5: { red: 200, green: 200, blue: 200 },
+                6: { red: 200, green: 200, blue: 200 },
+                10: { red: 255, green: 255, blue: 255 },
+                11: { red: 255, green: 255, blue: 255 },
+                12: { red: 255, green: 255, blue: 255 },
+              }
+            })
+          }))
+
+          it('> should overwrite any value if at all, from region', fakeAsync(() => {
             const map = new Map<number, layerCtrlUtil.IRegion>()
             map.set(10, {
               ngId: 'hello-world',
@@ -146,29 +147,29 @@ describe('> layerctrl.service.ts', () => {
             getMultiNgIdsRegionsLabelIndexMapReturnVal.set('hello-world', map)
 
             const service = TestBed.inject(NehubaLayerControlService)
-            expect(
-              service.setColorMap$
-            ).toBeObservable(
-              hot('a', {
-                a: {
-                  'bazz': {
-                    1: { red: 100, green: 100, blue: 100 },
-                    2: { red: 100, green: 100, blue: 100 },
-                    3: { red: 100, green: 100, blue: 100 },
-                  },
-                  'hello-world': {
-                    4: { red: 200, green: 200, blue: 200 },
-                    5: { red: 200, green: 200, blue: 200 },
-                    6: { red: 200, green: 200, blue: 200 },
-                    10: { red: 255, green: 255, blue: 255 },
-                    11: { red: 255, green: 255, blue: 255 },
-                    12: { red: 255, green: 255, blue: 255 },
-                    15: { red: 0, green: 0, blue: 0 },
-                  }
-                }
-              })
-            )
-          })
+            let val
+            service.setColorMap$.subscribe(v => {
+              val = v
+            })
+
+            tick(32)
+            expect(val).toEqual({
+              'bazz': {
+                1: { red: 100, green: 100, blue: 100 },
+                2: { red: 100, green: 100, blue: 100 },
+                3: { red: 100, green: 100, blue: 100 },
+              },
+              'hello-world': {
+                4: { red: 200, green: 200, blue: 200 },
+                5: { red: 200, green: 200, blue: 200 },
+                6: { red: 200, green: 200, blue: 200 },
+                10: { red: 255, green: 255, blue: 255 },
+                11: { red: 255, green: 255, blue: 255 },
+                12: { red: 255, green: 255, blue: 255 },
+                15: { red: 0, green: 0, blue: 0 },
+              }
+            })
+          }))
         })
       })
 
@@ -224,7 +225,9 @@ describe('> layerctrl.service.ts', () => {
           ).subscribe(val => {
             subscrbiedVal = val
           })
-          
+
+          // see TODO this is a dirty fix
+          tick(32)
           service.overwriteColorMap$.next(foobar2)
           tick(32)
           expect(subscrbiedVal).toEqual(foobar2)
-- 
GitLab