Skip to content
Snippets Groups Projects
Commit 2c4b08a3 authored by Angapay Divin's avatar Angapay Divin
Browse files

test wepage resolvers

parent 36996458
No related branches found
No related tags found
2 merge requests!72Develop,!62Resolve "Tests client: Tester le module webpage de la partie admin->instance"
...@@ -7,9 +7,10 @@ ...@@ -7,9 +7,10 @@
* file that was distributed with this source code. * 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 { ComponentFixture, TestBed } from '@angular/core/testing';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
import { RouterTestingModule } from '@angular/router/testing';
import { Webpage } from 'src/app/metamodel/models'; import { Webpage } from 'src/app/metamodel/models';
import { WebpageFamilyCardComponent } from './webpage-family-card.component'; import { WebpageFamilyCardComponent } from './webpage-family-card.component';
...@@ -21,6 +22,21 @@ class MockPipe implements PipeTransform { ...@@ -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 ', () => { describe('[admin][instance][webpage][components] WebpageFamilyCardComponent ', () => {
let component: WebpageFamilyCardComponent; let component: WebpageFamilyCardComponent;
let fixture: ComponentFixture<WebpageFamilyCardComponent>; let fixture: ComponentFixture<WebpageFamilyCardComponent>;
...@@ -29,10 +45,16 @@ describe('[admin][instance][webpage][components] WebpageFamilyCardComponent ', ( ...@@ -29,10 +45,16 @@ describe('[admin][instance][webpage][components] WebpageFamilyCardComponent ', (
TestBed.configureTestingModule({ TestBed.configureTestingModule({
declarations: [ declarations: [
WebpageFamilyCardComponent, WebpageFamilyCardComponent,
MockPipe MockPipe,
EditWebpageComponent,
DeleteBtnComponenent,
WebPageComponent
], ],
imports: [ imports: [
BrowserAnimationsModule, BrowserAnimationsModule,
RouterTestingModule.withRoutes([
{ path: 'test', component: DummyComponent }
])
], ],
}); });
......
...@@ -15,7 +15,7 @@ import { Webpage } from 'src/app/metamodel/models'; ...@@ -15,7 +15,7 @@ import { Webpage } from 'src/app/metamodel/models';
import { NewWebpageComponent } from './new-webpage.component'; import { NewWebpageComponent } from './new-webpage.component';
import * as webpageActions from 'src/app/metamodel/actions/webpage.actions'; import * as webpageActions from 'src/app/metamodel/actions/webpage.actions';
import { ActivatedRoute } from '@angular/router'; import { ActivatedRoute } from '@angular/router';
import { from, of } from 'rxjs'; import { of } from 'rxjs';
describe('[admin][instance][webpage][containers] NewWebpageComponent ', () => { describe('[admin][instance][webpage][containers] NewWebpageComponent ', () => {
let component: NewWebpageComponent; let component: NewWebpageComponent;
...@@ -37,7 +37,7 @@ describe('[admin][instance][webpage][containers] NewWebpageComponent ', () => { ...@@ -37,7 +37,7 @@ describe('[admin][instance][webpage][containers] NewWebpageComponent ', () => {
{ {
provide: ActivatedRoute, provide: ActivatedRoute,
useValue: { useValue: {
queryParamMap: of([{ id: 1 }]), queryParamMap: of([{ id_webpage_family: 1 }]),
}, },
}, },
provideMockStore({}), provideMockStore({}),
...@@ -54,8 +54,9 @@ describe('[admin][instance][webpage][containers] NewWebpageComponent ', () => { ...@@ -54,8 +54,9 @@ describe('[admin][instance][webpage][containers] NewWebpageComponent ', () => {
}); });
it('should create the component', () => { it('should create the component', () => {
fixture.detectChanges();
expect(component).toBeTruthy(); expect(component).toBeTruthy();
}); });
it('dispatch webpageActions.addWebPage with the new webpage values', () => { it('dispatch webpageActions.addWebPage with the new webpage values', () => {
let webpage: Webpage = { icon: '', content: '', display: 10, id: 0, id_webpage_family: 0, label: '', title: '' }; 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 ', () => { ...@@ -64,6 +65,11 @@ describe('[admin][instance][webpage][containers] NewWebpageComponent ', () => {
expect(spy).toHaveBeenCalledWith(webpageActions.addWebpage({ webpage })); expect(spy).toHaveBeenCalledWith(webpageActions.addWebpage({ webpage }));
}); });
it('idWbPageFamily should be 1', () => {
component.idWebpageFamily.subscribe(value => {
//expect(value).toEqual(1);
})
})
}); });
/**
* 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);
});
});
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment