Skip to content
Permalink
Browse files

Add recognition to boolean UIE properties without `true`

  • Loading branch information...
thiagodp committed Apr 6, 2019
1 parent 1264c33 commit f04274b060a922d241cdef794d1919110451468a
Showing with 76 additions and 17 deletions.
  1. +68 −17 __tests__/nlp/UIPropertyRecognizerTest.spec.ts
  2. +8 −0 modules/nlp/UIPropertyRecognizer.ts
@@ -53,29 +53,80 @@ describe( 'UIPropertyRecognizerTest', () => {
expect( node.value.value ).toBe( expectedValue );
}

describe( 'recognizes', () => {

it( 'recognizes an id with a value', () => {
shouldRecognize( '- id é "foo"', 'id', 'foo' );
} );
it( 'an id with a value', () => {
shouldRecognize( '- id é "foo"', 'id', 'foo' );
} );

it( 'recognizes a max length with a value', () => {
shouldRecognize( '- comprimento máximo é 8', 'maxlength', 8 );
} );
it( 'a max length with a value', () => {
shouldRecognize( '- comprimento máximo é 8', 'maxlength', 8 );
} );

it( 'recognizes a min length with a value', () => {
shouldRecognize( '- comprimento mínimo é 1', 'minlength', 1 );
} );
it( 'a min length with a value', () => {
shouldRecognize( '- comprimento mínimo é 1', 'minlength', 1 );
} );

it( 'recognizes a max value with a value', () => {
shouldRecognize( '- valor máximo é 7.33', 'maxvalue', 7.33 );
} );
it( 'a max value with a value', () => {
shouldRecognize( '- valor máximo é 7.33', 'maxvalue', 7.33 );
} );

it( 'recognizes a min value with a value', () => {
shouldRecognize( '- valor mínimo é -15.22', 'minvalue', -15.22 );
} );
it( 'a min value with a value', () => {
shouldRecognize( '- valor mínimo é -15.22', 'minvalue', -15.22 );
} );

it( 'a value with a query', () => {
shouldRecognize( '- valor está em "SELECT * FROM someTable"', 'value', 'SELECT * FROM someTable' );
} );

describe( 'a required property', () => {

it( 'with true', () => {
shouldRecognize( '- obrigatório é true', 'required', true );
} );

it( 'with false', () => {
shouldRecognize( '- obrigatório é false', 'required', false );
} );

it( 'with verdadeiro', () => {
shouldRecognize( '- obrigatório é verdadeiro', 'required', true );
} );

it( 'with falso', () => {
shouldRecognize( '- obrigatório é falso', 'required', false );
} );

it( 'without value as true', () => {
shouldRecognize( '- obrigatório', 'required', true );
} );

} );

describe( 'an editable property', () => {

it( 'with true', () => {
shouldRecognize( '- editável é true', 'editable', true );
} );

it( 'with false', () => {
shouldRecognize( '- editável é false', 'editable', false );
} );

it( 'with verdadeiro', () => {
shouldRecognize( '- editável é verdadeiro', 'editable', true );
} );

it( 'with falso', () => {
shouldRecognize( '- editável é falso', 'editable', false );
} );

it( 'without value as true', () => {
shouldRecognize( '- editável', 'editable', true );
} );

} );

it( 'recognizes a value with a query', () => {
shouldRecognize( '- valor está em "SELECT * FROM someTable"', 'value', 'SELECT * FROM someTable' );
} );

} );
@@ -12,6 +12,7 @@ import { NLPTrainer } from './NLPTrainer';
import { NLPResultProcessor, NodeSentenceRecognizer } from './NodeSentenceRecognizer';
import { RuleBuilder } from './RuleBuilder';
import { DEFAULT_UI_PROPERTY_SYNTAX_RULE, UI_PROPERTY_SYNTAX_RULES } from './SyntaxRules';
import { UIPropertyTypes } from '../util/UIPropertyTypes';

/**
* UI element property sentence recognizer.
@@ -110,6 +111,13 @@ export class UIPropertyRecognizer {
}
}

// A boolean property without value ?
const booleanProperties: string[] = [ UIPropertyTypes.REQUIRED, UIPropertyTypes.EDITABLE ];
if ( booleanProperties.indexOf( property ) >= 0 &&
! r.entities.find( e => e.entity === Entities.BOOL_VALUE ) ) {
item.value = new EntityValue( Entities.BOOL_VALUE, true );
}

return item;
};

0 comments on commit f04274b

Please sign in to comment.
You can’t perform that action at this time.