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 31d0a71d53637a8ce77650cc15ebdcee451ceadf..e639e1edb69271bae31690da75fff39ca23a1edf 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 4c8fe4826db81c8962791852d895e68102792091..b6ceccc6b4dd42d80a757da21683b08327644932 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 d17e43b9f5a1430a84d3c074c473adad8482285a..ed303d90e3659f1e58dbe74478ca7b707722f42a 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 0000000000000000000000000000000000000000..ccda8667484aead633d0f1c0be72f296c2be6b7e --- /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 0000000000000000000000000000000000000000..7c83be87685e8583a42a2c2d88f9be8d6b839ef0 --- /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 0000000000000000000000000000000000000000..72fd080bacd11dc0f820a6cd40da15775120fd71 --- /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); + }); +}); + + +