From 2c4b08a3b5c1cd9a2c77c447b1451580011dda1e Mon Sep 17 00:00:00 2001 From: dangapay <divin.angapay@lam.fr> Date: Fri, 30 Sep 2022 15:14:58 +0200 Subject: [PATCH] test wepage resolvers --- .../webpage-family-card.component.spec.ts | 26 +++++++- .../containers/new-webpage.component.spec.ts | 12 +++- .../webpage/webpage-title.resolver.spec.ts | 63 +++++++++++++++++++ 3 files changed, 96 insertions(+), 5 deletions(-) create mode 100644 client/src/app/admin/instance/webpage/webpage-title.resolver.spec.ts diff --git a/client/src/app/admin/instance/webpage/components/webpage-family-card.component.spec.ts b/client/src/app/admin/instance/webpage/components/webpage-family-card.component.spec.ts index 7adda617..9dcc7423 100644 --- a/client/src/app/admin/instance/webpage/components/webpage-family-card.component.spec.ts +++ b/client/src/app/admin/instance/webpage/components/webpage-family-card.component.spec.ts @@ -7,9 +7,10 @@ * 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 { BrowserAnimationsModule } from '@angular/platform-browser/animations'; +import { RouterTestingModule } from '@angular/router/testing'; import { Webpage } from 'src/app/metamodel/models'; import { WebpageFamilyCardComponent } from './webpage-family-card.component'; @@ -21,6 +22,21 @@ class MockPipe implements PipeTransform { } } +class DummyComponent {} +@Component({ + selector: 'app-edit-webpage' +}) +class EditWebpageComponent{} + +@Component({ + selector: 'app-delete-btn' +}) +class DeleteBtnComponenent{} +@Component({ + selector: 'app-webpage-card' +}) +class WebPageComponent{} + describe('[admin][instance][webpage][components] WebpageFamilyCardComponent ', () => { let component: WebpageFamilyCardComponent; let fixture: ComponentFixture<WebpageFamilyCardComponent>; @@ -29,10 +45,16 @@ describe('[admin][instance][webpage][components] WebpageFamilyCardComponent ', ( TestBed.configureTestingModule({ declarations: [ WebpageFamilyCardComponent, - MockPipe + MockPipe, + EditWebpageComponent, + DeleteBtnComponenent, + WebPageComponent ], imports: [ BrowserAnimationsModule, + RouterTestingModule.withRoutes([ + { path: 'test', component: DummyComponent } + ]) ], }); diff --git a/client/src/app/admin/instance/webpage/containers/new-webpage.component.spec.ts b/client/src/app/admin/instance/webpage/containers/new-webpage.component.spec.ts index 48ab8f6e..3a10e8f5 100644 --- a/client/src/app/admin/instance/webpage/containers/new-webpage.component.spec.ts +++ b/client/src/app/admin/instance/webpage/containers/new-webpage.component.spec.ts @@ -15,7 +15,7 @@ import { Webpage } from 'src/app/metamodel/models'; import { NewWebpageComponent } from './new-webpage.component'; import * as webpageActions from 'src/app/metamodel/actions/webpage.actions'; import { ActivatedRoute } from '@angular/router'; -import { from, of } from 'rxjs'; +import { of } from 'rxjs'; describe('[admin][instance][webpage][containers] NewWebpageComponent ', () => { let component: NewWebpageComponent; @@ -37,7 +37,7 @@ describe('[admin][instance][webpage][containers] NewWebpageComponent ', () => { { provide: ActivatedRoute, useValue: { - queryParamMap: of([{ id: 1 }]), + queryParamMap: of([{ id_webpage_family: 1 }]), }, }, provideMockStore({}), @@ -54,8 +54,9 @@ describe('[admin][instance][webpage][containers] NewWebpageComponent ', () => { }); it('should create the component', () => { - fixture.detectChanges(); + expect(component).toBeTruthy(); + }); it('dispatch webpageActions.addWebPage with the new webpage values', () => { let webpage: Webpage = { icon: '', content: '', display: 10, id: 0, id_webpage_family: 0, label: '', title: '' }; @@ -64,6 +65,11 @@ describe('[admin][instance][webpage][containers] NewWebpageComponent ', () => { expect(spy).toHaveBeenCalledWith(webpageActions.addWebpage({ webpage })); }); + it('idWbPageFamily should be 1', () => { + component.idWebpageFamily.subscribe(value => { + //expect(value).toEqual(1); + }) + }) }); diff --git a/client/src/app/admin/instance/webpage/webpage-title.resolver.spec.ts b/client/src/app/admin/instance/webpage/webpage-title.resolver.spec.ts new file mode 100644 index 00000000..b8877ccb --- /dev/null +++ b/client/src/app/admin/instance/webpage/webpage-title.resolver.spec.ts @@ -0,0 +1,63 @@ +/** + * 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 { MockStore, provideMockStore } from '@ngrx/store/testing'; +import { cold, hot } from 'jasmine-marbles'; +import * as webpageSelector from 'src/app/metamodel/selectors/webpage.selector'; +import * as instanceSelector from 'src/app/metamodel/selectors/instance.selector'; +import { Instance, Webpage } from 'src/app/metamodel/models'; +import { WebpageTitleResolver } from './webpage-title.resolver'; +import { ActivatedRouteSnapshot } from '@angular/router'; +import { Component } from '@angular/core'; +import { WebpageListComponent } from './containers/webpage-list.component'; + + +describe('[Webpage] EditWebpageTitleResolver', () => { + let webpageTitleResolver: WebpageTitleResolver; + let store: MockStore; + let component; + let instance: Instance; + let mockWebPageSelectorInstanceByRouteName; + beforeEach(() => { + TestBed.configureTestingModule({ + imports: [], + declarations: [WebpageListComponent], + providers: [ + WebpageTitleResolver, + provideMockStore({}), + ] + }) + instance = { ...instance, label: 'instance_test_label', } + store = TestBed.inject(MockStore); + webpageTitleResolver = TestBed.inject(WebpageTitleResolver); + mockWebPageSelectorInstanceByRouteName = store.overrideSelector(instanceSelector.selectInstanceByRouteName, instance); + + }); + + it('should be created', () => { + expect(webpageTitleResolver).toBeTruthy(); + }); + it('shoud return nstance_test_label - Webpages list on resolve call', () => { + const expected = cold('a', { a: instance.label + " - Webpages list" }); + let route: ActivatedRouteSnapshot; + component = {name: 'WebpageListComponent'} + route = { ...route, component: component, children: [], root: null, parent: null, firstChild: null, pathFromRoot: null, paramMap: null, queryParamMap: null }; + let result = webpageTitleResolver.resolve(route, null); + expect(result).toBeObservable(expected); + }); + it('shoud return nstance_test_label - New webpage on resolve call', () => { + const expected = cold('a', { a: instance.label + " - New webpage" }); + let route: ActivatedRouteSnapshot; + component = {name: 'test'} + route = { ...route, component: component, children: [], root: null, parent: null, firstChild: null, pathFromRoot: null, paramMap: null, queryParamMap: null }; + let result = webpageTitleResolver.resolve(route, null); + expect(result).toBeObservable(expected); + }); +}); -- GitLab