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

add tests for [admin][instance][dataset-group]

parent 8454e3d5
No related branches found
No related tags found
2 merge requests!72Develop,!64Resolve "Tests client: Tester le module dataset-group de la partie admin->instance"
Showing
with 480 additions and 0 deletions
/**
* 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 { BrowserAnimationsModule } from '@angular/platform-browser/animations';
import { MockStore, provideMockStore } from '@ngrx/store/testing';
import { Dataset, DatasetGroup } from 'src/app/metamodel/models';
import { DatasetGroupFormComponent } from './dataset-group-form.component';
describe('[admin][instance][dataset-group][components] DatasetGroupFormComponent', () => {
let component: DatasetGroupFormComponent;
let fixture: ComponentFixture<DatasetGroupFormComponent>;
let store: MockStore;
let spy;
let datasetGroup: DatasetGroup = { datasets: [], id: 1, instance_name: 'test', role: '' };
let dataset: Dataset = {
cone_search_config_id: 1,
data_path: '',
datatable_enabled: false,
datatable_selectable_rows: true,
description: '',
display: 10,
download_ascii: true,
download_csv: false,
download_json: false,
download_vo: false,
full_data_path: '',
id_database: 10,
id_dataset_family: 1,
label: '',
name: '',
public: true,
server_link_enabled: false,
table_ref: ''
};
beforeEach(() => {
TestBed.configureTestingModule({
declarations: [
DatasetGroupFormComponent,
],
imports: [
BrowserAnimationsModule,
],
providers: [
provideMockStore({})
]
});
fixture = TestBed.createComponent(DatasetGroupFormComponent);
component = fixture.componentInstance;
store = TestBed.inject(MockStore);
component.datasetList = [];
component.datasetGroup = datasetGroup;
spy = jest.spyOn(component.onSubmit, 'emit');
fixture.detectChanges();
});
it('should create the component', () => {
expect(component).toBeTruthy();
});
it('submit() should emit datasetgroup, form.value and datasets', () => {
component.submit();
expect(spy).toHaveBeenCalledTimes(1);
expect(spy).toHaveBeenCalledWith({ ...datasetGroup, ...component.form.value, datasets: component.groupDatasets })
});
it('submit() should emit form.value and datasets', () => {
component.datasetGroup = null;
component.submit();
expect(spy).toHaveBeenCalledTimes(1);
expect(spy).toHaveBeenCalledWith({ ...component.form.value, datasets: component.groupDatasets })
});
it('getAvailableDatasets() should return an array with 2 elements', () => {
component.datasetList = [{ ...dataset, name: 'test1' }, { ...dataset, name: 'test2' }, { ...dataset, name: 'test1' }];
component.groupDatasets = ['test2'];
let result = component.getAvailableDatasets();
expect(result.length).toEqual(2);
});
it('addDatasets(selectElement) should add the dataset in groupDataSets array', () => {
let selectElement = { options: [{ selected: true, value: { ...dataset, name: 'test' } }] };
component.groupDatasets = [];
expect(component.groupDatasets.length).toEqual(0)
component.addDatasets(selectElement);
expect(component.groupDatasets.length).toEqual(1);
expect(component.groupDatasets[0]).toEqual(selectElement.options[0].value)
});
it('removeDatasets(selectElement) should remove the dataset from groupDataSets', () => {
let selectElement = { options: [{ selected: true, value: dataset }] };
component.groupDatasets = [dataset];
expect(component.groupDatasets.length).toEqual(1);
component.removeDatasets(selectElement)
expect(component.groupDatasets.length).toEqual(0);
});
})
/**
* 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 { BrowserAnimationsModule } from '@angular/platform-browser/animations';
import { MockStore, provideMockStore } from '@ngrx/store/testing';
import { DatasetGroupTableComponent } from './dataset-group-table.component';
describe('[admin][instance][dataset-group][components] DatasetGroupTableComponent', () => {
let component: DatasetGroupTableComponent;
let fixture: ComponentFixture<DatasetGroupTableComponent>;
let store: MockStore;
beforeEach(() => {
TestBed.configureTestingModule({
declarations: [
DatasetGroupTableComponent,
],
imports: [
BrowserAnimationsModule,
],
providers: [
provideMockStore({})
]
});
fixture = TestBed.createComponent(DatasetGroupTableComponent);
component = fixture.componentInstance;
store = TestBed.inject(MockStore);
fixture.detectChanges();
});
it('should create the component', () => {
expect(component).toBeTruthy();
});
})
/**
* 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 { dummiesComponents } from './index';
describe('[[admin][instance][webpage][components]index', () => {
it('Test index components', () => {
expect(dummiesComponents.length).toEqual(2);
});
});
\ No newline at end of file
/**
* 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 { Component } from '@angular/core';
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
import { RouterTestingModule } from '@angular/router/testing';
import { MockStore, provideMockStore } from '@ngrx/store/testing';
import { DatasetGroup } from 'src/app/metamodel/models';
import { DatasetGroupListComponent } from './dataset-group-list.component';
import * as datasetGroupActions from 'src/app/metamodel/actions/dataset-group.actions';
@Component({
template: ''
})
class DummyComponent {
}
describe('[admin][instance][dataset-group][containers] DatasetGroupListComponent', () => {
let component: DatasetGroupListComponent;
let fixture: ComponentFixture<DatasetGroupListComponent>;
let store: MockStore;
let spy;
beforeEach(() => {
TestBed.configureTestingModule({
declarations: [
DatasetGroupListComponent,
],
imports: [
BrowserAnimationsModule,
RouterTestingModule.withRoutes([
{ path: 'test', component: DummyComponent }
])
],
providers: [
provideMockStore({})
]
});
fixture = TestBed.createComponent(DatasetGroupListComponent);
component = fixture.componentInstance;
store = TestBed.inject(MockStore);
fixture.detectChanges();
});
it('should create the component', () => {
expect(component).toBeTruthy();
});
it('deleteDatasetGroup(datasetGroup: DatasetGroup) should dispatch deleteDatasetGroup action', () => {
let datasetGroup: DatasetGroup = { datasets: [], id: 1, instance_name: 'test', role: 'test' };
spy = jest.spyOn(store, 'dispatch');
component.deleteDatasetGroup(datasetGroup);
expect(spy).toHaveBeenCalledTimes(1);
expect(spy).toHaveBeenCalledWith(datasetGroupActions.deleteDatasetGroup({ datasetGroup }))
});
})
/**
* 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 { BrowserAnimationsModule } from '@angular/platform-browser/animations';
import { MockStore, provideMockStore } from '@ngrx/store/testing';
import { DatasetGroup } from 'src/app/metamodel/models';
import * as datasetGroupActions from 'src/app/metamodel/actions/dataset-group.actions';
import { EditDatasetGroupComponent } from './edit-dataset-group.component';
describe('[admin][instance][dataset-group][containers] EditDatasetGroupComponent', () => {
let component: EditDatasetGroupComponent;
let fixture: ComponentFixture<EditDatasetGroupComponent>;
let store: MockStore;
let spy;
beforeEach(() => {
TestBed.configureTestingModule({
declarations: [
EditDatasetGroupComponent,
],
imports: [
BrowserAnimationsModule,
],
providers: [
provideMockStore({})
]
});
fixture = TestBed.createComponent(EditDatasetGroupComponent);
component = fixture.componentInstance;
store = TestBed.inject(MockStore);
fixture.detectChanges();
});
it('should create the component', () => {
expect(component).toBeTruthy();
});
it('deleteDatasetGroup(datasetGroup: DatasetGroup) should dispatch deleteDatasetGroup action', () => {
let datasetGroup: DatasetGroup = { datasets: [], id: 1, instance_name: 'test', role: 'test' };
spy = jest.spyOn(store, 'dispatch');
component.editDatasetGroup(datasetGroup);
expect(spy).toHaveBeenCalledTimes(1);
expect(spy).toHaveBeenCalledWith(datasetGroupActions.editDatasetGroup({ datasetGroup }))
});
})
/**
* 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 { BrowserAnimationsModule } from '@angular/platform-browser/animations';
import { MockStore, provideMockStore } from '@ngrx/store/testing';
import { DatasetGroup } from 'src/app/metamodel/models';
import * as datasetGroupActions from 'src/app/metamodel/actions/dataset-group.actions';
import { NewDatasetGroupComponent } from './new-dataset-group.component';
import { Component } from '@angular/core';
import { RouterTestingModule } from '@angular/router/testing';
@Component({
template: ''
})
class DummyComponent {
}
describe('[admin][instance][dataset-group][containers] NewDatasetGroupComponent', () => {
let component: NewDatasetGroupComponent;
let fixture: ComponentFixture<NewDatasetGroupComponent>;
let store: MockStore;
let spy;
beforeEach(() => {
TestBed.configureTestingModule({
declarations: [
NewDatasetGroupComponent,
],
imports: [
BrowserAnimationsModule,
RouterTestingModule.withRoutes([
{ path: 'test', component: DummyComponent }
])
],
providers: [
provideMockStore({})
]
});
fixture = TestBed.createComponent(NewDatasetGroupComponent);
component = fixture.componentInstance;
store = TestBed.inject(MockStore);
fixture.detectChanges();
});
it('should create the component', () => {
expect(component).toBeTruthy();
});
it('deleteDatasetGroup(datasetGroup: DatasetGroup) should dispatch deleteDatasetGroup action', () => {
let datasetGroup: DatasetGroup = { datasets: [], id: 1, instance_name: 'test', role: 'test' };
spy = jest.spyOn(store, 'dispatch');
component.addNewDatasetGroup(datasetGroup);
expect(spy).toHaveBeenCalledTimes(1);
expect(spy).toHaveBeenCalledWith(datasetGroupActions.addDatasetGroup({ datasetGroup }))
});
})
/**
* 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 } from 'jasmine-marbles';
import { DatasetGroupTitleResolver } from './dataset-group-title.resolver';
import * as instanceSelector from 'src/app/metamodel/selectors/instance.selector';
import { Instance } from 'src/app/metamodel/models';
import { ActivatedRouteSnapshot } from '@angular/router';
describe('[admin][instance][dataset-group] DatasetGroupTitleResolver', () => {
let datasetGroupTitleResolver: DatasetGroupTitleResolver;
let store: MockStore;
let mockInstanceSelectorSelectInstanceByRouteName;
let instance: Instance;
let component;
beforeEach(() => {
TestBed.configureTestingModule({
imports: [],
providers: [
DatasetGroupTitleResolver,
provideMockStore({}),
]
})
instance = { ...instance, label: 'test_label', }
store = TestBed.inject(MockStore);
datasetGroupTitleResolver = TestBed.inject(DatasetGroupTitleResolver);
mockInstanceSelectorSelectInstanceByRouteName = store.overrideSelector(instanceSelector.selectInstanceByRouteName, instance);
});
it('should be created', () => {
expect(datasetGroupTitleResolver).toBeTruthy();
});
it('resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) should return test_label - Dataset-groups list ', () => {
const expected = cold('a', { a: instance.label + ' - Dataset-groups list' });
let route: ActivatedRouteSnapshot;
component = { name: 'DatasetGroupListComponent' }
route = { ...route, component: component, children: [], root: null, parent: null, firstChild: null, pathFromRoot: null, paramMap: null, queryParamMap: null };
let result = datasetGroupTitleResolver.resolve(route, null);
expect(result).toBeObservable(expected);
});
it('resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) should return test_label - New dataset-group ', () => {
const expected = cold('a', { a: instance.label + ' - New dataset-group' });
let route: ActivatedRouteSnapshot;
component = { name: 'TestComponent' }
route = { ...route, component: component, children: [], root: null, parent: null, firstChild: null, pathFromRoot: null, paramMap: null, queryParamMap: null };
let result = datasetGroupTitleResolver.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 { DatasetGroupModule } from './dataset-group.module';
describe('[admin][instance][dataset-group]DatasetGroupModule', () => {
it('Test DatasetGroupModule module', () => {
expect(DatasetGroupModule.name).toEqual('DatasetGroupModule');
});
});
/**
* 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 { DatasetGroup, Instance } from 'src/app/metamodel/models';
import { EditDatasetGroupTitleResolver } from './edit-dataset-group-title.resolver';
import * as datasetGroupSelector from 'src/app/metamodel/selectors/dataset-group.selector';
describe('[admin][instance][dataset-group] DatasetGroupTitleResolver', () => {
let editDatasetGroupTitleResolver: EditDatasetGroupTitleResolver;
let store: MockStore;
let mockDatasetGroupSelectorGroupListIsLoaded;
let mockInstanceSelectorInstanceByRouteName;
let mockDatasetGroupSelectorDatasetGroupByRouteId;
let instance: Instance;
let datasetGroup: DatasetGroup;
beforeEach(() => {
TestBed.configureTestingModule({
imports: [],
providers: [
EditDatasetGroupTitleResolver,
provideMockStore({}),
]
})
instance = { ...instance, label: 'instance_test_label' }
store = TestBed.inject(MockStore);
datasetGroup = { datasets: [], id: 1, instance_name: 'test', role: 'test' };
editDatasetGroupTitleResolver = TestBed.inject(EditDatasetGroupTitleResolver);
mockDatasetGroupSelectorDatasetGroupByRouteId = store.overrideSelector(datasetGroupSelector.selectDatasetGroupByRouteId, datasetGroup);
mockDatasetGroupSelectorGroupListIsLoaded = store.overrideSelector(datasetGroupSelector.selectDatasetGroupListIsLoaded, false);
mockInstanceSelectorInstanceByRouteName = store.overrideSelector(instanceSelector.selectInstanceByRouteName, instance);
});
it('should be created', () => {
expect(editDatasetGroupTitleResolver).toBeTruthy();
});
it('shoud dispatch datasetGroupActions.loadDatasetGroupList() action and return datasetGroupListIsLoaded', () => {
const expected = cold('a', { a: [] });
let spy = jest.spyOn(store, 'dispatch');
let result = hot('a', { a: editDatasetGroupTitleResolver.resolve(null, null) });
expect(result).toBeObservable(expected);
expect(spy).toHaveBeenCalledTimes(1);
});
it('should return test - Edit dataset-group test', () => {
mockDatasetGroupSelectorGroupListIsLoaded = store.overrideSelector(datasetGroupSelector.selectDatasetGroupListIsLoaded, true);
let result = editDatasetGroupTitleResolver.resolve(null, null);
const expected = cold('a', { a: instance.label + " - Edit dataset-group " + datasetGroup.role });
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