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

Tests on criterion model => DONE

parent b25ba3fe
No related branches found
No related tags found
2 merge requests!29Develop,!8Resolve "Add tests for instance store module"
......@@ -5,7 +5,7 @@ import { ConeSearchService } from '../services/cone-search.service';
import { ToastrService } from 'ngx-toastr';
import { TestBed } from '@angular/core/testing';
import { provideMockActions } from '@ngrx/effects/testing';
import { criterionToString, stringToCriterion } from './';
import { criterionToString, stringToCriterion, getPrettyCriterion, getPrettyOperator } from './';
// import { criterionToString, getCriterionStr, getHost } from './criterion.model';
import {
FieldCriterion,
......@@ -50,20 +50,7 @@ describe('CriterionModel', () => {
expect(criterionToString(selectMultipleCriterion)).toEqual(expected);
});
// id: 1,
// name: 'myAttribute',
// label: 'my attribute',
// form_label: 'My Attribute',
// output_display: 1,
// criteria_display: 1,
// search_type: 'field',
// operator: 'eq',
// type: 'field',
// min: 'one', // optional
// max: 'two', // optional
// display_detail: 1,
// options: [{ label: 'option1', value: 'one', display: 1 }, { label: 'option2', value: 'two', display: 2 }] // optional
it.only('#stringToCriterion should convert string criterion into object', () => {
it('#stringToCriterion should convert string criterion into object', () => {
let attribute: Attribute = {
id: 1,
name: 'myAttribute',
......@@ -154,40 +141,125 @@ describe('CriterionModel', () => {
search_type: 'select-multiple',
operator: 'eq',
type: 'field',
min: 'one|two',
min: '1|2',
display_detail: 1,
options: [{ label: 'one', value: '1', display: 1 }, { label: 'two', value: '2', display: 2 }, { label: 'three', value: '3', display: 3 }]
};
expected = { id: 1, type: 'multiple', options: [{ label: 'one', value: '1', display: 1 }, { label: 'three', value: '3', display: 3 }] } as SelectMultipleCriterion;
expect(stringToCriterion(attribute, ['', '', '1|3'])).toEqual(expected);
attribute = {
id: 1,
name: 'myAttribute',
label: 'my attribute',
form_label: 'My Attribute',
output_display: 1,
criteria_display: 1,
search_type: 'select-multiple',
operator: 'eq',
type: 'field',
min: '1|2',
display_detail: 1,
options: [{ label: 'one', value: '1', display: 1 }, { label: 'two', value: '2', display: 2 }, { label: 'three', value: '3', display: 3 }]
};
expected = { id: 1, type: 'multiple', options: [{ label: 'one', value: '1', display: 1 }, { label: 'two', value: '2', display: 2 }] } as SelectMultipleCriterion;
expect(stringToCriterion(attribute)).toEqual(expected);
attribute = {
id: 1,
name: 'myAttribute',
label: 'my attribute',
form_label: 'My Attribute',
output_display: 1,
criteria_display: 1,
search_type: 'json',
operator: 'eq',
type: 'field',
display_detail: 1
};
expected = { id: 1, type: 'json', path: 'path', operator: 'op', value: 'value' } as JsonCriterion;
expect(stringToCriterion(attribute, ['', '', 'path|op|value'])).toEqual(expected);
attribute = {
id: 1,
name: 'myAttribute',
label: 'my attribute',
form_label: 'My Attribute',
output_display: 1,
criteria_display: 1,
search_type: 'json',
operator: 'eq',
type: 'field',
min: 'path|op|value',
display_detail: 1
};
expect(stringToCriterion(attribute)).toEqual(expected);
attribute = {
id: 1,
name: 'myAttribute',
label: 'my attribute',
form_label: 'My Attribute',
output_display: 1,
criteria_display: 1,
search_type: '',
operator: 'eq',
type: 'field',
display_detail: 1
};
expect(stringToCriterion(attribute)).toBeNull();
});
// it('#getPrettyCriterion should print criterion correctly', () => {
// const fieldCriterion = { id: 1, type: 'field', operator: 'eq', value: 'value' } as FieldCriterion;
// let expectedPrintedCriterion = '= value';
// expect(getPrettyCriterion(fieldCriterion)).toEqual(expectedPrintedCriterion);
// const jsonCriterion = { id: 1, type: 'json', path: 'path', operator: 'eq', value: 'value' } as JsonCriterion;
// expectedPrintedCriterion = 'path eq value';
// expect(getPrettyCriterion(jsonCriterion)).toEqual(expectedPrintedCriterion);
// const selectMultipleCriterion = { id: 1, type: 'multiple', options: [{label: 'un', value: '1', display: 1}, {label: 'deux', value: '2', display: 2}] } as SelectMultipleCriterion;
// expectedPrintedCriterion = '[un,deux]';
// expect(getPrettyCriterion(selectMultipleCriterion)).toEqual(expectedPrintedCriterion);
// let betweenCriterion = { id: 1, type: 'between', min: 'un', max: null } as BetweenCriterion;
// expectedPrintedCriterion = '>= un';
// expect(getPrettyCriterion(betweenCriterion)).toEqual(expectedPrintedCriterion);
// betweenCriterion = { id: 1, type: 'between', min: null, max: 'deux' } as BetweenCriterion;
// expectedPrintedCriterion = '<= deux';
// expect(getPrettyCriterion(betweenCriterion)).toEqual(expectedPrintedCriterion);
// betweenCriterion = { id: 1, type: 'between', min: 'un', max: 'deux' } as BetweenCriterion;
// expectedPrintedCriterion = '∈ [un;deux]';
// expect(getPrettyCriterion(betweenCriterion)).toEqual(expectedPrintedCriterion);
// const listCriterion = { id: 1, type: 'list', values: ['un', 'deux'] } as ListCriterion;
// expectedPrintedCriterion = '= [un,deux]';
// expect(getPrettyCriterion(listCriterion)).toEqual(expectedPrintedCriterion);
// const notCriterion = {id: 1, type: null} as Criterion;
// expectedPrintedCriterion = 'Criterion type not valid!';
// expect(getPrettyCriterion(notCriterion)).toEqual(expectedPrintedCriterion);
// });
// id: 1,
// name: 'myAttribute',
// label: 'my attribute',
// form_label: 'My Attribute',
// output_display: 1,
// criteria_display: 1,
// search_type: 'field',
// operator: 'eq',
// type: 'field',
// min: 'one', // optional
// max: 'two', // optional
// display_detail: 1,
// options: [{ label: 'option1', value: 'one', display: 1 }, { label: 'option2', value: 'two', display: 2 }] // optional
it('#getPrettyCriterion should print criterion correctly', () => {
const fieldCriterion = { id: 1, type: 'field', operator: 'eq', value: 'value' } as FieldCriterion;
let expectedPrintedCriterion = '= value';
expect(getPrettyCriterion(fieldCriterion)).toEqual(expectedPrintedCriterion);
const jsonCriterion = { id: 1, type: 'json', path: 'path', operator: 'eq', value: 'value' } as JsonCriterion;
expectedPrintedCriterion = 'path eq value';
expect(getPrettyCriterion(jsonCriterion)).toEqual(expectedPrintedCriterion);
const selectMultipleCriterion = { id: 1, type: 'multiple', options: [{label: 'un', value: '1', display: 1}, {label: 'deux', value: '2', display: 2}] } as SelectMultipleCriterion;
expectedPrintedCriterion = '[un,deux]';
expect(getPrettyCriterion(selectMultipleCriterion)).toEqual(expectedPrintedCriterion);
let betweenCriterion = { id: 1, type: 'between', min: 'un', max: null } as BetweenCriterion;
expectedPrintedCriterion = '>= un';
expect(getPrettyCriterion(betweenCriterion)).toEqual(expectedPrintedCriterion);
betweenCriterion = { id: 1, type: 'between', min: null, max: 'deux' } as BetweenCriterion;
expectedPrintedCriterion = '<= deux';
expect(getPrettyCriterion(betweenCriterion)).toEqual(expectedPrintedCriterion);
betweenCriterion = { id: 1, type: 'between', min: 'un', max: 'deux' } as BetweenCriterion;
expectedPrintedCriterion = '∈ [un;deux]';
expect(getPrettyCriterion(betweenCriterion)).toEqual(expectedPrintedCriterion);
const listCriterion = { id: 1, type: 'list', values: ['un', 'deux'] } as ListCriterion;
expectedPrintedCriterion = '= [un,deux]';
expect(getPrettyCriterion(listCriterion)).toEqual(expectedPrintedCriterion);
const notCriterion = {id: 1, type: null} as Criterion;
expectedPrintedCriterion = 'Criterion type not valid!';
expect(getPrettyCriterion(notCriterion)).toEqual(expectedPrintedCriterion);
});
it('#getPrettyOperator() should prettify operator', () => {
expect(getPrettyOperator('eq')).toEqual('=');
expect(getPrettyOperator('neq')).toEqual('');
expect(getPrettyOperator('gt')).toEqual('>');
expect(getPrettyOperator('gte')).toEqual('>=');
expect(getPrettyOperator('lt')).toEqual('<');
expect(getPrettyOperator('lte')).toEqual('<=');
expect(getPrettyOperator('lk')).toEqual('like');
expect(getPrettyOperator('nlk')).toEqual('not like');
expect(getPrettyOperator('in')).toEqual('in');
expect(getPrettyOperator('nin')).toEqual('not in');
expect(getPrettyOperator('toto')).toEqual('toto');
expect(getPrettyOperator('')).toEqual('');
expect(getPrettyOperator('')).toEqual('');
});
});
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