diff --git a/client/src/app/instance/search-multiple/components/position/cone-search-panel.component.spec.ts b/client/src/app/instance/search-multiple/components/position/cone-search-panel.component.spec.ts new file mode 100644 index 0000000000000000000000000000000000000000..945303562f27dcab76819f029aa6efd462b9ca76 --- /dev/null +++ b/client/src/app/instance/search-multiple/components/position/cone-search-panel.component.spec.ts @@ -0,0 +1,43 @@ + +/** + * 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 { ComponentFixture, TestBed } from "@angular/core/testing"; +import { ConeSearchPanelComponent } from "./cone-search-panel.component"; + +describe('Instance][SearchMultiple][Component][Position] ConeSearchPanelComponent', () => { + let component: ConeSearchPanelComponent; + let fixture: ComponentFixture<ConeSearchPanelComponent>; + beforeEach(() => { + TestBed.configureTestingModule({ + declarations: [ + ConeSearchPanelComponent + ] + }); + fixture = TestBed.createComponent(ConeSearchPanelComponent); + component = fixture.componentInstance; + }); + it('should create component', () => { + expect(component).toBeTruthy(); + }); + it('should emit addConeSearch event with the new cone search when conesearch property is undefined', () => { + let spy = jest.spyOn(component.addConeSearch, 'emit'); + component.emitAdd({ ra: 10, dec: 5, radius: 10 }); + expect(spy).toHaveBeenCalledTimes(1); + expect(spy).toHaveBeenCalledWith({ ra: 10, dec: 5, radius: 10 }); + }); + it('should emit updateConeSearch event with the new cone search when conesearch property is defined', () => { + let spy = jest.spyOn(component.updateConeSearch, 'emit'); + component.coneSearch = { ra: 1, dec: 5, radius: 1 }; + component.emitAdd({ ra: 10, dec: 5, radius: 10 }); + expect(spy).toHaveBeenCalledTimes(1); + expect(spy).toHaveBeenCalledWith({ ra: 10, dec: 5, radius: 10 }); + }); + +}); \ No newline at end of file diff --git a/client/src/app/instance/search-multiple/containers/position.component.spec.ts b/client/src/app/instance/search-multiple/containers/position.component.spec.ts index 9af01525b8f6fab8be2b817458304864bba5ad2d..a5352c8e5bf5128eb2ba9e54fb932759ff316693 100644 --- a/client/src/app/instance/search-multiple/containers/position.component.spec.ts +++ b/client/src/app/instance/search-multiple/containers/position.component.spec.ts @@ -74,6 +74,13 @@ describe('[Instance][SearchMultiple][Container] PositionComponent', () => { expect(spy).toHaveBeenCalledTimes(1); expect(spy).toHaveBeenCalledWith(coneSearchActions.addConeSearch({ coneSearch })); }); + it('#updateConeSearch() should dispatch updateConeSearch action', () => { + const coneSearch: ConeSearch = { ra: 1, dec: 2, radius: 3 }; + const spy = jest.spyOn(store, 'dispatch'); + component.updateConeSearch(coneSearch); + expect(spy).toHaveBeenCalledTimes(1); + expect(spy).toHaveBeenCalledWith(coneSearchActions.updateConeSearch({ coneSearch })); + }); it('#deleteConeSearch() should dispatch deleteConeSearch action', () => { const spy = jest.spyOn(store, 'dispatch'); diff --git a/client/src/app/instance/search-multiple/search-multiple-title.resolver.spec.ts b/client/src/app/instance/search-multiple/search-multiple-title.resolver.spec.ts new file mode 100644 index 0000000000000000000000000000000000000000..dad924debc9b21ddb14b4bbe79292ffaa32bbe60 --- /dev/null +++ b/client/src/app/instance/search-multiple/search-multiple-title.resolver.spec.ts @@ -0,0 +1,45 @@ + +/** + * 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 { TestBed } from "@angular/core/testing"; +import { MockStore, provideMockStore } from "@ngrx/store/testing"; +import { SearchMultipleTitleResolver } from "./search-multiple-title.resolver"; +import * as instanceSelector from 'src/app/metamodel/selectors/instance.selector'; +import { Instance } from "src/app/metamodel/models"; +import { cold } from "jasmine-marbles"; + +describe('Instance][SearchMultiple] SearchMultipleTitleResolver', () => { + let databaseTitleResolver: SearchMultipleTitleResolver; + let store: MockStore; + let mockInstanceSelectorSelectInstanceByRouteName; + beforeEach(() => { + TestBed.configureTestingModule({ + imports: [], + providers: [ + provideMockStore({}), + ] + }) + + store = TestBed.inject(MockStore); + databaseTitleResolver = TestBed.inject(SearchMultipleTitleResolver); + }); + it('should be created', () => { + expect(databaseTitleResolver).toBeTruthy(); + }); + it('should return "test -search Multiple - "', () => { + let route: any = { component: { name: 'ComponentMultiple' } }; + let instance: Instance; + mockInstanceSelectorSelectInstanceByRouteName = store.overrideSelector(instanceSelector.selectInstanceByRouteName, { ...instance, label: 'test' }) + + let result = databaseTitleResolver.resolve(route, null); + const expected = cold('a', { a: 'test - Search Multiple - ' }); + expect(result).toBeObservable(expected); + }); +}); diff --git a/client/src/app/instance/search-multiple/search-multiple.module.spec.ts b/client/src/app/instance/search-multiple/search-multiple.module.spec.ts new file mode 100644 index 0000000000000000000000000000000000000000..6c3dcabe9f99664270f12f8d46b4e1100491e56e --- /dev/null +++ b/client/src/app/instance/search-multiple/search-multiple.module.spec.ts @@ -0,0 +1,17 @@ +/** + * 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 { SearchMultipleModule } from "./search-multiple.module"; + + +describe('[Instance][SearchMultiple] SearchMultipleModule', () => { + it('test Search multiple module', () => { + expect(SearchMultipleModule.name).toEqual('SearchMultipleModule'); + }) +}); diff --git a/client/src/app/instance/store/services/cone-search.service.spec.ts b/client/src/app/instance/store/services/cone-search.service.spec.ts index 8122b2f60f4680bfaa543afbe4df163920b0848e..627818e3c7b26a422e79d1aeae6a808c0cf1d341 100644 --- a/client/src/app/instance/store/services/cone-search.service.spec.ts +++ b/client/src/app/instance/store/services/cone-search.service.spec.ts @@ -1,3 +1,11 @@ +/** + * 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 { TestBed, inject } from '@angular/core/testing'; import { HttpClientTestingModule, HttpTestingController } from '@angular/common/http/testing'; @@ -15,7 +23,7 @@ describe('[Instance][Store] ConeSearchService', () => { }); it('#retrieveCoordinates() should return an Observable<any[]>', - inject([HttpTestingController, ConeSearchService],(httpMock: HttpTestingController, coneSearchService: ConeSearchService) => { + inject([HttpTestingController, ConeSearchService], (httpMock: HttpTestingController, coneSearchService: ConeSearchService) => { const mockResponse = 'myResponse'; coneSearchService.retrieveCoordinates('myObject').subscribe((event: any) => { diff --git a/client/src/app/instance/store/services/detail.service.spec.ts b/client/src/app/instance/store/services/detail.service.spec.ts index cd785472d58149784a713cde4e12f5f63a18dfdf..004f6da14700c26de82ec70f142cb17e470397dd 100644 --- a/client/src/app/instance/store/services/detail.service.spec.ts +++ b/client/src/app/instance/store/services/detail.service.spec.ts @@ -1,3 +1,12 @@ +/** + * 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 { TestBed, inject } from '@angular/core/testing'; import { HttpClientTestingModule, HttpTestingController } from '@angular/common/http/testing'; @@ -11,7 +20,7 @@ describe('[Instance][Store] DetailService', () => { TestBed.configureTestingModule({ imports: [HttpClientTestingModule], providers: [ - { provide: AppConfigService, useValue: { apiUrl: 'http://testing.com', servicesUrl: 'http://testingService.com' }}, + { provide: AppConfigService, useValue: { apiUrl: 'http://testing.com', servicesUrl: 'http://testingService.com' } }, DetailService ] }); @@ -19,7 +28,7 @@ describe('[Instance][Store] DetailService', () => { }); it('#retrieveObject() should return an Observable<any[]>', - inject([HttpTestingController, DetailService],(httpMock: HttpTestingController, detailService: DetailService) => { + inject([HttpTestingController, DetailService], (httpMock: HttpTestingController, detailService: DetailService) => { const mockResponse = ['myData']; detailService.retrieveObject('myDataset', 1, 'myObject').subscribe((event: any[]) => { @@ -37,7 +46,7 @@ describe('[Instance][Store] DetailService', () => { ); it('#retrieveSpectra() should return an Observable<string>', - inject([HttpTestingController, DetailService],(httpMock: HttpTestingController, detailService: DetailService) => { + inject([HttpTestingController, DetailService], (httpMock: HttpTestingController, detailService: DetailService) => { const mockResponse = 'mySpectraData'; detailService.retrieveSpectra('myDataset', 'mySpectraFile').subscribe((event: string) => { diff --git a/client/src/app/instance/store/services/search.service.spec.ts b/client/src/app/instance/store/services/search.service.spec.ts index 7cd80c57436144622072987737187b265f122239..73ea347b607dfce2da278fecf949293c2dbf2025 100644 --- a/client/src/app/instance/store/services/search.service.spec.ts +++ b/client/src/app/instance/store/services/search.service.spec.ts @@ -1,3 +1,11 @@ +/** + * 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 { TestBed, inject } from '@angular/core/testing'; import { HttpClientTestingModule, HttpTestingController } from '@angular/common/http/testing'; @@ -19,7 +27,7 @@ describe('[Instance][Store] SearchService', () => { }); it('#retrieveData() should return an Observable<any[]>', - inject([HttpTestingController, SearchService],(httpMock: HttpTestingController, searchService: SearchService) => { + inject([HttpTestingController, SearchService], (httpMock: HttpTestingController, searchService: SearchService) => { const mockResponse = ['myData']; searchService.retrieveData('myQuery').subscribe((event: any[]) => { @@ -33,12 +41,12 @@ describe('[Instance][Store] SearchService', () => { mockRequest.flush(mockResponse); httpMock.verify(); - } + } ) ); it('#retrieveDataLength() should return an Observable<{ nb: number }[]>', - inject([HttpTestingController, SearchService],(httpMock: HttpTestingController, searchService: SearchService) => { + inject([HttpTestingController, SearchService], (httpMock: HttpTestingController, searchService: SearchService) => { const mockResponse = [{ nb: 1 }]; searchService.retrieveDataLength('myQuery').subscribe((event: { nb: number }[]) => { @@ -52,7 +60,7 @@ describe('[Instance][Store] SearchService', () => { mockRequest.flush(mockResponse); httpMock.verify(); - } + } ) ); }); \ No newline at end of file