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

add test for admin/instance/dataset/components

parent 459b4a75
No related branches found
No related tags found
2 merge requests!72Develop,!66Resolve "Tests client: Tester le module dataset de la partie admin->instance"
/**
* 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 { TemplateRef } from '@angular/core';
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { ReactiveFormsModule } from '@angular/forms';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
import { BsModalRef, BsModalService } from 'ngx-bootstrap/modal';
import { Column } from 'src/app/admin/store/models';
import { Attribute } from 'src/app/metamodel/models';
import { AddAttributeComponent } from './add-attribute.component';
describe('[admin][instance][dataset][components] AddAttributeComponent', () => {
let component: AddAttributeComponent;
let fixture: ComponentFixture<AddAttributeComponent>;
const modalServiceStub = {
show: jest.fn(),
};
beforeEach(() => {
TestBed.configureTestingModule({
declarations: [
AddAttributeComponent,
],
providers: [
BsModalRef,
{ provide: BsModalService, useValue: modalServiceStub }
],
imports: [
BrowserAnimationsModule,
ReactiveFormsModule
],
});
fixture = TestBed.createComponent(AddAttributeComponent);
component = fixture.componentInstance;
let attribute: Attribute;
component.attributeList = [{ ...attribute, name: 'test1' }, { ...attribute, name: 'test2test' }]
fixture.detectChanges();
});
it('should create the component', () => {
expect(component).toBeTruthy();
});
it('should call modalRef.show(template)', () => {
let template: TemplateRef<any> = null;
let spyOnLoadColumnList = jest.spyOn(component.loadColumnList, 'emit');
let spy = jest.spyOn(modalServiceStub, 'show');
component.openModal(template);
expect(spy).toHaveBeenCalledTimes(1);
expect(spy).toHaveBeenCalledWith(template);
expect(spyOnLoadColumnList).toHaveBeenCalledTimes(1);
});
it('alreadyExists(columnName: string) should return true', () => {
expect(component.alreadyExists('test1')).toEqual(true);
expect(component.alreadyExists('test')).toEqual(false);
});
it('alreadyExists(columnName: string) should call emit on add', () => {
let spy = jest.spyOn(component.add, 'emit');
let column: Column = { name: 'test', type: 'test' };
component.addNewAttribute(column);
expect(spy).toHaveBeenCalledTimes(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 { TemplateRef } from '@angular/core';
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { ReactiveFormsModule } from '@angular/forms';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
import { BsModalRef, BsModalService } from 'ngx-bootstrap/modal';
import { Instance } from 'src/app/metamodel/models';
import { InstanceButtonsComponent } from './instance-buttons.component';
describe('[admin][instance][dataset][components] InstanceButtonsComponent', () => {
let component: InstanceButtonsComponent;
let fixture: ComponentFixture<InstanceButtonsComponent>;
const modalServiceStub = {
show: jest.fn(),
};
let instance: Instance;
beforeEach(() => {
TestBed.configureTestingModule({
declarations: [
InstanceButtonsComponent,
],
providers: [
BsModalRef,
{ provide: BsModalService, useValue: modalServiceStub }
],
imports: [
BrowserAnimationsModule,
ReactiveFormsModule
],
});
fixture = TestBed.createComponent(InstanceButtonsComponent);
component = fixture.componentInstance;
component.instance = { ...instance, name: 'test' };
fixture.detectChanges();
});
it('should create the component', () => {
expect(component).toBeTruthy();
});
it('should call modalRef.show(template)', () => {
let template: TemplateRef<any> = null;
let spy = jest.spyOn(modalServiceStub, 'show');
component.openModal(template);
expect(spy).toHaveBeenCalledTimes(1);
expect(spy).toHaveBeenCalledWith(template);
});
});
/**
* 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 { cold, hot } from 'jasmine-marbles';
import * as datasetSelector from 'src/app/metamodel/selectors/dataset.selector';
import * as datasetActions from 'src/app/metamodel/actions/dataset.actions';
import { ConfigureDatasetTitleResolver } from './configure-dataset-title.resolver';
import { Dataset, Instance } from 'src/app/metamodel/models';
import * as instanceSelector from 'src/app/metamodel/selectors/instance.selector';
import { ActivatedRouteSnapshot } from '@angular/router';
import { Type } from '@angular/core';
class MockActivatedRouteSnapshot extends ActivatedRouteSnapshot{
constructor() {
super()
}
component: any;
}
describe('[admin][instance][dataset] ConfigureDatasetTitleResolver', () => {
let configureDatasetTitleResolver: ConfigureDatasetTitleResolver;
let store: MockStore;
let mockDatabaseSelectorDatasetListIsLoaded;
let mockDatabaseSelectorDatasetByRouteName;
let mockInstanceSelectorInstanceByRouteName;
let dataset: Dataset;
dataset = { ...dataset, label: 'test_dataset_label' };
let instance: Instance;
beforeEach(() => {
TestBed.configureTestingModule({
imports: [],
providers: [
ConfigureDatasetTitleResolver,
provideMockStore({}),
]
})
store = TestBed.inject(MockStore);
configureDatasetTitleResolver = TestBed.inject(ConfigureDatasetTitleResolver);
mockDatabaseSelectorDatasetListIsLoaded = store.overrideSelector(datasetSelector.selectDatasetListIsLoaded, false);
mockDatabaseSelectorDatasetByRouteName = store.overrideSelector(datasetSelector.selectDatasetByRouteName, dataset);
});
it('should be created', () => {
expect(configureDatasetTitleResolver).toBeTruthy();
});
it('should dispatch datasetActions loadDatasetList action and return datasetListIsLoaded ', () => {
const expected = cold('a', { a: [] });
let spy = jest.spyOn(store, 'dispatch');
let result = hot('a', { a: configureDatasetTitleResolver.resolve(null, null) });
expect(result).toBeObservable(expected);
expect(spy).toHaveBeenCalledTimes(1);
expect(spy).toHaveBeenCalledWith(datasetActions.loadDatasetList());
});
it('should return test_instance_label - Edit dataset test_dataset_label ', () => {
const expected = cold('a', { a: "test_instance_label - Edit dataset test_dataset_label" });
instance = {...instance, label: 'test_instance_label'}
mockDatabaseSelectorDatasetListIsLoaded = store.overrideSelector(datasetSelector.selectDatasetListIsLoaded, true);
mockInstanceSelectorInstanceByRouteName = store.overrideSelector(instanceSelector.selectInstanceByRouteName, instance);
let route: MockActivatedRouteSnapshot;
route = { ...route, component: { name: 'test'}, firstChild: null,root: null, parent: null, children: null, paramMap: null, queryParamMap: null, pathFromRoot: null}
let result = configureDatasetTitleResolver.resolve(route, null);
expect(result).toBeObservable(expected);
});
it('should return test_instance_label - Configure dataset test_dataset_label', () => {
const expected = cold('a', { a: 'test_instance_label - Configure dataset test_dataset_label' });
instance = {...instance, label: 'test_instance_label'}
mockDatabaseSelectorDatasetListIsLoaded = store.overrideSelector(datasetSelector.selectDatasetListIsLoaded, true);
mockInstanceSelectorInstanceByRouteName = store.overrideSelector(instanceSelector.selectInstanceByRouteName, instance);
let route: MockActivatedRouteSnapshot;
route = { ...route, component: { name: 'ConfigureDatasetComponent'}, firstChild: null,root: null, parent: null, children: null, paramMap: null, queryParamMap: null, pathFromRoot: null}
let result = configureDatasetTitleResolver.resolve(route, null);
expect(result).toBeObservable(expected);
});
});
/**
* 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 { cold, hot } from 'jasmine-marbles';
import * as instanceSelector from 'src/app/metamodel/selectors/instance.selector';
import { ActivatedRouteSnapshot } from '@angular/router';
import { DatasetTitleResolver } from './dataset-title.resolver';
import { Instance } from 'src/app/metamodel/models';
class MockActivatedRouteSnapshot extends ActivatedRouteSnapshot {
constructor() {
super()
}
component: any;
}
describe('[admin][instance][dataset] DatasetTitleResolver', () => {
let datasetTitleResolver: DatasetTitleResolver;
let store: MockStore;
let mockInstanceSelectorInstanceByRouteName;
let instance: Instance;
beforeEach(() => {
TestBed.configureTestingModule({
imports: [],
providers: [
DatasetTitleResolver,
provideMockStore({}),
]
})
store = TestBed.inject(MockStore);
datasetTitleResolver = TestBed.inject(DatasetTitleResolver);
mockInstanceSelectorInstanceByRouteName = store.overrideSelector(instanceSelector.selectInstanceByRouteName, instance);
instance = { ...instance, label: 'test_instance_label' }
});
it('should be created', () => {
expect(datasetTitleResolver).toBeTruthy();
});
it('should return test_instance_label - New dataset', () => {
const expected = cold('a', { a: "test_instance_label - New dataset" });
let route: MockActivatedRouteSnapshot;
route = { ...route, component: { name: 'test' }, firstChild: null, root: null, parent: null, children: null, paramMap: null, queryParamMap: null, pathFromRoot: null }
let result = datasetTitleResolver.resolve(route, null);
expect(result).toBeObservable(expected);
});
it('should return test_instance_label - Datasets list', () => {
const expected = cold('a', { a: 'test_instance_label - Datasets list' });
instance = { ...instance, label: 'test_instance_label' }
mockInstanceSelectorInstanceByRouteName = store.overrideSelector(instanceSelector.selectInstanceByRouteName, instance);
let route: MockActivatedRouteSnapshot;
route = {
...route,
component: { name: 'DatasetListComponent' },
firstChild: null,
root: null,
parent: null,
children: null,
paramMap: null,
queryParamMap: null,
pathFromRoot: null
}
let result = datasetTitleResolver.resolve(route, null);
expect(result).toBeObservable(expected);
});
});
/**
* 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 { DatasetModule } from './dataset.module';
describe('[Database] DatabaseModule', () => {
it('Test Dataset module', () => {
expect(DatasetModule.name).toEqual('DatasetModule');
});
});
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