From 247df324ff8bcb803fc46777f55bd7cd5f54fc88 Mon Sep 17 00:00:00 2001 From: dangapay <divin.angapay@lam.fr> Date: Thu, 20 Oct 2022 17:14:30 +0200 Subject: [PATCH] add test for admin/instance/dataset/components/ detail-page --- .../cone-search-config.component.spec.ts | 2 +- .../dataset-family-card.component.spec.ts | 15 +++- .../dataset/dataset-card.component.spec.ts | 13 +++- .../detail-config-form.component.spec.ts | 55 +++++++++++++++ .../detail-config.component.spec.ts | 69 +++++++++++++++++++ .../components/detail-page/index.spec.ts | 19 +++++ 6 files changed, 168 insertions(+), 5 deletions(-) create mode 100644 client/src/app/admin/instance/dataset/components/detail-page/detail-config-form.component.spec.ts create mode 100644 client/src/app/admin/instance/dataset/components/detail-page/detail-config.component.spec.ts create mode 100644 client/src/app/admin/instance/dataset/components/detail-page/index.spec.ts diff --git a/client/src/app/admin/instance/dataset/components/cone-search-config/cone-search-config.component.spec.ts b/client/src/app/admin/instance/dataset/components/cone-search-config/cone-search-config.component.spec.ts index 31d0a71d..e639e1ed 100644 --- a/client/src/app/admin/instance/dataset/components/cone-search-config/cone-search-config.component.spec.ts +++ b/client/src/app/admin/instance/dataset/components/cone-search-config/cone-search-config.component.spec.ts @@ -19,8 +19,8 @@ import { ConeSearchConfigComponent } from './cone-search-config.component'; }) class ConeSearchConfigFormComponent { form = new UntypedFormGroup({}); - coneSearchConfig = null; attributeList = [] + coneSearchConfig: ConeSearchConfig; } describe('[admin][instance][dataset][components][cone-search-config] ConeSearchConfigComponent', () => { let component: ConeSearchConfigComponent; diff --git a/client/src/app/admin/instance/dataset/components/dataset-family/dataset-family-card.component.spec.ts b/client/src/app/admin/instance/dataset/components/dataset-family/dataset-family-card.component.spec.ts index 4c8fe482..b6ceccc6 100644 --- a/client/src/app/admin/instance/dataset/components/dataset-family/dataset-family-card.component.spec.ts +++ b/client/src/app/admin/instance/dataset/components/dataset-family/dataset-family-card.component.spec.ts @@ -6,7 +6,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -import { Pipe, PipeTransform } from '@angular/core'; +import { Component, Pipe, PipeTransform } from '@angular/core'; import { ComponentFixture, TestBed } from '@angular/core/testing'; import { ReactiveFormsModule } from '@angular/forms'; import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; @@ -22,6 +22,15 @@ class DatasetListByFamilyPipe implements PipeTransform { } } +@Component({ + selector: 'app-edit-dataset-family', +}) +export class EditDatasetFamilyComponent { } + +@Component({ + selector: 'app-delete-btn', +}) +export class DeleteBtnComponent { } describe('[admin][instance][dataset][components][dataset-family] DatasetFamilyCardComponent', () => { let component: DatasetFamilyCardComponent; let fixture: ComponentFixture<DatasetFamilyCardComponent>; @@ -30,7 +39,9 @@ describe('[admin][instance][dataset][components][dataset-family] DatasetFamilyCa TestBed.configureTestingModule({ declarations: [ DatasetFamilyCardComponent, - DatasetListByFamilyPipe + DatasetListByFamilyPipe, + EditDatasetFamilyComponent, + DeleteBtnComponent ], imports: [ BrowserAnimationsModule, diff --git a/client/src/app/admin/instance/dataset/components/dataset/dataset-card.component.spec.ts b/client/src/app/admin/instance/dataset/components/dataset/dataset-card.component.spec.ts index d17e43b9..ed303d90 100644 --- a/client/src/app/admin/instance/dataset/components/dataset/dataset-card.component.spec.ts +++ b/client/src/app/admin/instance/dataset/components/dataset/dataset-card.component.spec.ts @@ -7,11 +7,16 @@ * file that was distributed with this source code. */ +import { Component } from '@angular/core'; import { ComponentFixture, TestBed } from '@angular/core/testing'; import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; +import { RouterTestingModule } from '@angular/router/testing'; import { Dataset, Instance } from 'src/app/metamodel/models'; import { DatasetCardComponent } from './dataset-card.component'; - +@Component({ + selector: 'app-delete-btn', +}) +export class DeleteBtnComponent { } describe('[admin][instance][dataset][components][dataset] DatasetCardComponent', () => { let component: DatasetCardComponent; let fixture: ComponentFixture<DatasetCardComponent>; @@ -19,9 +24,13 @@ describe('[admin][instance][dataset][components][dataset] DatasetCardComponent', TestBed.configureTestingModule({ declarations: [ DatasetCardComponent, + DeleteBtnComponent ], imports: [ - BrowserAnimationsModule + BrowserAnimationsModule, + RouterTestingModule.withRoutes([ + { path: 'test', component: DeleteBtnComponent } + ]) ], }); fixture = TestBed.createComponent(DatasetCardComponent); diff --git a/client/src/app/admin/instance/dataset/components/detail-page/detail-config-form.component.spec.ts b/client/src/app/admin/instance/dataset/components/detail-page/detail-config-form.component.spec.ts new file mode 100644 index 00000000..ccda8667 --- /dev/null +++ b/client/src/app/admin/instance/dataset/components/detail-page/detail-config-form.component.spec.ts @@ -0,0 +1,55 @@ +/** + * This file is part of Anis Client. + * + * @copyright Laboratoire d'Astrophysique de Marseille / CNRS + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +import { Component } from '@angular/core'; +import { ComponentFixture, TestBed } from '@angular/core/testing'; +import { ReactiveFormsModule, UntypedFormGroup } from '@angular/forms'; +import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; +import { DetailConfigFormComponent } from './detail-config-form.component'; +@Component({ + selector: 'app-webpage-form-content' +}) +class WebpageFormContentComponent { + form: UntypedFormGroup; +} +describe('[admin][instance][dataset][components][detail-page] DetailConfigFormComponent', () => { + let component: DetailConfigFormComponent; + let fixture: ComponentFixture<DetailConfigFormComponent>; + + beforeEach(() => { + TestBed.configureTestingModule({ + declarations: [ + DetailConfigFormComponent, + WebpageFormContentComponent + ], + imports: [ + BrowserAnimationsModule, + ReactiveFormsModule + ], + }); + fixture = TestBed.createComponent(DetailConfigFormComponent); + component = fixture.componentInstance; + component.detailConfig = { content: '', id: 1, style_sheet: 'test' }; + fixture.detectChanges(); + }); + + it('should create the component', () => { + expect(component).toBeTruthy(); + }); + + it('submit() should emit databaseFamily and form.value', () => { + let spy = jest.spyOn(component.onSubmit, 'emit'); + let spyOnForm = jest.spyOn(component.form, 'markAsPristine'); + component.submit(); + expect(spy).toHaveBeenCalledTimes(1); + expect(spyOnForm).toHaveBeenCalledTimes(1); + expect(spy).toHaveBeenCalledWith({ ...component.form.getRawValue() }); + }); +}); + + diff --git a/client/src/app/admin/instance/dataset/components/detail-page/detail-config.component.spec.ts b/client/src/app/admin/instance/dataset/components/detail-page/detail-config.component.spec.ts new file mode 100644 index 00000000..7c83be87 --- /dev/null +++ b/client/src/app/admin/instance/dataset/components/detail-page/detail-config.component.spec.ts @@ -0,0 +1,69 @@ +/** + * This file is part of Anis Client. + * + * @copyright Laboratoire d'Astrophysique de Marseille / CNRS + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +import { Component } from '@angular/core'; +import { ComponentFixture, TestBed } from '@angular/core/testing'; +import { ReactiveFormsModule, UntypedFormControl, UntypedFormGroup } from '@angular/forms'; +import { BrowserAnimationsModule } from '@angular/platform-browser/animations' +import { DetailConfig } from 'src/app/metamodel/models'; +import { DetailConfigComponent } from './detail-config.component'; + +@Component({ + selector: 'app-detail-config-form', + templateUrl: 'detail-config-form.component.html', +}) +class DetailConfigFormComponent { + form = new UntypedFormGroup({ + content: new UntypedFormControl(), + style_sheet: new UntypedFormControl(null) + }); +} +describe('[admin][instance][dataset][components][detail-page] DetailConfigComponent', () => { + let component: DetailConfigComponent; + let fixture: ComponentFixture<DetailConfigComponent>; + + beforeEach(() => { + TestBed.configureTestingModule({ + declarations: [ + DetailConfigComponent, + DetailConfigFormComponent + ], + imports: [ + BrowserAnimationsModule, + ReactiveFormsModule + ], + }); + fixture = TestBed.createComponent(DetailConfigComponent); + component = fixture.componentInstance; + component.detailConfig = { content: '', id: 1, style_sheet: 'test' }; + fixture.detectChanges(); + }); + + it('should create the component', () => { + expect(component).toBeTruthy(); + }); + + it('save(detailConfig) should emit component.detailConfig and detaiConfig', () => { + let spy = jest.spyOn(component.editDetailConfig, 'emit'); + let detailConfig: DetailConfig = { content: '', id: 1, style_sheet: 'test2' }; + component.save(detailConfig); + expect(spy).toHaveBeenCalledTimes(1); + expect(spy).toHaveBeenCalledWith({ ...component.detailConfig, ...detailConfig }); + }); + it('save(detailConfig) should emit detaiConfig only', () => { + let spy = jest.spyOn(component.addDetailConfig, 'emit'); + let detailConfig: DetailConfig = { content: '', id: 1, style_sheet: 'test2' }; + component.detailConfig = null; + component.save(detailConfig); + expect(spy).toHaveBeenCalledTimes(1); + expect(spy).toHaveBeenCalledWith({ ...detailConfig }); + }); + +}); + + diff --git a/client/src/app/admin/instance/dataset/components/detail-page/index.spec.ts b/client/src/app/admin/instance/dataset/components/detail-page/index.spec.ts new file mode 100644 index 00000000..72fd080b --- /dev/null +++ b/client/src/app/admin/instance/dataset/components/detail-page/index.spec.ts @@ -0,0 +1,19 @@ +/** + * This file is part of Anis Client. + * + * @copyright Laboratoire d'Astrophysique de Marseille / CNRS + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +import { detailConfigComponents } from './index'; + +describe('[admin][instance][dataset][components]detail-page] index', () => { + it('should test detail-page index components', () => { + expect(detailConfigComponents.length).toEqual(2); + }); +}); + + + -- GitLab