From a547ee3b8f25c6130e2926b02fb8153dc5605ce3 Mon Sep 17 00:00:00 2001 From: Tifenn Guillas <tifenn.guillas@lam.fr> Date: Tue, 30 Nov 2021 12:42:20 +0100 Subject: [PATCH] WIP: Tests on search multiple components --- .../summary-multiple.component.spec.ts | 43 +++++++ .../components/summary-multiple.component.ts | 14 +-- ...abstract-search-multiple.component.spec.ts | 2 +- client/src/test-data.ts | 118 +++++++++++++++++- 4 files changed, 167 insertions(+), 10 deletions(-) create mode 100644 client/src/app/instance/search-multiple/components/summary-multiple.component.spec.ts diff --git a/client/src/app/instance/search-multiple/components/summary-multiple.component.spec.ts b/client/src/app/instance/search-multiple/components/summary-multiple.component.spec.ts new file mode 100644 index 00000000..37133619 --- /dev/null +++ b/client/src/app/instance/search-multiple/components/summary-multiple.component.spec.ts @@ -0,0 +1,43 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; +import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; + +import { AccordionModule } from 'ngx-bootstrap/accordion'; +import { TooltipModule } from 'ngx-bootstrap/tooltip'; + +import { SummaryMultipleComponent } from './summary-multiple.component'; +import { DATASET, DATASET_FAMILY_LIST, DATASET_LIST } from '../../../../test-data'; + +describe('[Instance][SearchMultiple][Component] SummaryMultipleComponent', () => { + let component: SummaryMultipleComponent; + let fixture: ComponentFixture<SummaryMultipleComponent>; + + beforeEach(() => { + TestBed.configureTestingModule({ + declarations: [SummaryMultipleComponent], + imports: [ + AccordionModule.forRoot(), + TooltipModule.forRoot(), + BrowserAnimationsModule + ] + }); + fixture = TestBed.createComponent(SummaryMultipleComponent); + component = fixture.componentInstance; + }); + + it('should create the component', () => { + expect(component).toBeTruthy(); + }); + + it('#getDatasetFamilyList() should return list of dataset families that contains datasets with cone search enabled', () => { + component.datasetFamilyList = DATASET_FAMILY_LIST; + component.datasetList = [DATASET]; + expect(component.getDatasetFamilyList()[0].label).toBe('My first dataset family'); + }); + + it('#getSelectedDatasetsByFamily() should return list of selected datasets for the given dataset family', () => { + component.datasetList = DATASET_LIST; + component.selectedDatasets = ['myDataset']; + expect(component.getSelectedDatasetsByFamily(1).length).toEqual(1); + expect(component.getSelectedDatasetsByFamily(1)[0].name).toEqual('myDataset'); + }); +}); diff --git a/client/src/app/instance/search-multiple/components/summary-multiple.component.ts b/client/src/app/instance/search-multiple/components/summary-multiple.component.ts index 790fcd5c..f3c81c65 100644 --- a/client/src/app/instance/search-multiple/components/summary-multiple.component.ts +++ b/client/src/app/instance/search-multiple/components/summary-multiple.component.ts @@ -12,16 +12,16 @@ import { ChangeDetectionStrategy, Component, Input } from '@angular/core'; import { SearchMultipleQueryParams, ConeSearch } from 'src/app/instance/store/models'; import { Dataset, DatasetFamily } from 'src/app/metamodel/models'; +/** + * @class + * @classdesc Summary multiple summary component. + */ @Component({ selector: 'app-summary-multiple', templateUrl: 'summary-multiple.component.html', styleUrls: ['summary-multiple.component.scss'], changeDetection: ChangeDetectionStrategy.OnPush, }) -/** - * @class - * @classdesc Search multiple summary component. - */ export class SummaryMultipleComponent { @Input() currentStep: string; @Input() coneSearch: ConeSearch; @@ -33,7 +33,7 @@ export class SummaryMultipleComponent { accordionFamilyIsOpen = true; /** - * Returns dataset families sorted by display, that contains datasets with cone search enabled. + * Returns dataset families that contains datasets with cone search enabled. * * @return Family[] */ @@ -44,9 +44,7 @@ export class SummaryMultipleComponent { familiesId.push(d.id_dataset_family); } }); - return this.datasetFamilyList - .filter(f => familiesId.includes(f.id)) - //.sort(sortByDisplay); + return this.datasetFamilyList.filter(f => familiesId.includes(f.id)); } /** diff --git a/client/src/app/instance/search-multiple/containers/abstract-search-multiple.component.spec.ts b/client/src/app/instance/search-multiple/containers/abstract-search-multiple.component.spec.ts index 30e5baab..69b64e6f 100644 --- a/client/src/app/instance/search-multiple/containers/abstract-search-multiple.component.spec.ts +++ b/client/src/app/instance/search-multiple/containers/abstract-search-multiple.component.spec.ts @@ -8,7 +8,7 @@ import { AbstractSearchMultipleComponent } from './abstract-search-multiple.comp import * as searchActions from '../../store/actions/search.actions'; import * as searchMultipleActions from '../../store/actions/search-multiple.actions'; -describe('[Instance][Search][Container] AbstractSearchComponent', () => { +describe('[Instance][SearchMultiple][Container] AbstractSearchComponent', () => { @Component({ selector: 'app-fake', template: '' diff --git a/client/src/test-data.ts b/client/src/test-data.ts index 4928da85..f5d9108c 100644 --- a/client/src/test-data.ts +++ b/client/src/test-data.ts @@ -1,4 +1,120 @@ -import { Attribute, Dataset, OutputCategory } from './app/metamodel/models'; +import { Attribute, Dataset, DatasetFamily, OutputCategory } from './app/metamodel/models'; + +export const DATASET_FAMILY_LIST: DatasetFamily[] = [ + { id: 2, label: 'My second dataset family', display: 2, opened: false }, + { id: 1, label: 'My first dataset family', display: 1, opened: true } +]; + +export const DATASET_LIST: Dataset[] = [ + { + name: 'myDataset', + table_ref: 'table', + label: 'my dataset', + description: 'This is my dataset', + display: 1, + data_path: 'path', + survey_name: 'mySurvey', + id_dataset_family: 1, + public: true, + full_data_path: '/data/path', + config: { + images: ['image'], + survey: { + survey_enabled: true, + survey_label: 'More about this survey' + }, + cone_search: { + cone_search_enabled: true, + cone_search_opened: true, + cone_search_column_ra: 1, + cone_search_column_dec: 2, + cone_search_plot_enabled: true, + cone_search_sdss_enabled: true, + cone_search_sdss_display: 1, + cone_search_background: [{ id: 1, enabled: true, display: 1 }] + }, + download: { + download_enabled: true, + download_opened: true, + download_csv: true, + download_ascii: true, + download_vo: true, + download_archive: true + }, + summary: { + summary_enabled: true, + summary_opened: true + }, + server_link: { + server_link_enabled: true, + server_link_opened: true + }, + samp: { + samp_enabled: true, + samp_opened: true + }, + datatable: { + datatable_enabled: true, + datatable_opened: true, + datatable_selectable_rows: true + } + } + }, + { + name: 'anotherDataset', + table_ref: 'table', + label: 'amother dataset', + description: 'This is another dataset', + display: 2, + data_path: 'path', + survey_name: 'mySurvey', + id_dataset_family: 1, + public: true, + full_data_path: '/data/path', + config: { + images: ['image'], + survey: { + survey_enabled: true, + survey_label: 'More about this survey' + }, + cone_search: { + cone_search_enabled: true, + cone_search_opened: true, + cone_search_column_ra: 1, + cone_search_column_dec: 2, + cone_search_plot_enabled: true, + cone_search_sdss_enabled: true, + cone_search_sdss_display: 1, + cone_search_background: [{ id: 1, enabled: true, display: 1 }] + }, + download: { + download_enabled: true, + download_opened: true, + download_csv: true, + download_ascii: true, + download_vo: true, + download_archive: true + }, + summary: { + summary_enabled: true, + summary_opened: true + }, + server_link: { + server_link_enabled: true, + server_link_opened: true + }, + samp: { + samp_enabled: true, + samp_opened: true + }, + datatable: { + datatable_enabled: true, + datatable_opened: true, + datatable_selectable_rows: true + } + } + }, +]; export const DATASET: Dataset = { name: 'myDataset', -- GitLab