From fb97373bef7dfe30b5fdb3e094a3d939824e7c0f Mon Sep 17 00:00:00 2001 From: Tifenn Guillas <tifenn.guillas@gmail.com> Date: Fri, 10 Sep 2021 15:23:03 +0200 Subject: [PATCH] Tests on criterion model => DONE --- .../store/models/criterion.model.spec.ts | 156 +++++++++++++----- 1 file changed, 114 insertions(+), 42 deletions(-) diff --git a/client/src/app/instance/store/models/criterion.model.spec.ts b/client/src/app/instance/store/models/criterion.model.spec.ts index 8a4153f1..ed2fa4d2 100644 --- a/client/src/app/instance/store/models/criterion.model.spec.ts +++ b/client/src/app/instance/store/models/criterion.model.spec.ts @@ -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(''); + }); }); -- GitLab