From aaa5a64223f214ae954560002a2cb8a260c4516d Mon Sep 17 00:00:00 2001 From: fsdavid <daviti1@mail.com> Date: Tue, 2 Feb 2021 13:01:14 +0100 Subject: [PATCH] Add tests to prevent regression --- .../connectivityBrowser.component.spec.ts | 91 +++++++++++++++++++ .../connectivityBrowser.component.ts | 11 ++- 2 files changed, 97 insertions(+), 5 deletions(-) create mode 100644 src/ui/connectivityBrowser/connectivityBrowser.component.spec.ts diff --git a/src/ui/connectivityBrowser/connectivityBrowser.component.spec.ts b/src/ui/connectivityBrowser/connectivityBrowser.component.spec.ts new file mode 100644 index 000000000..0886c26fe --- /dev/null +++ b/src/ui/connectivityBrowser/connectivityBrowser.component.spec.ts @@ -0,0 +1,91 @@ +import {ConnectivityBrowserComponent} from "src/ui/connectivityBrowser/connectivityBrowser.component"; +import {async, ComponentFixture, TestBed} from "@angular/core/testing"; +import {StoreModule} from "@ngrx/store"; +import { + ngViewerState, + pluginState, + uiState, + userConfigState, + viewerConfigState, + viewerState +} from "src/services/stateStore.service"; +import {viewerStateHelperReducer, viewerStateMetaReducers} from "src/services/state/viewerState.store.helper"; +import {datasetPreviewMetaReducer} from "src/glue"; +import {HttpClientModule} from "@angular/common/http"; +import {CUSTOM_ELEMENTS_SCHEMA} from "@angular/core"; +import {DatabrowserModule} from "src/ui/databrowserModule"; + +fdescribe('ConnectivityComponent', () => { + + let component: ConnectivityBrowserComponent; + let fixture: ComponentFixture<ConnectivityBrowserComponent>; + + let datasetList = [ + { + id: 'id1', + name: 'n1', + description: 'd1', + kgId: 'kgId1', + kgschema: 'kgschema1' + }, { + id: 'id2', + name: 'n2', + description: 'd2', + kgId: 'kgId2', + kgschema: 'kgschema2' + } + ] + + beforeEach(async (() => { + TestBed.configureTestingModule({ + imports: [StoreModule.forRoot({ + pluginState, + viewerConfigState, + ngViewerState, + viewerState, + viewerStateHelper: viewerStateHelperReducer, + uiState, + userConfigState, + }, { + metaReducers: [ + // debug, + ...viewerStateMetaReducers, + datasetPreviewMetaReducer, + ] + }), + HttpClientModule, + DatabrowserModule + ], + declarations: [ConnectivityBrowserComponent], + schemas: [ + CUSTOM_ELEMENTS_SCHEMA, + ], + }).compileComponents() + })); + + it('> component can be created', async () => { + fixture = TestBed.createComponent(ConnectivityBrowserComponent) + component = fixture.componentInstance + expect(component).toBeTruthy() + }) + + it('> change dataset changes description, kgId and kgschema', () => { + fixture = TestBed.createComponent(ConnectivityBrowserComponent) + component = fixture.componentInstance + + component.datasetList = datasetList + + component.changeDataset({value: 'n1'}) + + expect(component.selectedDatasetDescription).toEqual('d1') + expect(component.selectedDatasetKgId).toEqual('kgId1') + expect(component.selectedDatasetKgSchema).toEqual('kgschema1') + + component.changeDataset({value: 'n2'}) + + expect(component.selectedDatasetDescription).toEqual('d2') + expect(component.selectedDatasetKgId).toEqual('kgId2') + expect(component.selectedDatasetKgSchema).toEqual('kgschema2') + }) + +}); \ No newline at end of file diff --git a/src/ui/connectivityBrowser/connectivityBrowser.component.ts b/src/ui/connectivityBrowser/connectivityBrowser.component.ts index 12d4fd22e..5e1996b84 100644 --- a/src/ui/connectivityBrowser/connectivityBrowser.component.ts +++ b/src/ui/connectivityBrowser/connectivityBrowser.component.ts @@ -212,7 +212,7 @@ export class ConnectivityBrowserComponent implements OnInit, AfterViewInit, OnDe this.setColorMap$.pipe( distinctUntilChanged() ), - fromEvent(this.connectivityComponentElement.nativeElement, 'connectivityDataReceived').pipe( + fromEvent(this.connectivityComponentElement?.nativeElement, 'connectivityDataReceived').pipe( map((e: CustomEvent) => e.detail) ) ).subscribe(([flag, connectedAreas]) => { @@ -300,9 +300,10 @@ export class ConnectivityBrowserComponent implements OnInit, AfterViewInit, OnDe changeDataset(event = null) { if (event) { this.selectedDataset = event.value - this.selectedDatasetDescription = this.datasetList.find(d => d.name === this.selectedDataset).description - this.selectedDatasetKgId = this.datasetList.find(d => d.name === this.selectedDataset).kgId || null - this.selectedDatasetKgSchema = this.datasetList.find(d => d.name === this.selectedDataset).kgschema || null + const foundDataset = this.datasetList.find(d => d.name === this.selectedDataset) + this.selectedDatasetDescription = foundDataset?.description + this.selectedDatasetKgId = foundDataset?.kgId || null + this.selectedDatasetKgSchema = foundDataset?.kgschema || null } if (this.datasetList.length && this.selectedDataset) { const selectedDatasetId = this.datasetList.find(d => d.name === this.selectedDataset).id @@ -405,7 +406,7 @@ export class ConnectivityBrowserComponent implements OnInit, AfterViewInit, OnDe } public exportFullConnectivity() { - this.fullConnectivityGridElement.nativeElement['downloadCSV']() + this.fullConnectivityGridElement?.nativeElement['downloadCSV']() } } -- GitLab