Skip to content
Snippets Groups Projects
Commit 0ec47855 authored by Tifenn Guillas's avatar Tifenn Guillas
Browse files

Tests and comments on shared => DONE

parent ff26de58
No related branches found
No related tags found
2 merge requests!29Develop,!26Resolve "Add tests for shared module"
Showing
with 200 additions and 15 deletions
...@@ -58,7 +58,7 @@ export class DatasetListComponent implements OnInit { ...@@ -58,7 +58,7 @@ export class DatasetListComponent implements OnInit {
this.datasetList = store.select(datasetSelector.selectAllDatasets); this.datasetList = store.select(datasetSelector.selectAllDatasets);
} }
ngOnInit() { ngOnInit(): void {
this.store.dispatch(datasetActions.loadDatasetList()); this.store.dispatch(datasetActions.loadDatasetList());
} }
} }
...@@ -45,7 +45,7 @@ export class DocumentationComponent implements OnInit { ...@@ -45,7 +45,7 @@ export class DocumentationComponent implements OnInit {
this.attributeList = store.select(attributeSelector.selectAllAttributes); this.attributeList = store.select(attributeSelector.selectAllAttributes);
} }
ngOnInit() { ngOnInit(): void {
this.store.dispatch(attributeActions.loadAttributeList()); this.store.dispatch(attributeActions.loadAttributeList());
} }
......
import { TestBed, ComponentFixture } from '@angular/core/testing';
import { RouterTestingModule } from '@angular/router/testing';
import { NavbarComponent } from './navbar.component';
import { INSTANCE } from '../../../test-data';
describe('[Shared][Component] NavbarComponent', () => {
let component: NavbarComponent;
let fixture: ComponentFixture<NavbarComponent>;
beforeEach(() => {
TestBed.configureTestingModule({
declarations: [NavbarComponent],
imports: [RouterTestingModule]
}).compileComponents();
fixture = TestBed.createComponent(NavbarComponent);
component = fixture.componentInstance;
});
it('should create the component', () => {
expect(component).toBeDefined();
});
it('should return logo href', () => {
component.apiUrl = 'http://test.com';
component.instance = INSTANCE;
expect(component.getLogoHref()).toEqual('http://test.com/download-instance-file/myInstance/path/to/logo');
component.instance.config.design.design_logo = '';
expect(component.getLogoHref()).toEqual('assets/cesam_anis40.png');
});
});
...@@ -12,6 +12,10 @@ import { Component, Input, Output, EventEmitter, ChangeDetectionStrategy } from ...@@ -12,6 +12,10 @@ import { Component, Input, Output, EventEmitter, ChangeDetectionStrategy } from
import { Instance } from 'src/app/metamodel/models'; import { Instance } from 'src/app/metamodel/models';
import { UserProfile } from 'src/app/auth/user-profile.model'; import { UserProfile } from 'src/app/auth/user-profile.model';
/**
* @class
* @classdesc Navbar component.
*/
@Component({ @Component({
selector: 'app-navbar', selector: 'app-navbar',
templateUrl: 'navbar.component.html', templateUrl: 'navbar.component.html',
...@@ -30,11 +34,15 @@ export class NavbarComponent { ...@@ -30,11 +34,15 @@ export class NavbarComponent {
@Output() logout: EventEmitter<any> = new EventEmitter(); @Output() logout: EventEmitter<any> = new EventEmitter();
@Output() openEditProfile: EventEmitter<any> = new EventEmitter(); @Output() openEditProfile: EventEmitter<any> = new EventEmitter();
getLogoHref() { /**
* Returns logo href.
*
* @return string
*/
getLogoHref(): string {
if (this.instance.config.design.design_logo) { if (this.instance.config.design.design_logo) {
return `${this.apiUrl}/download-instance-file/${this.instance.name}/${this.instance.config.design.design_logo}`; return `${this.apiUrl}/download-instance-file/${this.instance.name}/${this.instance.config.design.design_logo}`;
} else {
return 'assets/cesam_anis40.png';
} }
return 'assets/cesam_anis40.png';
} }
} }
import { TestBed, ComponentFixture } from '@angular/core/testing';
import { SpinnerComponent } from './spinner.component';
describe('[Shared][Component] SpinnerComponent', () => {
let component: SpinnerComponent;
let fixture: ComponentFixture<SpinnerComponent>;
beforeEach(() => {
TestBed.configureTestingModule({
declarations: [SpinnerComponent]
}).compileComponents();
fixture = TestBed.createComponent(SpinnerComponent);
component = fixture.componentInstance;
});
it('should create the component', () => {
expect(component).toBeDefined();
});
});
...@@ -9,9 +9,13 @@ ...@@ -9,9 +9,13 @@
import { Component, ChangeDetectionStrategy } from '@angular/core'; import { Component, ChangeDetectionStrategy } from '@angular/core';
/**
* @class
* @classdesc Spinner component.
*/
@Component({ @Component({
selector: 'app-spinner', selector: 'app-spinner',
templateUrl: 'spinner.component.html', templateUrl: 'spinner.component.html',
changeDetection: ChangeDetectionStrategy.OnPush changeDetection: ChangeDetectionStrategy.OnPush
}) })
export class SpinnerComponent { } export class SpinnerComponent { }
\ No newline at end of file
import { AttributeListByFamilyPipe } from './attribute-list-by-family.pipe';
import { ATTRIBUTE_LIST } from '../../../test-data';
describe('[Shared][Pipes] AttributeListByFamilyPipe', () => {
let pipe = new AttributeListByFamilyPipe();
it('should return attributes corresponding to the given criteria family ID', () => {
expect(pipe.transform(ATTRIBUTE_LIST, 1).length).toEqual(1);
expect(pipe.transform(ATTRIBUTE_LIST, 1)).toContain(ATTRIBUTE_LIST[0]);
});
});
...@@ -11,7 +11,15 @@ import { Pipe, PipeTransform } from '@angular/core'; ...@@ -11,7 +11,15 @@ import { Pipe, PipeTransform } from '@angular/core';
import { Attribute } from 'src/app/metamodel/models'; import { Attribute } from 'src/app/metamodel/models';
@Pipe({name: 'attributeListByFamily'}) /**
* @class
* @classdesc Returns attributes corresponding to the given criteria family ID.
*
* @example
* // returns attributes that matching with the criteria family ID among the attribute list
* {{ attributeList | attributesListByFamily:1 }}
*/
@Pipe({ name: 'attributeListByFamily' })
export class AttributeListByFamilyPipe implements PipeTransform { export class AttributeListByFamilyPipe implements PipeTransform {
transform(attributeList: Attribute[], idCriteriaFamily: number): Attribute[] { transform(attributeList: Attribute[], idCriteriaFamily: number): Attribute[] {
return attributeList.filter(attribute => attribute.id_criteria_family === idCriteriaFamily); return attributeList.filter(attribute => attribute.id_criteria_family === idCriteriaFamily);
......
import { DatasetByNamePipe } from './dataset-by-name.pipe';
import { DATASET_LIST } from '../../../test-data';
describe('[Shared][Pipes] DatasetByNamePipe', () => {
let pipe = new DatasetByNamePipe();
it('should return dataset corresponding to the given name', () => {
expect(pipe.transform(DATASET_LIST, 'myDataset')).toEqual(DATASET_LIST[0]);
});
});
...@@ -11,7 +11,15 @@ import { Pipe, PipeTransform } from '@angular/core'; ...@@ -11,7 +11,15 @@ import { Pipe, PipeTransform } from '@angular/core';
import { Dataset } from 'src/app/metamodel/models'; import { Dataset } from 'src/app/metamodel/models';
@Pipe({name: 'datasetByName'}) /**
* @class
* @classdesc Returns dataset corresponding to the given name.
*
* @example
* // returns dataset object that matching with the 'myDataset' name among the dataset list
* {{ datasetList | datasetByName:'myDataset' }}
*/
@Pipe({ name: 'datasetByName' })
export class DatasetByNamePipe implements PipeTransform { export class DatasetByNamePipe implements PipeTransform {
transform(datasetList: Dataset[], datasetName: string): Dataset { transform(datasetList: Dataset[], datasetName: string): Dataset {
return datasetList.find(dataset => dataset.name === datasetName); return datasetList.find(dataset => dataset.name === datasetName);
......
import { DatasetListByFamilyPipe } from './dataset-list-by-family.pipe';
import { DATASET_LIST } from '../../../test-data';
describe('[Shared][Pipes] DatasetListByFamilyPipe', () => {
let pipe = new DatasetListByFamilyPipe();
it('should return datasets corresponding to the given dataset family ID', () => {
expect(pipe.transform(DATASET_LIST, 1)).toEqual(DATASET_LIST);
});
});
...@@ -11,7 +11,15 @@ import { Pipe, PipeTransform } from '@angular/core'; ...@@ -11,7 +11,15 @@ import { Pipe, PipeTransform } from '@angular/core';
import { Dataset } from 'src/app/metamodel/models'; import { Dataset } from 'src/app/metamodel/models';
@Pipe({name: 'datasetListByFamily'}) /**
* @class
* @classdesc Returns datasets corresponding to the given dataset family ID.
*
* @example
* // returns datasets that matching with the dataset family ID among the dataset list
* {{ datasetList | datasetListByFamily:1 }}
*/
@Pipe({ name: 'datasetListByFamily' })
export class DatasetListByFamilyPipe implements PipeTransform { export class DatasetListByFamilyPipe implements PipeTransform {
transform(datasetList: Dataset[], idDatasetFamily: number): Dataset[] { transform(datasetList: Dataset[], idDatasetFamily: number): Dataset[] {
return datasetList.filter(dataset => dataset.id_dataset_family === idDatasetFamily); return datasetList.filter(dataset => dataset.id_dataset_family === idDatasetFamily);
......
...@@ -11,7 +11,7 @@ import { DatasetListByFamilyPipe } from './dataset-list-by-family.pipe'; ...@@ -11,7 +11,7 @@ import { DatasetListByFamilyPipe } from './dataset-list-by-family.pipe';
import { AttributeListByFamilyPipe } from './attribute-list-by-family.pipe'; import { AttributeListByFamilyPipe } from './attribute-list-by-family.pipe';
import { SurveyByNamePipe } from './survey-by-name.pipe'; import { SurveyByNamePipe } from './survey-by-name.pipe';
import { OptionListBySelectPipe } from './option-list-by-select.pipe'; import { OptionListBySelectPipe } from './option-list-by-select.pipe';
import { OutputFamilyById } from './output-family-by-id.pipe'; import { OutputFamilyByIdPipe } from './output-family-by-id.pipe';
import { DatasetByNamePipe } from './dataset-by-name.pipe'; import { DatasetByNamePipe } from './dataset-by-name.pipe';
import { InstanceByNamePipe } from './instance-by-name.pipe'; import { InstanceByNamePipe } from './instance-by-name.pipe';
...@@ -20,7 +20,7 @@ export const sharedPipes = [ ...@@ -20,7 +20,7 @@ export const sharedPipes = [
AttributeListByFamilyPipe, AttributeListByFamilyPipe,
SurveyByNamePipe, SurveyByNamePipe,
OptionListBySelectPipe, OptionListBySelectPipe,
OutputFamilyById, OutputFamilyByIdPipe,
DatasetByNamePipe, DatasetByNamePipe,
InstanceByNamePipe InstanceByNamePipe
]; ];
import { InstanceByNamePipe } from './instance-by-name.pipe';
import { INSTANCE_LIST } from '../../../test-data';
describe('[Shared][Pipes] InstanceByNamePipe', () => {
let pipe = new InstanceByNamePipe();
it('should return survey corresponding to the given name', () => {
expect(pipe.transform(INSTANCE_LIST, 'myOtherInstance')).toEqual(INSTANCE_LIST[0]);
});
});
...@@ -11,7 +11,15 @@ import { Pipe, PipeTransform } from '@angular/core'; ...@@ -11,7 +11,15 @@ import { Pipe, PipeTransform } from '@angular/core';
import { Instance } from 'src/app/metamodel/models'; import { Instance } from 'src/app/metamodel/models';
@Pipe({name: 'instanceByName'}) /**
* @class
* @classdesc Returns instance corresponding to the given name.
*
* @example
* // returns instance object that matching with the 'myInstance' name among the instance list
* {{ instanceList | instanceByName:'myInstance' }}
*/
@Pipe({ name: 'instanceByName' })
export class InstanceByNamePipe implements PipeTransform { export class InstanceByNamePipe implements PipeTransform {
transform(instanceList: Instance[], instanceName: string): Instance { transform(instanceList: Instance[], instanceName: string): Instance {
return instanceList.find(instance => instance.name === instanceName); return instanceList.find(instance => instance.name === instanceName);
......
import { OptionListBySelectPipe } from './option-list-by-select.pipe';
import { SELECT_OPTION_LIST } from '../../../test-data';
describe('[Shared][Pipes] OptionListBySelect', () => {
let pipe = new OptionListBySelectPipe();
it('should return options corresponding to the given select name', () => {
expect(pipe.transform(SELECT_OPTION_LIST, 'name_one')).toContain(SELECT_OPTION_LIST[1]);
expect(pipe.transform(SELECT_OPTION_LIST, 'name_one').length).toEqual(1);
});
});
...@@ -11,7 +11,15 @@ import { Pipe, PipeTransform } from '@angular/core'; ...@@ -11,7 +11,15 @@ import { Pipe, PipeTransform } from '@angular/core';
import { SelectOption } from 'src/app/metamodel/models'; import { SelectOption } from 'src/app/metamodel/models';
@Pipe({name: 'optionListBySelect'}) /**
* @class
* @classdesc Returns options corresponding to the given select name.
*
* @example
* // returns options that matching with the select name among the option list
* {{ optionList | optionListBySelect:'search_flag' }}
*/
@Pipe({ name: 'optionListBySelect' })
export class OptionListBySelectPipe implements PipeTransform { export class OptionListBySelectPipe implements PipeTransform {
transform(optionList: SelectOption[], selectName: string): SelectOption[] { transform(optionList: SelectOption[], selectName: string): SelectOption[] {
return optionList.filter(option => option.select_name === selectName); return optionList.filter(option => option.select_name === selectName);
......
import { OutputFamilyByIdPipe } from './output-family-by-id.pipe';
import { OUTPUT_FAMILY_LIST } from '../../../test-data';
describe('[Shared][Pipes] OutputFamilyByIdPipe', () => {
let pipe = new OutputFamilyByIdPipe();
it('should return output family corresponding to the given ID', () => {
expect(pipe.transform(OUTPUT_FAMILY_LIST, 1)).toEqual(OUTPUT_FAMILY_LIST[1]);
});
});
...@@ -11,8 +11,16 @@ import { Pipe, PipeTransform } from '@angular/core'; ...@@ -11,8 +11,16 @@ import { Pipe, PipeTransform } from '@angular/core';
import { OutputFamily } from 'src/app/metamodel/models'; import { OutputFamily } from 'src/app/metamodel/models';
@Pipe({name: 'outputFamilyById'}) /**
export class OutputFamilyById implements PipeTransform { * @class
* @classdesc Returns output family corresponding to the given ID.
*
* @example
* // returns output family object that matching with the ID 1 among the output family list
* {{ outputFamilyList | outputFamilyById:1 }}
*/
@Pipe({ name: 'outputFamilyById' })
export class OutputFamilyByIdPipe implements PipeTransform {
transform(outputFamilyList: OutputFamily[], outputFamilyId: number): OutputFamily { transform(outputFamilyList: OutputFamily[], outputFamilyId: number): OutputFamily {
return outputFamilyList.find(outputFamily => outputFamily.id === outputFamilyId); return outputFamilyList.find(outputFamily => outputFamily.id === outputFamilyId);
} }
......
import { SurveyByNamePipe } from './survey-by-name.pipe';
import { SURVEY_LIST } from '../../../test-data';
describe('[Shared][Pipes] SurveyByNamePipe', () => {
let pipe = new SurveyByNamePipe();
it('should return survey corresponding to the given name', () => {
expect(pipe.transform(SURVEY_LIST, 'survey-one')).toEqual(SURVEY_LIST[0]);
});
});
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