c2fo/nools

2013-12-17 19:36:43
error loading package.json: Error: ENOENT, open '/home/testling/projects/testling-chroot/home/c2fo/repos/9181a9e340d58780c5d636f6647ebe445089c1ba.1387309003208/package.json'
2013-12-17 20:06:10
8.0
✓9.0
✓10.0
✓20.0
✓21.0
✓22.0
✓23.0
✓24.0
✓25.0
✓26.0
✓27.0
28.0
✓29.0
✓14.0
✓15.0
✓16.0
✓17.0
✓18.0
✓19.0
✓20.0
✓21.0
✓22.0
✓23.0
✓24.0
✓6.0
✓6.0
✓6.0
1..185 ok 1 constraint matcher: match: should check equality ok 2 constraint matcher: match: should check inequality ok 3 constraint matcher: match: should check gt operator ok 4 constraint matcher: match: should check lt operator ok 5 constraint matcher: match: should check gte operator ok 6 constraint matcher: match: should check lte operator ok 7 constraint matcher: match: should check lte operator ok 8 constraint matcher: match: should check like operator ok 9 constraint matcher: match: should check notLike operator ok 10 constraint matcher: match: should check and operator ok 11 constraint matcher: match: should check or operator ok 12 constraint matcher: match: should check with member operator ok 13 constraint matcher: match: should check with in operator ok 14 constraint matcher: match: should check with notIn operator ok 15 constraint matcher: match: should allow properties with in ok 16 constraint matcher: match: should check with boolean associativity ok 17 constraint matcher: match: should check with nested properties ok 18 constraint matcher: match: should check with function ok 19 constraint matcher: match: should check with functions and identifier args ok 20 constraint matcher: match: should check with functions in a deep property chain and identifier args ok 21 constraint matcher: match: should check with functions in a deep property chain that returns an object and identifier args ok 22 constraint matcher: match: should have date helpers ok 23 constraint matcher: match: should create have type helpers ok 24 constraint matcher: match: should check truthy statements ok 25 constraint matcher: toConstraints: should create for expressions ok 26 constraint matcher: toConstraints: should create correct pattern depending on scope ok 27 constraint matcher: toJs: should create js equvalent expression ok 28 constraint matcher: getIdentifiers: should create the correct atoms for and expressions ok 29 constraint matcher: equals: should return true when equal ok 30 constraint matcher: equals: should return false when not equal ok 31 constraint matcher: .getIndexableProperties: should get properties with no functions ok 32 constraint matcher: .getIndexableProperties: should not get non indexable constraints ok 33 constraint matcher: .getIndexableProperties: should not get properties with functions ok 34 flowgetFacts: should get all facts in the session ok 35 flowgetFacts: should get all facts in the session by Type ok 36 agenda-groups: should only fire events in focused group ok 37 agenda-groups: should should treat focus like a stack ok 38 auto-focus: should activate agenda groups in proper order ok 39 async actions: should fire all rules ok 40 events: should emit when facts are asserted ok 41 events: should emit when facts are retracted ok 42 events: should emit when facts are modified ok 43 events: should emit when rules are fired ok 44 exists rule: fact assertion: should only activate once ok 45 exists rule: fact assertion: should not activate once if the fact does not exists ok 46 exists rule: fact retraction: should should handle fact retractions properly ok 47 exists rule: fact modification: should should handle fact modification properly ok 48 exists rule: with from modifier: assert: should should handle fact assertion properly ok 49 exists rule: with from modifier: retract: should should handle fact retraction properly ok 50 exists rule: with from modifier: modify: should should handle fact modification properly ok 51 from condition: with non array properties: should create the proper match contexts ok 52 from condition: with non array properties: should propagate modified facts properly ok 53 from condition: with non array properties: should retract facts properly ok 54 from condition: with js source: should create the proper match contexts ok 55 from condition: with js source: should propagate modified facts properly ok 56 from condition: with array properties: should create all cross product matches ok 57 from condition: with array properties: should retract all cross product matches ok 58 from condition: with not node: should only fullfill if all facts evaluate to false ok 59 from condition: with not node: should only fullfill if all facts evaluate to false ok 60 matchUntilHalt: should match until halt is called ok 61 not rule: with a single fact: should call when a string that does not equal 'hello' ok 62 not rule: with a single fact: should not call when a string that does equal 'hello' ok 63 not rule: with a single fact: should not call when a string that does equal 'hello' and one that does not ok 64 not rule: with multiple facts: should fire rules in order ok 65 not rule: modifying facts: should handle modifications ok 66 or rule: or rule with two conditions of the same type: should should match if one constraints matches ok 67 or rule: or rule with two conditions of the same type: should not call when a a constraint does not match ok 68 or rule: or rule with three conditions: should should match if one constraints matches ok 69 or rule: or rule with three conditions: should not call when none constraints match ok 70 or rule: or rule with different types: should should match if one constraints matches ok 71 or rule: or rule with different types: should not call when none constraints match ok 72 or rule: or with not conditions: should activate for each fact that does not exist ok 73 flowrule: should create a rule ok 74 flowrule: should create a rule with joins properly ok 75 flowrule: should create a rules that are dependent on eachother properly ok 76 salience: should activate in the proper order ok 77 scope option: should call when a string equals 'hello' ok 78 scope option: should call when a string equals 'world' ok 79 scope option: should not call when a string that does equal 'hello' or 'world ok 80 simple rule: should call hello world rule ok 81 Flow compiled: not rule: should call when a string that does not equal 'hello' ok 82 Flow compiled: not rule: should not call when a string that does equal 'hello' ok 83 Flow compiled: not rule: should not call when a string that does equal 'hello' and one that does not ok 84 Flow compiled: or rule: should call when a string equals 'hello' ok 85 Flow compiled: or rule: or rule with not conditions: should activate for each fact that does not exist ok 86 Flow compiled: scoped functions: should call the scoped function ok 87 Flow compiled: events: should emit when facts are asserted ok 88 Flow compiled: events: should emit when facts are retracted ok 89 Flow compiled: events: should emit when facts are modified ok 90 Flow compiled: events: should emit when rules are fired ok 91 Flow compiled: agenda-groups: should only fire events in focused group ok 92 Flow compiled: agenda-groups: should should treat focus like a stack ok 93 Flow compiled: auto-focus: should activate agenda groups in proper order ok 94 Flow compiled: fibonacci nools dsl: should calculate fibonacci 3 ok 95 Flow compiled: fibonacci nools dsl: should calculate fibonacci 4 ok 96 Flow compiled: fibonacci nools dsl: should calculate fibonacci 5 ok 97 Flow compiled: fibonacci nools dsl: should calculate fibonacci 6 ok 98 Flow compiled: diagnosis using dsl: should treat properly ok 99 Flow compiled: getFacts from action: should get all facts ok 100 Flow compiled: getFacts from action: should get facts by type ok 101 nools dsl parser: define: should parse a define statement ok 102 nools dsl parser: define: should throw an error when the define block is missing a name ok 103 nools dsl parser: define: should throw an error for invalid define blocks ok 104 nools dsl parser: define: should throw an error when the global statement is missing a name ok 105 nools dsl parser: define: should throw an error when the global statement is missing a ; ok 106 nools dsl parser: global: should parse a require call statement ok 107 nools dsl parser: global: should parse a require with a '.' character that is not a relative path ok 108 nools dsl parser: global: should resolve relative require paths ok 109 nools dsl parser: global: should parse a member look up ok 110 nools dsl parser: global: should parse a strings ok 111 nools dsl parser: global: should parse a boolean ok 112 nools dsl parser: global: should parse numbers ok 113 nools dsl parser: global: should parse a new instantiation ok 114 nools dsl parser: function: should parse a function statement ok 115 nools dsl parser: function: should throw an error when the function block is missing a name ok 116 nools dsl parser: function: should throw an error for invalid define blocks ok 117 nools dsl parser: rule: should parse rules ok 118 nools dsl parser: rule: should throw an error for invalid rule blocks ok 119 nools dsl parser: rule: should throw an error for a missing name ok 120 nools dsl parser: rule: should parse not conditions ok 121 nools dsl parser: rule: should parse or conditions ok 122 nools dsl parser: rule: should parse when clause with hash and constraints in any order ok 123 nools dsl parser: rule: should parse when clause with from ok 124 nools dsl parser: rule: should parse rules with a string name in double quotes ok 125 nools dsl parser: rule: should parse rules with a string name in single quotes ok 126 nools dsl parser: rule: should parse rules with a string name with inner strings ok 127 nools dsl parser: rule: salience/priority: should parse rules with a salience ok 128 nools dsl parser: rule: salience/priority: should parse rules with a priority ok 129 nools dsl parser: rule: salience/priority: should parse rules with a salience with a ; ok 130 nools dsl parser: rule: salience/priority: should parse rules with a priority with a ; ok 131 nools dsl parser: rule: salience/priority: should throw an error if the salience is not a number ok 132 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' ok 133 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agendaGroup' ok 134 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in '"' ok 135 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in "'" ok 136 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as true ok 137 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as false ok 138 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as true ok 139 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as false ok 140 nools dsl parser: rule: rules with auto-focus/autoFocus: should throw errors for values other than true or false ok 141 nools dsl parser: rule: should throw an error for invalid when clauses ok 142 nools dsl parser: rule: should throw an error for invalid then clauses ok 143 nools dsl parser: rule: should parse rules with exists clause ok 144 A Parser: should parse valid string expressions ok 145 A Parser: should parse regexps and not be greedy ok 146 A Parser: should parse valid string expressions with functions ok 147 A Parser: should parse valid string expressions with property access ok 148 A Parser: should parse valid string expressions with boolean operators ok 149 A Parser: should handle operator associativity properly ok 150 A Parser: should parse arrays ok 151 A Parser: should parse the in operator ok 152 A Parser: should parse the notIn operator ok 153 A Parser: should parse truthy statements ok 154 Rule: createRule: with strings: should create for string ok 155 Rule: createRule: with strings: should create for String ok 156 Rule: createRule: with strings: should create for number ok 157 Rule: createRule: with strings: should create for Number ok 158 Rule: createRule: with strings: should create for date ok 159 Rule: createRule: with strings: should create for Date ok 160 Rule: createRule: with strings: should create for array ok 161 Rule: createRule: with strings: should create for Array ok 162 Rule: createRule: with strings: should create for boolean ok 163 Rule: createRule: with strings: should create for Boolean ok 164 Rule: createRule: with strings: should create for regexp ok 165 Rule: createRule: with strings: should create for Regexp ok 166 Rule: createRule: with strings: should create for object ok 167 Rule: createRule: with strings: should create for Object ok 168 Rule: createRule: with strings: should create for hash ok 169 Rule: createRule: with strings: should create for Hash ok 170 Rule: createRule: with functions: should create for String function ok 171 Rule: createRule: with functions: should create for Number function ok 172 Rule: createRule: with functions: should create for Date function ok 173 Rule: createRule: with functions: should create for [] ok 174 Rule: createRule: with functions: should create for Array function ok 175 Rule: createRule: with functions: should create for Boolean function ok 176 Rule: createRule: with functions: should create for RegExp function ok 177 Rule: createRule: with functions: should create for Object function ok 178 Rule: createRule: with functions: should create for custom functions ok 179 Rule: createRule: should create a composite rule ok 180 Rule: createRule: should create a not pattern ok 181 Rule: createRule: should create a or pattern ok 182 Rule: createRule: should include reference store in constraints ok 183 Rule: createRule: should should include from constraints ok 184 Rule: createRule: should should include from constraints ok 185 Rule: createRule: should should include exists constraints # tests 185 # pass 185 # fail 0
1..185 ok 1 constraint matcher: match: should check equality ok 2 constraint matcher: match: should check inequality ok 3 constraint matcher: match: should check gt operator ok 4 constraint matcher: match: should check lt operator ok 5 constraint matcher: match: should check gte operator ok 6 constraint matcher: match: should check lte operator ok 7 constraint matcher: match: should check lte operator ok 8 constraint matcher: match: should check like operator ok 9 constraint matcher: match: should check notLike operator ok 10 constraint matcher: match: should check and operator ok 11 constraint matcher: match: should check or operator ok 12 constraint matcher: match: should check with member operator ok 13 constraint matcher: match: should check with in operator ok 14 constraint matcher: match: should check with notIn operator ok 15 constraint matcher: match: should allow properties with in ok 16 constraint matcher: match: should check with boolean associativity ok 17 constraint matcher: match: should check with nested properties ok 18 constraint matcher: match: should check with function ok 19 constraint matcher: match: should check with functions and identifier args ok 20 constraint matcher: match: should check with functions in a deep property chain and identifier args ok 21 constraint matcher: match: should check with functions in a deep property chain that returns an object and identifier args ok 22 constraint matcher: match: should have date helpers ok 23 constraint matcher: match: should create have type helpers ok 24 constraint matcher: match: should check truthy statements ok 25 constraint matcher: toConstraints: should create for expressions ok 26 constraint matcher: toConstraints: should create correct pattern depending on scope ok 27 constraint matcher: toJs: should create js equvalent expression ok 28 constraint matcher: getIdentifiers: should create the correct atoms for and expressions ok 29 constraint matcher: equals: should return true when equal ok 30 constraint matcher: equals: should return false when not equal ok 31 constraint matcher: .getIndexableProperties: should get properties with no functions ok 32 constraint matcher: .getIndexableProperties: should not get non indexable constraints ok 33 constraint matcher: .getIndexableProperties: should not get properties with functions ok 34 flowgetFacts: should get all facts in the session ok 35 flowgetFacts: should get all facts in the session by Type ok 36 agenda-groups: should only fire events in focused group ok 37 agenda-groups: should should treat focus like a stack ok 38 auto-focus: should activate agenda groups in proper order ok 39 async actions: should fire all rules ok 40 events: should emit when facts are asserted ok 41 events: should emit when facts are retracted ok 42 events: should emit when facts are modified ok 43 events: should emit when rules are fired ok 44 exists rule: fact assertion: should only activate once ok 45 exists rule: fact assertion: should not activate once if the fact does not exists ok 46 exists rule: fact retraction: should should handle fact retractions properly ok 47 exists rule: fact modification: should should handle fact modification properly ok 48 exists rule: with from modifier: assert: should should handle fact assertion properly ok 49 exists rule: with from modifier: retract: should should handle fact retraction properly ok 50 exists rule: with from modifier: modify: should should handle fact modification properly ok 51 from condition: with non array properties: should create the proper match contexts ok 52 from condition: with non array properties: should propagate modified facts properly ok 53 from condition: with non array properties: should retract facts properly ok 54 from condition: with js source: should create the proper match contexts ok 55 from condition: with js source: should propagate modified facts properly ok 56 from condition: with array properties: should create all cross product matches ok 57 from condition: with array properties: should retract all cross product matches ok 58 from condition: with not node: should only fullfill if all facts evaluate to false ok 59 from condition: with not node: should only fullfill if all facts evaluate to false ok 60 matchUntilHalt: should match until halt is called ok 61 not rule: with a single fact: should call when a string that does not equal 'hello' ok 62 not rule: with a single fact: should not call when a string that does equal 'hello' ok 63 not rule: with a single fact: should not call when a string that does equal 'hello' and one that does not ok 64 not rule: with multiple facts: should fire rules in order ok 65 not rule: modifying facts: should handle modifications ok 66 or rule: or rule with two conditions of the same type: should should match if one constraints matches ok 67 or rule: or rule with two conditions of the same type: should not call when a a constraint does not match ok 68 or rule: or rule with three conditions: should should match if one constraints matches ok 69 or rule: or rule with three conditions: should not call when none constraints match ok 70 or rule: or rule with different types: should should match if one constraints matches ok 71 or rule: or rule with different types: should not call when none constraints match ok 72 or rule: or with not conditions: should activate for each fact that does not exist ok 73 flowrule: should create a rule ok 74 flowrule: should create a rule with joins properly ok 75 flowrule: should create a rules that are dependent on eachother properly ok 76 salience: should activate in the proper order ok 77 scope option: should call when a string equals 'hello' ok 78 scope option: should call when a string equals 'world' ok 79 scope option: should not call when a string that does equal 'hello' or 'world ok 80 simple rule: should call hello world rule ok 81 Flow compiled: not rule: should call when a string that does not equal 'hello' ok 82 Flow compiled: not rule: should not call when a string that does equal 'hello' ok 83 Flow compiled: not rule: should not call when a string that does equal 'hello' and one that does not ok 84 Flow compiled: or rule: should call when a string equals 'hello' ok 85 Flow compiled: or rule: or rule with not conditions: should activate for each fact that does not exist ok 86 Flow compiled: scoped functions: should call the scoped function ok 87 Flow compiled: events: should emit when facts are asserted ok 88 Flow compiled: events: should emit when facts are retracted ok 89 Flow compiled: events: should emit when facts are modified ok 90 Flow compiled: events: should emit when rules are fired ok 91 Flow compiled: agenda-groups: should only fire events in focused group ok 92 Flow compiled: agenda-groups: should should treat focus like a stack ok 93 Flow compiled: auto-focus: should activate agenda groups in proper order ok 94 Flow compiled: fibonacci nools dsl: should calculate fibonacci 3 ok 95 Flow compiled: fibonacci nools dsl: should calculate fibonacci 4 ok 96 Flow compiled: fibonacci nools dsl: should calculate fibonacci 5 ok 97 Flow compiled: fibonacci nools dsl: should calculate fibonacci 6 ok 98 Flow compiled: diagnosis using dsl: should treat properly ok 99 Flow compiled: getFacts from action: should get all facts ok 100 Flow compiled: getFacts from action: should get facts by type ok 101 nools dsl parser: define: should parse a define statement ok 102 nools dsl parser: define: should throw an error when the define block is missing a name ok 103 nools dsl parser: define: should throw an error for invalid define blocks ok 104 nools dsl parser: define: should throw an error when the global statement is missing a name ok 105 nools dsl parser: define: should throw an error when the global statement is missing a ; ok 106 nools dsl parser: global: should parse a require call statement ok 107 nools dsl parser: global: should parse a require with a '.' character that is not a relative path ok 108 nools dsl parser: global: should resolve relative require paths ok 109 nools dsl parser: global: should parse a member look up ok 110 nools dsl parser: global: should parse a strings ok 111 nools dsl parser: global: should parse a boolean ok 112 nools dsl parser: global: should parse numbers ok 113 nools dsl parser: global: should parse a new instantiation ok 114 nools dsl parser: function: should parse a function statement ok 115 nools dsl parser: function: should throw an error when the function block is missing a name ok 116 nools dsl parser: function: should throw an error for invalid define blocks ok 117 nools dsl parser: rule: should parse rules ok 118 nools dsl parser: rule: should throw an error for invalid rule blocks ok 119 nools dsl parser: rule: should throw an error for a missing name ok 120 nools dsl parser: rule: should parse not conditions ok 121 nools dsl parser: rule: should parse or conditions ok 122 nools dsl parser: rule: should parse when clause with hash and constraints in any order ok 123 nools dsl parser: rule: should parse when clause with from ok 124 nools dsl parser: rule: should parse rules with a string name in double quotes ok 125 nools dsl parser: rule: should parse rules with a string name in single quotes ok 126 nools dsl parser: rule: should parse rules with a string name with inner strings ok 127 nools dsl parser: rule: salience/priority: should parse rules with a salience ok 128 nools dsl parser: rule: salience/priority: should parse rules with a priority ok 129 nools dsl parser: rule: salience/priority: should parse rules with a salience with a ; ok 130 nools dsl parser: rule: salience/priority: should parse rules with a priority with a ; ok 131 nools dsl parser: rule: salience/priority: should throw an error if the salience is not a number ok 132 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' ok 133 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agendaGroup' ok 134 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in '"' ok 135 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in "'" ok 136 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as true ok 137 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as false ok 138 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as true ok 139 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as false ok 140 nools dsl parser: rule: rules with auto-focus/autoFocus: should throw errors for values other than true or false ok 141 nools dsl parser: rule: should throw an error for invalid when clauses ok 142 nools dsl parser: rule: should throw an error for invalid then clauses ok 143 nools dsl parser: rule: should parse rules with exists clause ok 144 A Parser: should parse valid string expressions ok 145 A Parser: should parse regexps and not be greedy ok 146 A Parser: should parse valid string expressions with functions ok 147 A Parser: should parse valid string expressions with property access ok 148 A Parser: should parse valid string expressions with boolean operators ok 149 A Parser: should handle operator associativity properly ok 150 A Parser: should parse arrays ok 151 A Parser: should parse the in operator ok 152 A Parser: should parse the notIn operator ok 153 A Parser: should parse truthy statements ok 154 Rule: createRule: with strings: should create for string ok 155 Rule: createRule: with strings: should create for String ok 156 Rule: createRule: with strings: should create for number ok 157 Rule: createRule: with strings: should create for Number ok 158 Rule: createRule: with strings: should create for date ok 159 Rule: createRule: with strings: should create for Date ok 160 Rule: createRule: with strings: should create for array ok 161 Rule: createRule: with strings: should create for Array ok 162 Rule: createRule: with strings: should create for boolean ok 163 Rule: createRule: with strings: should create for Boolean ok 164 Rule: createRule: with strings: should create for regexp ok 165 Rule: createRule: with strings: should create for Regexp ok 166 Rule: createRule: with strings: should create for object ok 167 Rule: createRule: with strings: should create for Object ok 168 Rule: createRule: with strings: should create for hash ok 169 Rule: createRule: with strings: should create for Hash ok 170 Rule: createRule: with functions: should create for String function ok 171 Rule: createRule: with functions: should create for Number function ok 172 Rule: createRule: with functions: should create for Date function ok 173 Rule: createRule: with functions: should create for [] ok 174 Rule: createRule: with functions: should create for Array function ok 175 Rule: createRule: with functions: should create for Boolean function ok 176 Rule: createRule: with functions: should create for RegExp function ok 177 Rule: createRule: with functions: should create for Object function ok 178 Rule: createRule: with functions: should create for custom functions ok 179 Rule: createRule: should create a composite rule ok 180 Rule: createRule: should create a not pattern ok 181 Rule: createRule: should create a or pattern ok 182 Rule: createRule: should include reference store in constraints ok 183 Rule: createRule: should should include from constraints ok 184 Rule: createRule: should should include from constraints ok 185 Rule: createRule: should should include exists constraints # tests 185 # pass 185 # fail 0
1..185 ok 1 constraint matcher: match: should check equality ok 2 constraint matcher: match: should check inequality ok 3 constraint matcher: match: should check gt operator ok 4 constraint matcher: match: should check lt operator ok 5 constraint matcher: match: should check gte operator ok 6 constraint matcher: match: should check lte operator ok 7 constraint matcher: match: should check lte operator ok 8 constraint matcher: match: should check like operator ok 9 constraint matcher: match: should check notLike operator ok 10 constraint matcher: match: should check and operator ok 11 constraint matcher: match: should check or operator ok 12 constraint matcher: match: should check with member operator ok 13 constraint matcher: match: should check with in operator ok 14 constraint matcher: match: should check with notIn operator ok 15 constraint matcher: match: should allow properties with in ok 16 constraint matcher: match: should check with boolean associativity ok 17 constraint matcher: match: should check with nested properties ok 18 constraint matcher: match: should check with function ok 19 constraint matcher: match: should check with functions and identifier args ok 20 constraint matcher: match: should check with functions in a deep property chain and identifier args ok 21 constraint matcher: match: should check with functions in a deep property chain that returns an object and identifier args ok 22 constraint matcher: match: should have date helpers ok 23 constraint matcher: match: should create have type helpers ok 24 constraint matcher: match: should check truthy statements ok 25 constraint matcher: toConstraints: should create for expressions ok 26 constraint matcher: toConstraints: should create correct pattern depending on scope ok 27 constraint matcher: toJs: should create js equvalent expression ok 28 constraint matcher: getIdentifiers: should create the correct atoms for and expressions ok 29 constraint matcher: equals: should return true when equal ok 30 constraint matcher: equals: should return false when not equal ok 31 constraint matcher: .getIndexableProperties: should get properties with no functions ok 32 constraint matcher: .getIndexableProperties: should not get non indexable constraints ok 33 constraint matcher: .getIndexableProperties: should not get properties with functions ok 34 flowgetFacts: should get all facts in the session ok 35 flowgetFacts: should get all facts in the session by Type ok 36 agenda-groups: should only fire events in focused group ok 37 agenda-groups: should should treat focus like a stack ok 38 auto-focus: should activate agenda groups in proper order ok 39 async actions: should fire all rules ok 40 events: should emit when facts are asserted ok 41 events: should emit when facts are retracted ok 42 events: should emit when facts are modified ok 43 events: should emit when rules are fired ok 44 exists rule: fact assertion: should only activate once ok 45 exists rule: fact assertion: should not activate once if the fact does not exists ok 46 exists rule: fact retraction: should should handle fact retractions properly ok 47 exists rule: fact modification: should should handle fact modification properly ok 48 exists rule: with from modifier: assert: should should handle fact assertion properly ok 49 exists rule: with from modifier: retract: should should handle fact retraction properly ok 50 exists rule: with from modifier: modify: should should handle fact modification properly ok 51 from condition: with non array properties: should create the proper match contexts ok 52 from condition: with non array properties: should propagate modified facts properly ok 53 from condition: with non array properties: should retract facts properly ok 54 from condition: with js source: should create the proper match contexts ok 55 from condition: with js source: should propagate modified facts properly ok 56 from condition: with array properties: should create all cross product matches ok 57 from condition: with array properties: should retract all cross product matches ok 58 from condition: with not node: should only fullfill if all facts evaluate to false ok 59 from condition: with not node: should only fullfill if all facts evaluate to false ok 60 matchUntilHalt: should match until halt is called ok 61 not rule: with a single fact: should call when a string that does not equal 'hello' ok 62 not rule: with a single fact: should not call when a string that does equal 'hello' ok 63 not rule: with a single fact: should not call when a string that does equal 'hello' and one that does not ok 64 not rule: with multiple facts: should fire rules in order ok 65 not rule: modifying facts: should handle modifications ok 66 or rule: or rule with two conditions of the same type: should should match if one constraints matches ok 67 or rule: or rule with two conditions of the same type: should not call when a a constraint does not match ok 68 or rule: or rule with three conditions: should should match if one constraints matches ok 69 or rule: or rule with three conditions: should not call when none constraints match ok 70 or rule: or rule with different types: should should match if one constraints matches ok 71 or rule: or rule with different types: should not call when none constraints match ok 72 or rule: or with not conditions: should activate for each fact that does not exist ok 73 flowrule: should create a rule ok 74 flowrule: should create a rule with joins properly ok 75 flowrule: should create a rules that are dependent on eachother properly ok 76 salience: should activate in the proper order ok 77 scope option: should call when a string equals 'hello' ok 78 scope option: should call when a string equals 'world' ok 79 scope option: should not call when a string that does equal 'hello' or 'world ok 80 simple rule: should call hello world rule ok 81 Flow compiled: not rule: should call when a string that does not equal 'hello' ok 82 Flow compiled: not rule: should not call when a string that does equal 'hello' ok 83 Flow compiled: not rule: should not call when a string that does equal 'hello' and one that does not ok 84 Flow compiled: or rule: should call when a string equals 'hello' ok 85 Flow compiled: or rule: or rule with not conditions: should activate for each fact that does not exist ok 86 Flow compiled: scoped functions: should call the scoped function ok 87 Flow compiled: events: should emit when facts are asserted ok 88 Flow compiled: events: should emit when facts are retracted ok 89 Flow compiled: events: should emit when facts are modified ok 90 Flow compiled: events: should emit when rules are fired ok 91 Flow compiled: agenda-groups: should only fire events in focused group ok 92 Flow compiled: agenda-groups: should should treat focus like a stack ok 93 Flow compiled: auto-focus: should activate agenda groups in proper order ok 94 Flow compiled: fibonacci nools dsl: should calculate fibonacci 3 ok 95 Flow compiled: fibonacci nools dsl: should calculate fibonacci 4 ok 96 Flow compiled: fibonacci nools dsl: should calculate fibonacci 5 ok 97 Flow compiled: fibonacci nools dsl: should calculate fibonacci 6 ok 98 Flow compiled: diagnosis using dsl: should treat properly ok 99 Flow compiled: getFacts from action: should get all facts ok 100 Flow compiled: getFacts from action: should get facts by type ok 101 nools dsl parser: define: should parse a define statement ok 102 nools dsl parser: define: should throw an error when the define block is missing a name ok 103 nools dsl parser: define: should throw an error for invalid define blocks ok 104 nools dsl parser: define: should throw an error when the global statement is missing a name ok 105 nools dsl parser: define: should throw an error when the global statement is missing a ; ok 106 nools dsl parser: global: should parse a require call statement ok 107 nools dsl parser: global: should parse a require with a '.' character that is not a relative path ok 108 nools dsl parser: global: should resolve relative require paths ok 109 nools dsl parser: global: should parse a member look up ok 110 nools dsl parser: global: should parse a strings ok 111 nools dsl parser: global: should parse a boolean ok 112 nools dsl parser: global: should parse numbers ok 113 nools dsl parser: global: should parse a new instantiation ok 114 nools dsl parser: function: should parse a function statement ok 115 nools dsl parser: function: should throw an error when the function block is missing a name ok 116 nools dsl parser: function: should throw an error for invalid define blocks ok 117 nools dsl parser: rule: should parse rules ok 118 nools dsl parser: rule: should throw an error for invalid rule blocks ok 119 nools dsl parser: rule: should throw an error for a missing name ok 120 nools dsl parser: rule: should parse not conditions ok 121 nools dsl parser: rule: should parse or conditions ok 122 nools dsl parser: rule: should parse when clause with hash and constraints in any order ok 123 nools dsl parser: rule: should parse when clause with from ok 124 nools dsl parser: rule: should parse rules with a string name in double quotes ok 125 nools dsl parser: rule: should parse rules with a string name in single quotes ok 126 nools dsl parser: rule: should parse rules with a string name with inner strings ok 127 nools dsl parser: rule: salience/priority: should parse rules with a salience ok 128 nools dsl parser: rule: salience/priority: should parse rules with a priority ok 129 nools dsl parser: rule: salience/priority: should parse rules with a salience with a ; ok 130 nools dsl parser: rule: salience/priority: should parse rules with a priority with a ; ok 131 nools dsl parser: rule: salience/priority: should throw an error if the salience is not a number ok 132 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' ok 133 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agendaGroup' ok 134 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in '"' ok 135 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in "'" ok 136 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as true ok 137 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as false ok 138 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as true ok 139 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as false ok 140 nools dsl parser: rule: rules with auto-focus/autoFocus: should throw errors for values other than true or false ok 141 nools dsl parser: rule: should throw an error for invalid when clauses ok 142 nools dsl parser: rule: should throw an error for invalid then clauses ok 143 nools dsl parser: rule: should parse rules with exists clause ok 144 A Parser: should parse valid string expressions ok 145 A Parser: should parse regexps and not be greedy ok 146 A Parser: should parse valid string expressions with functions ok 147 A Parser: should parse valid string expressions with property access ok 148 A Parser: should parse valid string expressions with boolean operators ok 149 A Parser: should handle operator associativity properly ok 150 A Parser: should parse arrays ok 151 A Parser: should parse the in operator ok 152 A Parser: should parse the notIn operator ok 153 A Parser: should parse truthy statements ok 154 Rule: createRule: with strings: should create for string ok 155 Rule: createRule: with strings: should create for String ok 156 Rule: createRule: with strings: should create for number ok 157 Rule: createRule: with strings: should create for Number ok 158 Rule: createRule: with strings: should create for date ok 159 Rule: createRule: with strings: should create for Date ok 160 Rule: createRule: with strings: should create for array ok 161 Rule: createRule: with strings: should create for Array ok 162 Rule: createRule: with strings: should create for boolean ok 163 Rule: createRule: with strings: should create for Boolean ok 164 Rule: createRule: with strings: should create for regexp ok 165 Rule: createRule: with strings: should create for Regexp ok 166 Rule: createRule: with strings: should create for object ok 167 Rule: createRule: with strings: should create for Object ok 168 Rule: createRule: with strings: should create for hash ok 169 Rule: createRule: with strings: should create for Hash ok 170 Rule: createRule: with functions: should create for String function ok 171 Rule: createRule: with functions: should create for Number function ok 172 Rule: createRule: with functions: should create for Date function ok 173 Rule: createRule: with functions: should create for [] ok 174 Rule: createRule: with functions: should create for Array function ok 175 Rule: createRule: with functions: should create for Boolean function ok 176 Rule: createRule: with functions: should create for RegExp function ok 177 Rule: createRule: with functions: should create for Object function ok 178 Rule: createRule: with functions: should create for custom functions ok 179 Rule: createRule: should create a composite rule ok 180 Rule: createRule: should create a not pattern ok 181 Rule: createRule: should create a or pattern ok 182 Rule: createRule: should include reference store in constraints ok 183 Rule: createRule: should should include from constraints ok 184 Rule: createRule: should should include from constraints ok 185 Rule: createRule: should should include exists constraints # tests 185 # pass 185 # fail 0
1..185 ok 1 constraint matcher: match: should check equality ok 2 constraint matcher: match: should check inequality ok 3 constraint matcher: match: should check gt operator ok 4 constraint matcher: match: should check lt operator ok 5 constraint matcher: match: should check gte operator ok 6 constraint matcher: match: should check lte operator ok 7 constraint matcher: match: should check lte operator ok 8 constraint matcher: match: should check like operator ok 9 constraint matcher: match: should check notLike operator ok 10 constraint matcher: match: should check and operator ok 11 constraint matcher: match: should check or operator ok 12 constraint matcher: match: should check with member operator ok 13 constraint matcher: match: should check with in operator ok 14 constraint matcher: match: should check with notIn operator ok 15 constraint matcher: match: should allow properties with in ok 16 constraint matcher: match: should check with boolean associativity ok 17 constraint matcher: match: should check with nested properties ok 18 constraint matcher: match: should check with function ok 19 constraint matcher: match: should check with functions and identifier args ok 20 constraint matcher: match: should check with functions in a deep property chain and identifier args ok 21 constraint matcher: match: should check with functions in a deep property chain that returns an object and identifier args ok 22 constraint matcher: match: should have date helpers ok 23 constraint matcher: match: should create have type helpers ok 24 constraint matcher: match: should check truthy statements ok 25 constraint matcher: toConstraints: should create for expressions ok 26 constraint matcher: toConstraints: should create correct pattern depending on scope ok 27 constraint matcher: toJs: should create js equvalent expression ok 28 constraint matcher: getIdentifiers: should create the correct atoms for and expressions ok 29 constraint matcher: equals: should return true when equal ok 30 constraint matcher: equals: should return false when not equal ok 31 constraint matcher: .getIndexableProperties: should get properties with no functions ok 32 constraint matcher: .getIndexableProperties: should not get non indexable constraints ok 33 constraint matcher: .getIndexableProperties: should not get properties with functions ok 34 flowgetFacts: should get all facts in the session ok 35 flowgetFacts: should get all facts in the session by Type ok 36 agenda-groups: should only fire events in focused group ok 37 agenda-groups: should should treat focus like a stack ok 38 auto-focus: should activate agenda groups in proper order ok 39 async actions: should fire all rules ok 40 events: should emit when facts are asserted ok 41 events: should emit when facts are retracted ok 42 events: should emit when facts are modified ok 43 events: should emit when rules are fired ok 44 exists rule: fact assertion: should only activate once ok 45 exists rule: fact assertion: should not activate once if the fact does not exists ok 46 exists rule: fact retraction: should should handle fact retractions properly ok 47 exists rule: fact modification: should should handle fact modification properly ok 48 exists rule: with from modifier: assert: should should handle fact assertion properly ok 49 exists rule: with from modifier: retract: should should handle fact retraction properly ok 50 exists rule: with from modifier: modify: should should handle fact modification properly ok 51 from condition: with non array properties: should create the proper match contexts ok 52 from condition: with non array properties: should propagate modified facts properly ok 53 from condition: with non array properties: should retract facts properly ok 54 from condition: with js source: should create the proper match contexts ok 55 from condition: with js source: should propagate modified facts properly ok 56 from condition: with array properties: should create all cross product matches ok 57 from condition: with array properties: should retract all cross product matches ok 58 from condition: with not node: should only fullfill if all facts evaluate to false ok 59 from condition: with not node: should only fullfill if all facts evaluate to false ok 60 matchUntilHalt: should match until halt is called ok 61 not rule: with a single fact: should call when a string that does not equal 'hello' ok 62 not rule: with a single fact: should not call when a string that does equal 'hello' ok 63 not rule: with a single fact: should not call when a string that does equal 'hello' and one that does not ok 64 not rule: with multiple facts: should fire rules in order ok 65 not rule: modifying facts: should handle modifications ok 66 or rule: or rule with two conditions of the same type: should should match if one constraints matches ok 67 or rule: or rule with two conditions of the same type: should not call when a a constraint does not match ok 68 or rule: or rule with three conditions: should should match if one constraints matches ok 69 or rule: or rule with three conditions: should not call when none constraints match ok 70 or rule: or rule with different types: should should match if one constraints matches ok 71 or rule: or rule with different types: should not call when none constraints match ok 72 or rule: or with not conditions: should activate for each fact that does not exist ok 73 flowrule: should create a rule ok 74 flowrule: should create a rule with joins properly ok 75 flowrule: should create a rules that are dependent on eachother properly ok 76 salience: should activate in the proper order ok 77 scope option: should call when a string equals 'hello' ok 78 scope option: should call when a string equals 'world' ok 79 scope option: should not call when a string that does equal 'hello' or 'world ok 80 simple rule: should call hello world rule ok 81 Flow compiled: not rule: should call when a string that does not equal 'hello' ok 82 Flow compiled: not rule: should not call when a string that does equal 'hello' ok 83 Flow compiled: not rule: should not call when a string that does equal 'hello' and one that does not ok 84 Flow compiled: or rule: should call when a string equals 'hello' ok 85 Flow compiled: or rule: or rule with not conditions: should activate for each fact that does not exist ok 86 Flow compiled: scoped functions: should call the scoped function ok 87 Flow compiled: events: should emit when facts are asserted ok 88 Flow compiled: events: should emit when facts are retracted ok 89 Flow compiled: events: should emit when facts are modified ok 90 Flow compiled: events: should emit when rules are fired ok 91 Flow compiled: agenda-groups: should only fire events in focused group ok 92 Flow compiled: agenda-groups: should should treat focus like a stack ok 93 Flow compiled: auto-focus: should activate agenda groups in proper order ok 94 Flow compiled: fibonacci nools dsl: should calculate fibonacci 3 ok 95 Flow compiled: fibonacci nools dsl: should calculate fibonacci 4 ok 96 Flow compiled: fibonacci nools dsl: should calculate fibonacci 5 ok 97 Flow compiled: fibonacci nools dsl: should calculate fibonacci 6 ok 98 Flow compiled: diagnosis using dsl: should treat properly ok 99 Flow compiled: getFacts from action: should get all facts ok 100 Flow compiled: getFacts from action: should get facts by type ok 101 nools dsl parser: define: should parse a define statement ok 102 nools dsl parser: define: should throw an error when the define block is missing a name ok 103 nools dsl parser: define: should throw an error for invalid define blocks ok 104 nools dsl parser: define: should throw an error when the global statement is missing a name ok 105 nools dsl parser: define: should throw an error when the global statement is missing a ; ok 106 nools dsl parser: global: should parse a require call statement ok 107 nools dsl parser: global: should parse a require with a '.' character that is not a relative path ok 108 nools dsl parser: global: should resolve relative require paths ok 109 nools dsl parser: global: should parse a member look up ok 110 nools dsl parser: global: should parse a strings ok 111 nools dsl parser: global: should parse a boolean ok 112 nools dsl parser: global: should parse numbers ok 113 nools dsl parser: global: should parse a new instantiation ok 114 nools dsl parser: function: should parse a function statement ok 115 nools dsl parser: function: should throw an error when the function block is missing a name ok 116 nools dsl parser: function: should throw an error for invalid define blocks ok 117 nools dsl parser: rule: should parse rules ok 118 nools dsl parser: rule: should throw an error for invalid rule blocks ok 119 nools dsl parser: rule: should throw an error for a missing name ok 120 nools dsl parser: rule: should parse not conditions ok 121 nools dsl parser: rule: should parse or conditions ok 122 nools dsl parser: rule: should parse when clause with hash and constraints in any order ok 123 nools dsl parser: rule: should parse when clause with from ok 124 nools dsl parser: rule: should parse rules with a string name in double quotes ok 125 nools dsl parser: rule: should parse rules with a string name in single quotes ok 126 nools dsl parser: rule: should parse rules with a string name with inner strings ok 127 nools dsl parser: rule: salience/priority: should parse rules with a salience ok 128 nools dsl parser: rule: salience/priority: should parse rules with a priority ok 129 nools dsl parser: rule: salience/priority: should parse rules with a salience with a ; ok 130 nools dsl parser: rule: salience/priority: should parse rules with a priority with a ; ok 131 nools dsl parser: rule: salience/priority: should throw an error if the salience is not a number ok 132 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' ok 133 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agendaGroup' ok 134 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in '"' ok 135 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in "'" ok 136 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as true ok 137 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as false ok 138 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as true ok 139 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as false ok 140 nools dsl parser: rule: rules with auto-focus/autoFocus: should throw errors for values other than true or false ok 141 nools dsl parser: rule: should throw an error for invalid when clauses ok 142 nools dsl parser: rule: should throw an error for invalid then clauses ok 143 nools dsl parser: rule: should parse rules with exists clause ok 144 A Parser: should parse valid string expressions ok 145 A Parser: should parse regexps and not be greedy ok 146 A Parser: should parse valid string expressions with functions ok 147 A Parser: should parse valid string expressions with property access ok 148 A Parser: should parse valid string expressions with boolean operators ok 149 A Parser: should handle operator associativity properly ok 150 A Parser: should parse arrays ok 151 A Parser: should parse the in operator ok 152 A Parser: should parse the notIn operator ok 153 A Parser: should parse truthy statements ok 154 Rule: createRule: with strings: should create for string ok 155 Rule: createRule: with strings: should create for String ok 156 Rule: createRule: with strings: should create for number ok 157 Rule: createRule: with strings: should create for Number ok 158 Rule: createRule: with strings: should create for date ok 159 Rule: createRule: with strings: should create for Date ok 160 Rule: createRule: with strings: should create for array ok 161 Rule: createRule: with strings: should create for Array ok 162 Rule: createRule: with strings: should create for boolean ok 163 Rule: createRule: with strings: should create for Boolean ok 164 Rule: createRule: with strings: should create for regexp ok 165 Rule: createRule: with strings: should create for Regexp ok 166 Rule: createRule: with strings: should create for object ok 167 Rule: createRule: with strings: should create for Object ok 168 Rule: createRule: with strings: should create for hash ok 169 Rule: createRule: with strings: should create for Hash ok 170 Rule: createRule: with functions: should create for String function ok 171 Rule: createRule: with functions: should create for Number function ok 172 Rule: createRule: with functions: should create for Date function ok 173 Rule: createRule: with functions: should create for [] ok 174 Rule: createRule: with functions: should create for Array function ok 175 Rule: createRule: with functions: should create for Boolean function ok 176 Rule: createRule: with functions: should create for RegExp function ok 177 Rule: createRule: with functions: should create for Object function ok 178 Rule: createRule: with functions: should create for custom functions ok 179 Rule: createRule: should create a composite rule ok 180 Rule: createRule: should create a not pattern ok 181 Rule: createRule: should create a or pattern ok 182 Rule: createRule: should include reference store in constraints ok 183 Rule: createRule: should should include from constraints ok 184 Rule: createRule: should should include from constraints ok 185 Rule: createRule: should should include exists constraints # tests 185 # pass 185 # fail 0
1..185 ok 1 constraint matcher: match: should check equality ok 2 constraint matcher: match: should check inequality ok 3 constraint matcher: match: should check gt operator ok 4 constraint matcher: match: should check lt operator ok 5 constraint matcher: match: should check gte operator ok 6 constraint matcher: match: should check lte operator ok 7 constraint matcher: match: should check lte operator ok 8 constraint matcher: match: should check like operator ok 9 constraint matcher: match: should check notLike operator ok 10 constraint matcher: match: should check and operator ok 11 constraint matcher: match: should check or operator ok 12 constraint matcher: match: should check with member operator ok 13 constraint matcher: match: should check with in operator ok 14 constraint matcher: match: should check with notIn operator ok 15 constraint matcher: match: should allow properties with in ok 16 constraint matcher: match: should check with boolean associativity ok 17 constraint matcher: match: should check with nested properties ok 18 constraint matcher: match: should check with function ok 19 constraint matcher: match: should check with functions and identifier args ok 20 constraint matcher: match: should check with functions in a deep property chain and identifier args ok 21 constraint matcher: match: should check with functions in a deep property chain that returns an object and identifier args ok 22 constraint matcher: match: should have date helpers ok 23 constraint matcher: match: should create have type helpers ok 24 constraint matcher: match: should check truthy statements ok 25 constraint matcher: toConstraints: should create for expressions ok 26 constraint matcher: toConstraints: should create correct pattern depending on scope ok 27 constraint matcher: toJs: should create js equvalent expression ok 28 constraint matcher: getIdentifiers: should create the correct atoms for and expressions ok 29 constraint matcher: equals: should return true when equal ok 30 constraint matcher: equals: should return false when not equal ok 31 constraint matcher: .getIndexableProperties: should get properties with no functions ok 32 constraint matcher: .getIndexableProperties: should not get non indexable constraints ok 33 constraint matcher: .getIndexableProperties: should not get properties with functions ok 34 flowgetFacts: should get all facts in the session ok 35 flowgetFacts: should get all facts in the session by Type ok 36 agenda-groups: should only fire events in focused group ok 37 agenda-groups: should should treat focus like a stack ok 38 auto-focus: should activate agenda groups in proper order ok 39 async actions: should fire all rules ok 40 events: should emit when facts are asserted ok 41 events: should emit when facts are retracted ok 42 events: should emit when facts are modified ok 43 events: should emit when rules are fired ok 44 exists rule: fact assertion: should only activate once ok 45 exists rule: fact assertion: should not activate once if the fact does not exists ok 46 exists rule: fact retraction: should should handle fact retractions properly ok 47 exists rule: fact modification: should should handle fact modification properly ok 48 exists rule: with from modifier: assert: should should handle fact assertion properly ok 49 exists rule: with from modifier: retract: should should handle fact retraction properly ok 50 exists rule: with from modifier: modify: should should handle fact modification properly ok 51 from condition: with non array properties: should create the proper match contexts ok 52 from condition: with non array properties: should propagate modified facts properly ok 53 from condition: with non array properties: should retract facts properly ok 54 from condition: with js source: should create the proper match contexts ok 55 from condition: with js source: should propagate modified facts properly ok 56 from condition: with array properties: should create all cross product matches ok 57 from condition: with array properties: should retract all cross product matches ok 58 from condition: with not node: should only fullfill if all facts evaluate to false ok 59 from condition: with not node: should only fullfill if all facts evaluate to false ok 60 matchUntilHalt: should match until halt is called ok 61 not rule: with a single fact: should call when a string that does not equal 'hello' ok 62 not rule: with a single fact: should not call when a string that does equal 'hello' ok 63 not rule: with a single fact: should not call when a string that does equal 'hello' and one that does not ok 64 not rule: with multiple facts: should fire rules in order ok 65 not rule: modifying facts: should handle modifications ok 66 or rule: or rule with two conditions of the same type: should should match if one constraints matches ok 67 or rule: or rule with two conditions of the same type: should not call when a a constraint does not match ok 68 or rule: or rule with three conditions: should should match if one constraints matches ok 69 or rule: or rule with three conditions: should not call when none constraints match ok 70 or rule: or rule with different types: should should match if one constraints matches ok 71 or rule: or rule with different types: should not call when none constraints match ok 72 or rule: or with not conditions: should activate for each fact that does not exist ok 73 flowrule: should create a rule ok 74 flowrule: should create a rule with joins properly ok 75 flowrule: should create a rules that are dependent on eachother properly ok 76 salience: should activate in the proper order ok 77 scope option: should call when a string equals 'hello' ok 78 scope option: should call when a string equals 'world' ok 79 scope option: should not call when a string that does equal 'hello' or 'world ok 80 simple rule: should call hello world rule ok 81 Flow compiled: not rule: should call when a string that does not equal 'hello' ok 82 Flow compiled: not rule: should not call when a string that does equal 'hello' ok 83 Flow compiled: not rule: should not call when a string that does equal 'hello' and one that does not ok 84 Flow compiled: or rule: should call when a string equals 'hello' ok 85 Flow compiled: or rule: or rule with not conditions: should activate for each fact that does not exist ok 86 Flow compiled: scoped functions: should call the scoped function ok 87 Flow compiled: events: should emit when facts are asserted ok 88 Flow compiled: events: should emit when facts are retracted ok 89 Flow compiled: events: should emit when facts are modified ok 90 Flow compiled: events: should emit when rules are fired ok 91 Flow compiled: agenda-groups: should only fire events in focused group ok 92 Flow compiled: agenda-groups: should should treat focus like a stack ok 93 Flow compiled: auto-focus: should activate agenda groups in proper order ok 94 Flow compiled: fibonacci nools dsl: should calculate fibonacci 3 ok 95 Flow compiled: fibonacci nools dsl: should calculate fibonacci 4 ok 96 Flow compiled: fibonacci nools dsl: should calculate fibonacci 5 ok 97 Flow compiled: fibonacci nools dsl: should calculate fibonacci 6 ok 98 Flow compiled: diagnosis using dsl: should treat properly ok 99 Flow compiled: getFacts from action: should get all facts ok 100 Flow compiled: getFacts from action: should get facts by type ok 101 nools dsl parser: define: should parse a define statement ok 102 nools dsl parser: define: should throw an error when the define block is missing a name ok 103 nools dsl parser: define: should throw an error for invalid define blocks ok 104 nools dsl parser: define: should throw an error when the global statement is missing a name ok 105 nools dsl parser: define: should throw an error when the global statement is missing a ; ok 106 nools dsl parser: global: should parse a require call statement ok 107 nools dsl parser: global: should parse a require with a '.' character that is not a relative path ok 108 nools dsl parser: global: should resolve relative require paths ok 109 nools dsl parser: global: should parse a member look up ok 110 nools dsl parser: global: should parse a strings ok 111 nools dsl parser: global: should parse a boolean ok 112 nools dsl parser: global: should parse numbers ok 113 nools dsl parser: global: should parse a new instantiation ok 114 nools dsl parser: function: should parse a function statement ok 115 nools dsl parser: function: should throw an error when the function block is missing a name ok 116 nools dsl parser: function: should throw an error for invalid define blocks ok 117 nools dsl parser: rule: should parse rules ok 118 nools dsl parser: rule: should throw an error for invalid rule blocks ok 119 nools dsl parser: rule: should throw an error for a missing name ok 120 nools dsl parser: rule: should parse not conditions ok 121 nools dsl parser: rule: should parse or conditions ok 122 nools dsl parser: rule: should parse when clause with hash and constraints in any order ok 123 nools dsl parser: rule: should parse when clause with from ok 124 nools dsl parser: rule: should parse rules with a string name in double quotes ok 125 nools dsl parser: rule: should parse rules with a string name in single quotes ok 126 nools dsl parser: rule: should parse rules with a string name with inner strings ok 127 nools dsl parser: rule: salience/priority: should parse rules with a salience ok 128 nools dsl parser: rule: salience/priority: should parse rules with a priority ok 129 nools dsl parser: rule: salience/priority: should parse rules with a salience with a ; ok 130 nools dsl parser: rule: salience/priority: should parse rules with a priority with a ; ok 131 nools dsl parser: rule: salience/priority: should throw an error if the salience is not a number ok 132 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' ok 133 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agendaGroup' ok 134 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in '"' ok 135 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in "'" ok 136 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as true ok 137 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as false ok 138 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as true ok 139 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as false ok 140 nools dsl parser: rule: rules with auto-focus/autoFocus: should throw errors for values other than true or false ok 141 nools dsl parser: rule: should throw an error for invalid when clauses ok 142 nools dsl parser: rule: should throw an error for invalid then clauses ok 143 nools dsl parser: rule: should parse rules with exists clause ok 144 A Parser: should parse valid string expressions ok 145 A Parser: should parse regexps and not be greedy ok 146 A Parser: should parse valid string expressions with functions ok 147 A Parser: should parse valid string expressions with property access ok 148 A Parser: should parse valid string expressions with boolean operators ok 149 A Parser: should handle operator associativity properly ok 150 A Parser: should parse arrays ok 151 A Parser: should parse the in operator ok 152 A Parser: should parse the notIn operator ok 153 A Parser: should parse truthy statements ok 154 Rule: createRule: with strings: should create for string ok 155 Rule: createRule: with strings: should create for String ok 156 Rule: createRule: with strings: should create for number ok 157 Rule: createRule: with strings: should create for Number ok 158 Rule: createRule: with strings: should create for date ok 159 Rule: createRule: with strings: should create for Date ok 160 Rule: createRule: with strings: should create for array ok 161 Rule: createRule: with strings: should create for Array ok 162 Rule: createRule: with strings: should create for boolean ok 163 Rule: createRule: with strings: should create for Boolean ok 164 Rule: createRule: with strings: should create for regexp ok 165 Rule: createRule: with strings: should create for Regexp ok 166 Rule: createRule: with strings: should create for object ok 167 Rule: createRule: with strings: should create for Object ok 168 Rule: createRule: with strings: should create for hash ok 169 Rule: createRule: with strings: should create for Hash ok 170 Rule: createRule: with functions: should create for String function ok 171 Rule: createRule: with functions: should create for Number function ok 172 Rule: createRule: with functions: should create for Date function ok 173 Rule: createRule: with functions: should create for [] ok 174 Rule: createRule: with functions: should create for Array function ok 175 Rule: createRule: with functions: should create for Boolean function ok 176 Rule: createRule: with functions: should create for RegExp function ok 177 Rule: createRule: with functions: should create for Object function ok 178 Rule: createRule: with functions: should create for custom functions ok 179 Rule: createRule: should create a composite rule ok 180 Rule: createRule: should create a not pattern ok 181 Rule: createRule: should create a or pattern ok 182 Rule: createRule: should include reference store in constraints ok 183 Rule: createRule: should should include from constraints ok 184 Rule: createRule: should should include from constraints ok 185 Rule: createRule: should should include exists constraints # tests 185 # pass 185 # fail 0
1..185 ok 1 constraint matcher: match: should check equality ok 2 constraint matcher: match: should check inequality ok 3 constraint matcher: match: should check gt operator ok 4 constraint matcher: match: should check lt operator ok 5 constraint matcher: match: should check gte operator ok 6 constraint matcher: match: should check lte operator ok 7 constraint matcher: match: should check lte operator ok 8 constraint matcher: match: should check like operator ok 9 constraint matcher: match: should check notLike operator ok 10 constraint matcher: match: should check and operator ok 11 constraint matcher: match: should check or operator ok 12 constraint matcher: match: should check with member operator ok 13 constraint matcher: match: should check with in operator ok 14 constraint matcher: match: should check with notIn operator ok 15 constraint matcher: match: should allow properties with in ok 16 constraint matcher: match: should check with boolean associativity ok 17 constraint matcher: match: should check with nested properties ok 18 constraint matcher: match: should check with function ok 19 constraint matcher: match: should check with functions and identifier args ok 20 constraint matcher: match: should check with functions in a deep property chain and identifier args ok 21 constraint matcher: match: should check with functions in a deep property chain that returns an object and identifier args ok 22 constraint matcher: match: should have date helpers ok 23 constraint matcher: match: should create have type helpers ok 24 constraint matcher: match: should check truthy statements ok 25 constraint matcher: toConstraints: should create for expressions ok 26 constraint matcher: toConstraints: should create correct pattern depending on scope ok 27 constraint matcher: toJs: should create js equvalent expression ok 28 constraint matcher: getIdentifiers: should create the correct atoms for and expressions ok 29 constraint matcher: equals: should return true when equal ok 30 constraint matcher: equals: should return false when not equal ok 31 constraint matcher: .getIndexableProperties: should get properties with no functions ok 32 constraint matcher: .getIndexableProperties: should not get non indexable constraints ok 33 constraint matcher: .getIndexableProperties: should not get properties with functions ok 34 flowgetFacts: should get all facts in the session ok 35 flowgetFacts: should get all facts in the session by Type ok 36 agenda-groups: should only fire events in focused group ok 37 agenda-groups: should should treat focus like a stack ok 38 auto-focus: should activate agenda groups in proper order ok 39 async actions: should fire all rules ok 40 events: should emit when facts are asserted ok 41 events: should emit when facts are retracted ok 42 events: should emit when facts are modified ok 43 events: should emit when rules are fired ok 44 exists rule: fact assertion: should only activate once ok 45 exists rule: fact assertion: should not activate once if the fact does not exists ok 46 exists rule: fact retraction: should should handle fact retractions properly ok 47 exists rule: fact modification: should should handle fact modification properly ok 48 exists rule: with from modifier: assert: should should handle fact assertion properly ok 49 exists rule: with from modifier: retract: should should handle fact retraction properly ok 50 exists rule: with from modifier: modify: should should handle fact modification properly ok 51 from condition: with non array properties: should create the proper match contexts ok 52 from condition: with non array properties: should propagate modified facts properly ok 53 from condition: with non array properties: should retract facts properly ok 54 from condition: with js source: should create the proper match contexts ok 55 from condition: with js source: should propagate modified facts properly ok 56 from condition: with array properties: should create all cross product matches ok 57 from condition: with array properties: should retract all cross product matches ok 58 from condition: with not node: should only fullfill if all facts evaluate to false ok 59 from condition: with not node: should only fullfill if all facts evaluate to false ok 60 matchUntilHalt: should match until halt is called ok 61 not rule: with a single fact: should call when a string that does not equal 'hello' ok 62 not rule: with a single fact: should not call when a string that does equal 'hello' ok 63 not rule: with a single fact: should not call when a string that does equal 'hello' and one that does not ok 64 not rule: with multiple facts: should fire rules in order ok 65 not rule: modifying facts: should handle modifications ok 66 or rule: or rule with two conditions of the same type: should should match if one constraints matches ok 67 or rule: or rule with two conditions of the same type: should not call when a a constraint does not match ok 68 or rule: or rule with three conditions: should should match if one constraints matches ok 69 or rule: or rule with three conditions: should not call when none constraints match ok 70 or rule: or rule with different types: should should match if one constraints matches ok 71 or rule: or rule with different types: should not call when none constraints match ok 72 or rule: or with not conditions: should activate for each fact that does not exist ok 73 flowrule: should create a rule ok 74 flowrule: should create a rule with joins properly ok 75 flowrule: should create a rules that are dependent on eachother properly ok 76 salience: should activate in the proper order ok 77 scope option: should call when a string equals 'hello' ok 78 scope option: should call when a string equals 'world' ok 79 scope option: should not call when a string that does equal 'hello' or 'world ok 80 simple rule: should call hello world rule ok 81 Flow compiled: not rule: should call when a string that does not equal 'hello' ok 82 Flow compiled: not rule: should not call when a string that does equal 'hello' ok 83 Flow compiled: not rule: should not call when a string that does equal 'hello' and one that does not ok 84 Flow compiled: or rule: should call when a string equals 'hello' ok 85 Flow compiled: or rule: or rule with not conditions: should activate for each fact that does not exist ok 86 Flow compiled: scoped functions: should call the scoped function ok 87 Flow compiled: events: should emit when facts are asserted ok 88 Flow compiled: events: should emit when facts are retracted ok 89 Flow compiled: events: should emit when facts are modified ok 90 Flow compiled: events: should emit when rules are fired ok 91 Flow compiled: agenda-groups: should only fire events in focused group ok 92 Flow compiled: agenda-groups: should should treat focus like a stack ok 93 Flow compiled: auto-focus: should activate agenda groups in proper order ok 94 Flow compiled: fibonacci nools dsl: should calculate fibonacci 3 ok 95 Flow compiled: fibonacci nools dsl: should calculate fibonacci 4 ok 96 Flow compiled: fibonacci nools dsl: should calculate fibonacci 5 ok 97 Flow compiled: fibonacci nools dsl: should calculate fibonacci 6 ok 98 Flow compiled: diagnosis using dsl: should treat properly ok 99 Flow compiled: getFacts from action: should get all facts ok 100 Flow compiled: getFacts from action: should get facts by type ok 101 nools dsl parser: define: should parse a define statement ok 102 nools dsl parser: define: should throw an error when the define block is missing a name ok 103 nools dsl parser: define: should throw an error for invalid define blocks ok 104 nools dsl parser: define: should throw an error when the global statement is missing a name ok 105 nools dsl parser: define: should throw an error when the global statement is missing a ; ok 106 nools dsl parser: global: should parse a require call statement ok 107 nools dsl parser: global: should parse a require with a '.' character that is not a relative path ok 108 nools dsl parser: global: should resolve relative require paths ok 109 nools dsl parser: global: should parse a member look up ok 110 nools dsl parser: global: should parse a strings ok 111 nools dsl parser: global: should parse a boolean ok 112 nools dsl parser: global: should parse numbers ok 113 nools dsl parser: global: should parse a new instantiation ok 114 nools dsl parser: function: should parse a function statement ok 115 nools dsl parser: function: should throw an error when the function block is missing a name ok 116 nools dsl parser: function: should throw an error for invalid define blocks ok 117 nools dsl parser: rule: should parse rules ok 118 nools dsl parser: rule: should throw an error for invalid rule blocks ok 119 nools dsl parser: rule: should throw an error for a missing name ok 120 nools dsl parser: rule: should parse not conditions ok 121 nools dsl parser: rule: should parse or conditions ok 122 nools dsl parser: rule: should parse when clause with hash and constraints in any order ok 123 nools dsl parser: rule: should parse when clause with from ok 124 nools dsl parser: rule: should parse rules with a string name in double quotes ok 125 nools dsl parser: rule: should parse rules with a string name in single quotes ok 126 nools dsl parser: rule: should parse rules with a string name with inner strings ok 127 nools dsl parser: rule: salience/priority: should parse rules with a salience ok 128 nools dsl parser: rule: salience/priority: should parse rules with a priority ok 129 nools dsl parser: rule: salience/priority: should parse rules with a salience with a ; ok 130 nools dsl parser: rule: salience/priority: should parse rules with a priority with a ; ok 131 nools dsl parser: rule: salience/priority: should throw an error if the salience is not a number ok 132 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' ok 133 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agendaGroup' ok 134 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in '"' ok 135 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in "'" ok 136 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as true ok 137 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as false ok 138 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as true ok 139 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as false ok 140 nools dsl parser: rule: rules with auto-focus/autoFocus: should throw errors for values other than true or false ok 141 nools dsl parser: rule: should throw an error for invalid when clauses ok 142 nools dsl parser: rule: should throw an error for invalid then clauses ok 143 nools dsl parser: rule: should parse rules with exists clause ok 144 A Parser: should parse valid string expressions ok 145 A Parser: should parse regexps and not be greedy ok 146 A Parser: should parse valid string expressions with functions ok 147 A Parser: should parse valid string expressions with property access ok 148 A Parser: should parse valid string expressions with boolean operators ok 149 A Parser: should handle operator associativity properly ok 150 A Parser: should parse arrays ok 151 A Parser: should parse the in operator ok 152 A Parser: should parse the notIn operator ok 153 A Parser: should parse truthy statements ok 154 Rule: createRule: with strings: should create for string ok 155 Rule: createRule: with strings: should create for String ok 156 Rule: createRule: with strings: should create for number ok 157 Rule: createRule: with strings: should create for Number ok 158 Rule: createRule: with strings: should create for date ok 159 Rule: createRule: with strings: should create for Date ok 160 Rule: createRule: with strings: should create for array ok 161 Rule: createRule: with strings: should create for Array ok 162 Rule: createRule: with strings: should create for boolean ok 163 Rule: createRule: with strings: should create for Boolean ok 164 Rule: createRule: with strings: should create for regexp ok 165 Rule: createRule: with strings: should create for Regexp ok 166 Rule: createRule: with strings: should create for object ok 167 Rule: createRule: with strings: should create for Object ok 168 Rule: createRule: with strings: should create for hash ok 169 Rule: createRule: with strings: should create for Hash ok 170 Rule: createRule: with functions: should create for String function ok 171 Rule: createRule: with functions: should create for Number function ok 172 Rule: createRule: with functions: should create for Date function ok 173 Rule: createRule: with functions: should create for [] ok 174 Rule: createRule: with functions: should create for Array function ok 175 Rule: createRule: with functions: should create for Boolean function ok 176 Rule: createRule: with functions: should create for RegExp function ok 177 Rule: createRule: with functions: should create for Object function ok 178 Rule: createRule: with functions: should create for custom functions ok 179 Rule: createRule: should create a composite rule ok 180 Rule: createRule: should create a not pattern ok 181 Rule: createRule: should create a or pattern ok 182 Rule: createRule: should include reference store in constraints ok 183 Rule: createRule: should should include from constraints ok 184 Rule: createRule: should should include from constraints ok 185 Rule: createRule: should should include exists constraints # tests 185 # pass 185 # fail 0
1..185 ok 1 constraint matcher: match: should check equality ok 2 constraint matcher: match: should check inequality ok 3 constraint matcher: match: should check gt operator ok 4 constraint matcher: match: should check lt operator ok 5 constraint matcher: match: should check gte operator ok 6 constraint matcher: match: should check lte operator ok 7 constraint matcher: match: should check lte operator ok 8 constraint matcher: match: should check like operator ok 9 constraint matcher: match: should check notLike operator ok 10 constraint matcher: match: should check and operator ok 11 constraint matcher: match: should check or operator ok 12 constraint matcher: match: should check with member operator ok 13 constraint matcher: match: should check with in operator ok 14 constraint matcher: match: should check with notIn operator ok 15 constraint matcher: match: should allow properties with in ok 16 constraint matcher: match: should check with boolean associativity ok 17 constraint matcher: match: should check with nested properties ok 18 constraint matcher: match: should check with function ok 19 constraint matcher: match: should check with functions and identifier args ok 20 constraint matcher: match: should check with functions in a deep property chain and identifier args ok 21 constraint matcher: match: should check with functions in a deep property chain that returns an object and identifier args ok 22 constraint matcher: match: should have date helpers ok 23 constraint matcher: match: should create have type helpers ok 24 constraint matcher: match: should check truthy statements ok 25 constraint matcher: toConstraints: should create for expressions ok 26 constraint matcher: toConstraints: should create correct pattern depending on scope ok 27 constraint matcher: toJs: should create js equvalent expression ok 28 constraint matcher: getIdentifiers: should create the correct atoms for and expressions ok 29 constraint matcher: equals: should return true when equal ok 30 constraint matcher: equals: should return false when not equal ok 31 constraint matcher: .getIndexableProperties: should get properties with no functions ok 32 constraint matcher: .getIndexableProperties: should not get non indexable constraints ok 33 constraint matcher: .getIndexableProperties: should not get properties with functions ok 34 flowgetFacts: should get all facts in the session ok 35 flowgetFacts: should get all facts in the session by Type ok 36 agenda-groups: should only fire events in focused group ok 37 agenda-groups: should should treat focus like a stack ok 38 auto-focus: should activate agenda groups in proper order ok 39 async actions: should fire all rules ok 40 events: should emit when facts are asserted ok 41 events: should emit when facts are retracted ok 42 events: should emit when facts are modified ok 43 events: should emit when rules are fired ok 44 exists rule: fact assertion: should only activate once ok 45 exists rule: fact assertion: should not activate once if the fact does not exists ok 46 exists rule: fact retraction: should should handle fact retractions properly ok 47 exists rule: fact modification: should should handle fact modification properly ok 48 exists rule: with from modifier: assert: should should handle fact assertion properly ok 49 exists rule: with from modifier: retract: should should handle fact retraction properly ok 50 exists rule: with from modifier: modify: should should handle fact modification properly ok 51 from condition: with non array properties: should create the proper match contexts ok 52 from condition: with non array properties: should propagate modified facts properly ok 53 from condition: with non array properties: should retract facts properly ok 54 from condition: with js source: should create the proper match contexts ok 55 from condition: with js source: should propagate modified facts properly ok 56 from condition: with array properties: should create all cross product matches ok 57 from condition: with array properties: should retract all cross product matches ok 58 from condition: with not node: should only fullfill if all facts evaluate to false ok 59 from condition: with not node: should only fullfill if all facts evaluate to false ok 60 matchUntilHalt: should match until halt is called ok 61 not rule: with a single fact: should call when a string that does not equal 'hello' ok 62 not rule: with a single fact: should not call when a string that does equal 'hello' ok 63 not rule: with a single fact: should not call when a string that does equal 'hello' and one that does not ok 64 not rule: with multiple facts: should fire rules in order ok 65 not rule: modifying facts: should handle modifications ok 66 or rule: or rule with two conditions of the same type: should should match if one constraints matches ok 67 or rule: or rule with two conditions of the same type: should not call when a a constraint does not match ok 68 or rule: or rule with three conditions: should should match if one constraints matches ok 69 or rule: or rule with three conditions: should not call when none constraints match ok 70 or rule: or rule with different types: should should match if one constraints matches ok 71 or rule: or rule with different types: should not call when none constraints match ok 72 or rule: or with not conditions: should activate for each fact that does not exist ok 73 flowrule: should create a rule ok 74 flowrule: should create a rule with joins properly ok 75 flowrule: should create a rules that are dependent on eachother properly ok 76 salience: should activate in the proper order ok 77 scope option: should call when a string equals 'hello' ok 78 scope option: should call when a string equals 'world' ok 79 scope option: should not call when a string that does equal 'hello' or 'world ok 80 simple rule: should call hello world rule ok 81 Flow compiled: not rule: should call when a string that does not equal 'hello' ok 82 Flow compiled: not rule: should not call when a string that does equal 'hello' ok 83 Flow compiled: not rule: should not call when a string that does equal 'hello' and one that does not ok 84 Flow compiled: or rule: should call when a string equals 'hello' ok 85 Flow compiled: or rule: or rule with not conditions: should activate for each fact that does not exist ok 86 Flow compiled: scoped functions: should call the scoped function ok 87 Flow compiled: events: should emit when facts are asserted ok 88 Flow compiled: events: should emit when facts are retracted ok 89 Flow compiled: events: should emit when facts are modified ok 90 Flow compiled: events: should emit when rules are fired ok 91 Flow compiled: agenda-groups: should only fire events in focused group ok 92 Flow compiled: agenda-groups: should should treat focus like a stack ok 93 Flow compiled: auto-focus: should activate agenda groups in proper order ok 94 Flow compiled: fibonacci nools dsl: should calculate fibonacci 3 ok 95 Flow compiled: fibonacci nools dsl: should calculate fibonacci 4 ok 96 Flow compiled: fibonacci nools dsl: should calculate fibonacci 5 ok 97 Flow compiled: fibonacci nools dsl: should calculate fibonacci 6 ok 98 Flow compiled: diagnosis using dsl: should treat properly ok 99 Flow compiled: getFacts from action: should get all facts ok 100 Flow compiled: getFacts from action: should get facts by type ok 101 nools dsl parser: define: should parse a define statement ok 102 nools dsl parser: define: should throw an error when the define block is missing a name ok 103 nools dsl parser: define: should throw an error for invalid define blocks ok 104 nools dsl parser: define: should throw an error when the global statement is missing a name ok 105 nools dsl parser: define: should throw an error when the global statement is missing a ; ok 106 nools dsl parser: global: should parse a require call statement ok 107 nools dsl parser: global: should parse a require with a '.' character that is not a relative path ok 108 nools dsl parser: global: should resolve relative require paths ok 109 nools dsl parser: global: should parse a member look up ok 110 nools dsl parser: global: should parse a strings ok 111 nools dsl parser: global: should parse a boolean ok 112 nools dsl parser: global: should parse numbers ok 113 nools dsl parser: global: should parse a new instantiation ok 114 nools dsl parser: function: should parse a function statement ok 115 nools dsl parser: function: should throw an error when the function block is missing a name ok 116 nools dsl parser: function: should throw an error for invalid define blocks ok 117 nools dsl parser: rule: should parse rules ok 118 nools dsl parser: rule: should throw an error for invalid rule blocks ok 119 nools dsl parser: rule: should throw an error for a missing name ok 120 nools dsl parser: rule: should parse not conditions ok 121 nools dsl parser: rule: should parse or conditions ok 122 nools dsl parser: rule: should parse when clause with hash and constraints in any order ok 123 nools dsl parser: rule: should parse when clause with from ok 124 nools dsl parser: rule: should parse rules with a string name in double quotes ok 125 nools dsl parser: rule: should parse rules with a string name in single quotes ok 126 nools dsl parser: rule: should parse rules with a string name with inner strings ok 127 nools dsl parser: rule: salience/priority: should parse rules with a salience ok 128 nools dsl parser: rule: salience/priority: should parse rules with a priority ok 129 nools dsl parser: rule: salience/priority: should parse rules with a salience with a ; ok 130 nools dsl parser: rule: salience/priority: should parse rules with a priority with a ; ok 131 nools dsl parser: rule: salience/priority: should throw an error if the salience is not a number ok 132 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' ok 133 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agendaGroup' ok 134 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in '"' ok 135 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in "'" ok 136 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as true ok 137 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as false ok 138 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as true ok 139 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as false ok 140 nools dsl parser: rule: rules with auto-focus/autoFocus: should throw errors for values other than true or false ok 141 nools dsl parser: rule: should throw an error for invalid when clauses ok 142 nools dsl parser: rule: should throw an error for invalid then clauses ok 143 nools dsl parser: rule: should parse rules with exists clause ok 144 A Parser: should parse valid string expressions ok 145 A Parser: should parse regexps and not be greedy ok 146 A Parser: should parse valid string expressions with functions ok 147 A Parser: should parse valid string expressions with property access ok 148 A Parser: should parse valid string expressions with boolean operators ok 149 A Parser: should handle operator associativity properly ok 150 A Parser: should parse arrays ok 151 A Parser: should parse the in operator ok 152 A Parser: should parse the notIn operator ok 153 A Parser: should parse truthy statements ok 154 Rule: createRule: with strings: should create for string ok 155 Rule: createRule: with strings: should create for String ok 156 Rule: createRule: with strings: should create for number ok 157 Rule: createRule: with strings: should create for Number ok 158 Rule: createRule: with strings: should create for date ok 159 Rule: createRule: with strings: should create for Date ok 160 Rule: createRule: with strings: should create for array ok 161 Rule: createRule: with strings: should create for Array ok 162 Rule: createRule: with strings: should create for boolean ok 163 Rule: createRule: with strings: should create for Boolean ok 164 Rule: createRule: with strings: should create for regexp ok 165 Rule: createRule: with strings: should create for Regexp ok 166 Rule: createRule: with strings: should create for object ok 167 Rule: createRule: with strings: should create for Object ok 168 Rule: createRule: with strings: should create for hash ok 169 Rule: createRule: with strings: should create for Hash ok 170 Rule: createRule: with functions: should create for String function ok 171 Rule: createRule: with functions: should create for Number function ok 172 Rule: createRule: with functions: should create for Date function ok 173 Rule: createRule: with functions: should create for [] ok 174 Rule: createRule: with functions: should create for Array function ok 175 Rule: createRule: with functions: should create for Boolean function ok 176 Rule: createRule: with functions: should create for RegExp function ok 177 Rule: createRule: with functions: should create for Object function ok 178 Rule: createRule: with functions: should create for custom functions ok 179 Rule: createRule: should create a composite rule ok 180 Rule: createRule: should create a not pattern ok 181 Rule: createRule: should create a or pattern ok 182 Rule: createRule: should include reference store in constraints ok 183 Rule: createRule: should should include from constraints ok 184 Rule: createRule: should should include from constraints ok 185 Rule: createRule: should should include exists constraints # tests 185 # pass 185 # fail 0
1..185 ok 1 constraint matcher: match: should check equality ok 2 constraint matcher: match: should check inequality ok 3 constraint matcher: match: should check gt operator ok 4 constraint matcher: match: should check lt operator ok 5 constraint matcher: match: should check gte operator ok 6 constraint matcher: match: should check lte operator ok 7 constraint matcher: match: should check lte operator ok 8 constraint matcher: match: should check like operator ok 9 constraint matcher: match: should check notLike operator ok 10 constraint matcher: match: should check and operator ok 11 constraint matcher: match: should check or operator ok 12 constraint matcher: match: should check with member operator ok 13 constraint matcher: match: should check with in operator ok 14 constraint matcher: match: should check with notIn operator ok 15 constraint matcher: match: should allow properties with in ok 16 constraint matcher: match: should check with boolean associativity ok 17 constraint matcher: match: should check with nested properties ok 18 constraint matcher: match: should check with function ok 19 constraint matcher: match: should check with functions and identifier args ok 20 constraint matcher: match: should check with functions in a deep property chain and identifier args ok 21 constraint matcher: match: should check with functions in a deep property chain that returns an object and identifier args ok 22 constraint matcher: match: should have date helpers ok 23 constraint matcher: match: should create have type helpers ok 24 constraint matcher: match: should check truthy statements ok 25 constraint matcher: toConstraints: should create for expressions ok 26 constraint matcher: toConstraints: should create correct pattern depending on scope ok 27 constraint matcher: toJs: should create js equvalent expression ok 28 constraint matcher: getIdentifiers: should create the correct atoms for and expressions ok 29 constraint matcher: equals: should return true when equal ok 30 constraint matcher: equals: should return false when not equal ok 31 constraint matcher: .getIndexableProperties: should get properties with no functions ok 32 constraint matcher: .getIndexableProperties: should not get non indexable constraints ok 33 constraint matcher: .getIndexableProperties: should not get properties with functions ok 34 flowgetFacts: should get all facts in the session ok 35 flowgetFacts: should get all facts in the session by Type ok 36 agenda-groups: should only fire events in focused group ok 37 agenda-groups: should should treat focus like a stack ok 38 auto-focus: should activate agenda groups in proper order ok 39 async actions: should fire all rules ok 40 events: should emit when facts are asserted ok 41 events: should emit when facts are retracted ok 42 events: should emit when facts are modified ok 43 events: should emit when rules are fired ok 44 exists rule: fact assertion: should only activate once ok 45 exists rule: fact assertion: should not activate once if the fact does not exists ok 46 exists rule: fact retraction: should should handle fact retractions properly ok 47 exists rule: fact modification: should should handle fact modification properly ok 48 exists rule: with from modifier: assert: should should handle fact assertion properly ok 49 exists rule: with from modifier: retract: should should handle fact retraction properly ok 50 exists rule: with from modifier: modify: should should handle fact modification properly ok 51 from condition: with non array properties: should create the proper match contexts ok 52 from condition: with non array properties: should propagate modified facts properly ok 53 from condition: with non array properties: should retract facts properly ok 54 from condition: with js source: should create the proper match contexts ok 55 from condition: with js source: should propagate modified facts properly ok 56 from condition: with array properties: should create all cross product matches ok 57 from condition: with array properties: should retract all cross product matches ok 58 from condition: with not node: should only fullfill if all facts evaluate to false ok 59 from condition: with not node: should only fullfill if all facts evaluate to false ok 60 matchUntilHalt: should match until halt is called ok 61 not rule: with a single fact: should call when a string that does not equal 'hello' ok 62 not rule: with a single fact: should not call when a string that does equal 'hello' ok 63 not rule: with a single fact: should not call when a string that does equal 'hello' and one that does not ok 64 not rule: with multiple facts: should fire rules in order ok 65 not rule: modifying facts: should handle modifications ok 66 or rule: or rule with two conditions of the same type: should should match if one constraints matches ok 67 or rule: or rule with two conditions of the same type: should not call when a a constraint does not match ok 68 or rule: or rule with three conditions: should should match if one constraints matches ok 69 or rule: or rule with three conditions: should not call when none constraints match ok 70 or rule: or rule with different types: should should match if one constraints matches ok 71 or rule: or rule with different types: should not call when none constraints match ok 72 or rule: or with not conditions: should activate for each fact that does not exist ok 73 flowrule: should create a rule ok 74 flowrule: should create a rule with joins properly ok 75 flowrule: should create a rules that are dependent on eachother properly ok 76 salience: should activate in the proper order ok 77 scope option: should call when a string equals 'hello' ok 78 scope option: should call when a string equals 'world' ok 79 scope option: should not call when a string that does equal 'hello' or 'world ok 80 simple rule: should call hello world rule ok 81 Flow compiled: not rule: should call when a string that does not equal 'hello' ok 82 Flow compiled: not rule: should not call when a string that does equal 'hello' ok 83 Flow compiled: not rule: should not call when a string that does equal 'hello' and one that does not ok 84 Flow compiled: or rule: should call when a string equals 'hello' ok 85 Flow compiled: or rule: or rule with not conditions: should activate for each fact that does not exist ok 86 Flow compiled: scoped functions: should call the scoped function ok 87 Flow compiled: events: should emit when facts are asserted ok 88 Flow compiled: events: should emit when facts are retracted ok 89 Flow compiled: events: should emit when facts are modified ok 90 Flow compiled: events: should emit when rules are fired ok 91 Flow compiled: agenda-groups: should only fire events in focused group ok 92 Flow compiled: agenda-groups: should should treat focus like a stack ok 93 Flow compiled: auto-focus: should activate agenda groups in proper order ok 94 Flow compiled: fibonacci nools dsl: should calculate fibonacci 3 ok 95 Flow compiled: fibonacci nools dsl: should calculate fibonacci 4 ok 96 Flow compiled: fibonacci nools dsl: should calculate fibonacci 5 ok 97 Flow compiled: fibonacci nools dsl: should calculate fibonacci 6 ok 98 Flow compiled: diagnosis using dsl: should treat properly ok 99 Flow compiled: getFacts from action: should get all facts ok 100 Flow compiled: getFacts from action: should get facts by type ok 101 nools dsl parser: define: should parse a define statement ok 102 nools dsl parser: define: should throw an error when the define block is missing a name ok 103 nools dsl parser: define: should throw an error for invalid define blocks ok 104 nools dsl parser: define: should throw an error when the global statement is missing a name ok 105 nools dsl parser: define: should throw an error when the global statement is missing a ; ok 106 nools dsl parser: global: should parse a require call statement ok 107 nools dsl parser: global: should parse a require with a '.' character that is not a relative path ok 108 nools dsl parser: global: should resolve relative require paths ok 109 nools dsl parser: global: should parse a member look up ok 110 nools dsl parser: global: should parse a strings ok 111 nools dsl parser: global: should parse a boolean ok 112 nools dsl parser: global: should parse numbers ok 113 nools dsl parser: global: should parse a new instantiation ok 114 nools dsl parser: function: should parse a function statement ok 115 nools dsl parser: function: should throw an error when the function block is missing a name ok 116 nools dsl parser: function: should throw an error for invalid define blocks ok 117 nools dsl parser: rule: should parse rules ok 118 nools dsl parser: rule: should throw an error for invalid rule blocks ok 119 nools dsl parser: rule: should throw an error for a missing name ok 120 nools dsl parser: rule: should parse not conditions ok 121 nools dsl parser: rule: should parse or conditions ok 122 nools dsl parser: rule: should parse when clause with hash and constraints in any order ok 123 nools dsl parser: rule: should parse when clause with from ok 124 nools dsl parser: rule: should parse rules with a string name in double quotes ok 125 nools dsl parser: rule: should parse rules with a string name in single quotes ok 126 nools dsl parser: rule: should parse rules with a string name with inner strings ok 127 nools dsl parser: rule: salience/priority: should parse rules with a salience ok 128 nools dsl parser: rule: salience/priority: should parse rules with a priority ok 129 nools dsl parser: rule: salience/priority: should parse rules with a salience with a ; ok 130 nools dsl parser: rule: salience/priority: should parse rules with a priority with a ; ok 131 nools dsl parser: rule: salience/priority: should throw an error if the salience is not a number ok 132 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' ok 133 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agendaGroup' ok 134 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in '"' ok 135 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in "'" ok 136 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as true ok 137 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as false ok 138 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as true ok 139 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as false ok 140 nools dsl parser: rule: rules with auto-focus/autoFocus: should throw errors for values other than true or false ok 141 nools dsl parser: rule: should throw an error for invalid when clauses ok 142 nools dsl parser: rule: should throw an error for invalid then clauses ok 143 nools dsl parser: rule: should parse rules with exists clause ok 144 A Parser: should parse valid string expressions ok 145 A Parser: should parse regexps and not be greedy ok 146 A Parser: should parse valid string expressions with functions ok 147 A Parser: should parse valid string expressions with property access ok 148 A Parser: should parse valid string expressions with boolean operators ok 149 A Parser: should handle operator associativity properly ok 150 A Parser: should parse arrays ok 151 A Parser: should parse the in operator ok 152 A Parser: should parse the notIn operator ok 153 A Parser: should parse truthy statements ok 154 Rule: createRule: with strings: should create for string ok 155 Rule: createRule: with strings: should create for String ok 156 Rule: createRule: with strings: should create for number ok 157 Rule: createRule: with strings: should create for Number ok 158 Rule: createRule: with strings: should create for date ok 159 Rule: createRule: with strings: should create for Date ok 160 Rule: createRule: with strings: should create for array ok 161 Rule: createRule: with strings: should create for Array ok 162 Rule: createRule: with strings: should create for boolean ok 163 Rule: createRule: with strings: should create for Boolean ok 164 Rule: createRule: with strings: should create for regexp ok 165 Rule: createRule: with strings: should create for Regexp ok 166 Rule: createRule: with strings: should create for object ok 167 Rule: createRule: with strings: should create for Object ok 168 Rule: createRule: with strings: should create for hash ok 169 Rule: createRule: with strings: should create for Hash ok 170 Rule: createRule: with functions: should create for String function ok 171 Rule: createRule: with functions: should create for Number function ok 172 Rule: createRule: with functions: should create for Date function ok 173 Rule: createRule: with functions: should create for [] ok 174 Rule: createRule: with functions: should create for Array function ok 175 Rule: createRule: with functions: should create for Boolean function ok 176 Rule: createRule: with functions: should create for RegExp function ok 177 Rule: createRule: with functions: should create for Object function ok 178 Rule: createRule: with functions: should create for custom functions ok 179 Rule: createRule: should create a composite rule ok 180 Rule: createRule: should create a not pattern ok 181 Rule: createRule: should create a or pattern ok 182 Rule: createRule: should include reference store in constraints ok 183 Rule: createRule: should should include from constraints ok 184 Rule: createRule: should should include from constraints ok 185 Rule: createRule: should should include exists constraints # tests 185 # pass 185 # fail 0
1..185 ok 1 constraint matcher: match: should check equality ok 2 constraint matcher: match: should check inequality ok 3 constraint matcher: match: should check gt operator ok 4 constraint matcher: match: should check lt operator ok 5 constraint matcher: match: should check gte operator ok 6 constraint matcher: match: should check lte operator ok 7 constraint matcher: match: should check lte operator ok 8 constraint matcher: match: should check like operator ok 9 constraint matcher: match: should check notLike operator ok 10 constraint matcher: match: should check and operator ok 11 constraint matcher: match: should check or operator ok 12 constraint matcher: match: should check with member operator ok 13 constraint matcher: match: should check with in operator ok 14 constraint matcher: match: should check with notIn operator ok 15 constraint matcher: match: should allow properties with in ok 16 constraint matcher: match: should check with boolean associativity ok 17 constraint matcher: match: should check with nested properties ok 18 constraint matcher: match: should check with function ok 19 constraint matcher: match: should check with functions and identifier args ok 20 constraint matcher: match: should check with functions in a deep property chain and identifier args ok 21 constraint matcher: match: should check with functions in a deep property chain that returns an object and identifier args ok 22 constraint matcher: match: should have date helpers ok 23 constraint matcher: match: should create have type helpers ok 24 constraint matcher: match: should check truthy statements ok 25 constraint matcher: toConstraints: should create for expressions ok 26 constraint matcher: toConstraints: should create correct pattern depending on scope ok 27 constraint matcher: toJs: should create js equvalent expression ok 28 constraint matcher: getIdentifiers: should create the correct atoms for and expressions ok 29 constraint matcher: equals: should return true when equal ok 30 constraint matcher: equals: should return false when not equal ok 31 constraint matcher: .getIndexableProperties: should get properties with no functions ok 32 constraint matcher: .getIndexableProperties: should not get non indexable constraints ok 33 constraint matcher: .getIndexableProperties: should not get properties with functions ok 34 flowgetFacts: should get all facts in the session ok 35 flowgetFacts: should get all facts in the session by Type ok 36 agenda-groups: should only fire events in focused group ok 37 agenda-groups: should should treat focus like a stack ok 38 auto-focus: should activate agenda groups in proper order ok 39 async actions: should fire all rules ok 40 events: should emit when facts are asserted ok 41 events: should emit when facts are retracted ok 42 events: should emit when facts are modified ok 43 events: should emit when rules are fired ok 44 exists rule: fact assertion: should only activate once ok 45 exists rule: fact assertion: should not activate once if the fact does not exists ok 46 exists rule: fact retraction: should should handle fact retractions properly ok 47 exists rule: fact modification: should should handle fact modification properly ok 48 exists rule: with from modifier: assert: should should handle fact assertion properly ok 49 exists rule: with from modifier: retract: should should handle fact retraction properly ok 50 exists rule: with from modifier: modify: should should handle fact modification properly ok 51 from condition: with non array properties: should create the proper match contexts ok 52 from condition: with non array properties: should propagate modified facts properly ok 53 from condition: with non array properties: should retract facts properly ok 54 from condition: with js source: should create the proper match contexts ok 55 from condition: with js source: should propagate modified facts properly ok 56 from condition: with array properties: should create all cross product matches ok 57 from condition: with array properties: should retract all cross product matches ok 58 from condition: with not node: should only fullfill if all facts evaluate to false ok 59 from condition: with not node: should only fullfill if all facts evaluate to false ok 60 matchUntilHalt: should match until halt is called ok 61 not rule: with a single fact: should call when a string that does not equal 'hello' ok 62 not rule: with a single fact: should not call when a string that does equal 'hello' ok 63 not rule: with a single fact: should not call when a string that does equal 'hello' and one that does not ok 64 not rule: with multiple facts: should fire rules in order ok 65 not rule: modifying facts: should handle modifications ok 66 or rule: or rule with two conditions of the same type: should should match if one constraints matches ok 67 or rule: or rule with two conditions of the same type: should not call when a a constraint does not match ok 68 or rule: or rule with three conditions: should should match if one constraints matches ok 69 or rule: or rule with three conditions: should not call when none constraints match ok 70 or rule: or rule with different types: should should match if one constraints matches ok 71 or rule: or rule with different types: should not call when none constraints match ok 72 or rule: or with not conditions: should activate for each fact that does not exist ok 73 flowrule: should create a rule ok 74 flowrule: should create a rule with joins properly ok 75 flowrule: should create a rules that are dependent on eachother properly ok 76 salience: should activate in the proper order ok 77 scope option: should call when a string equals 'hello' ok 78 scope option: should call when a string equals 'world' ok 79 scope option: should not call when a string that does equal 'hello' or 'world ok 80 simple rule: should call hello world rule ok 81 Flow compiled: not rule: should call when a string that does not equal 'hello' ok 82 Flow compiled: not rule: should not call when a string that does equal 'hello' ok 83 Flow compiled: not rule: should not call when a string that does equal 'hello' and one that does not ok 84 Flow compiled: or rule: should call when a string equals 'hello' ok 85 Flow compiled: or rule: or rule with not conditions: should activate for each fact that does not exist ok 86 Flow compiled: scoped functions: should call the scoped function ok 87 Flow compiled: events: should emit when facts are asserted ok 88 Flow compiled: events: should emit when facts are retracted ok 89 Flow compiled: events: should emit when facts are modified ok 90 Flow compiled: events: should emit when rules are fired ok 91 Flow compiled: agenda-groups: should only fire events in focused group ok 92 Flow compiled: agenda-groups: should should treat focus like a stack ok 93 Flow compiled: auto-focus: should activate agenda groups in proper order ok 94 Flow compiled: fibonacci nools dsl: should calculate fibonacci 3 ok 95 Flow compiled: fibonacci nools dsl: should calculate fibonacci 4 ok 96 Flow compiled: fibonacci nools dsl: should calculate fibonacci 5 ok 97 Flow compiled: fibonacci nools dsl: should calculate fibonacci 6 ok 98 Flow compiled: diagnosis using dsl: should treat properly ok 99 Flow compiled: getFacts from action: should get all facts ok 100 Flow compiled: getFacts from action: should get facts by type ok 101 nools dsl parser: define: should parse a define statement ok 102 nools dsl parser: define: should throw an error when the define block is missing a name ok 103 nools dsl parser: define: should throw an error for invalid define blocks ok 104 nools dsl parser: define: should throw an error when the global statement is missing a name ok 105 nools dsl parser: define: should throw an error when the global statement is missing a ; ok 106 nools dsl parser: global: should parse a require call statement ok 107 nools dsl parser: global: should parse a require with a '.' character that is not a relative path ok 108 nools dsl parser: global: should resolve relative require paths ok 109 nools dsl parser: global: should parse a member look up ok 110 nools dsl parser: global: should parse a strings ok 111 nools dsl parser: global: should parse a boolean ok 112 nools dsl parser: global: should parse numbers ok 113 nools dsl parser: global: should parse a new instantiation ok 114 nools dsl parser: function: should parse a function statement ok 115 nools dsl parser: function: should throw an error when the function block is missing a name ok 116 nools dsl parser: function: should throw an error for invalid define blocks ok 117 nools dsl parser: rule: should parse rules ok 118 nools dsl parser: rule: should throw an error for invalid rule blocks ok 119 nools dsl parser: rule: should throw an error for a missing name ok 120 nools dsl parser: rule: should parse not conditions ok 121 nools dsl parser: rule: should parse or conditions ok 122 nools dsl parser: rule: should parse when clause with hash and constraints in any order ok 123 nools dsl parser: rule: should parse when clause with from ok 124 nools dsl parser: rule: should parse rules with a string name in double quotes ok 125 nools dsl parser: rule: should parse rules with a string name in single quotes ok 126 nools dsl parser: rule: should parse rules with a string name with inner strings ok 127 nools dsl parser: rule: salience/priority: should parse rules with a salience ok 128 nools dsl parser: rule: salience/priority: should parse rules with a priority ok 129 nools dsl parser: rule: salience/priority: should parse rules with a salience with a ; ok 130 nools dsl parser: rule: salience/priority: should parse rules with a priority with a ; ok 131 nools dsl parser: rule: salience/priority: should throw an error if the salience is not a number ok 132 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' ok 133 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agendaGroup' ok 134 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in '"' ok 135 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in "'" ok 136 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as true ok 137 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as false ok 138 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as true ok 139 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as false ok 140 nools dsl parser: rule: rules with auto-focus/autoFocus: should throw errors for values other than true or false ok 141 nools dsl parser: rule: should throw an error for invalid when clauses ok 142 nools dsl parser: rule: should throw an error for invalid then clauses ok 143 nools dsl parser: rule: should parse rules with exists clause ok 144 A Parser: should parse valid string expressions ok 145 A Parser: should parse regexps and not be greedy ok 146 A Parser: should parse valid string expressions with functions ok 147 A Parser: should parse valid string expressions with property access ok 148 A Parser: should parse valid string expressions with boolean operators ok 149 A Parser: should handle operator associativity properly ok 150 A Parser: should parse arrays ok 151 A Parser: should parse the in operator ok 152 A Parser: should parse the notIn operator ok 153 A Parser: should parse truthy statements ok 154 Rule: createRule: with strings: should create for string ok 155 Rule: createRule: with strings: should create for String ok 156 Rule: createRule: with strings: should create for number ok 157 Rule: createRule: with strings: should create for Number ok 158 Rule: createRule: with strings: should create for date ok 159 Rule: createRule: with strings: should create for Date ok 160 Rule: createRule: with strings: should create for array ok 161 Rule: createRule: with strings: should create for Array ok 162 Rule: createRule: with strings: should create for boolean ok 163 Rule: createRule: with strings: should create for Boolean ok 164 Rule: createRule: with strings: should create for regexp ok 165 Rule: createRule: with strings: should create for Regexp ok 166 Rule: createRule: with strings: should create for object ok 167 Rule: createRule: with strings: should create for Object ok 168 Rule: createRule: with strings: should create for hash ok 169 Rule: createRule: with strings: should create for Hash ok 170 Rule: createRule: with functions: should create for String function ok 171 Rule: createRule: with functions: should create for Number function ok 172 Rule: createRule: with functions: should create for Date function ok 173 Rule: createRule: with functions: should create for [] ok 174 Rule: createRule: with functions: should create for Array function ok 175 Rule: createRule: with functions: should create for Boolean function ok 176 Rule: createRule: with functions: should create for RegExp function ok 177 Rule: createRule: with functions: should create for Object function ok 178 Rule: createRule: with functions: should create for custom functions ok 179 Rule: createRule: should create a composite rule ok 180 Rule: createRule: should create a not pattern ok 181 Rule: createRule: should create a or pattern ok 182 Rule: createRule: should include reference store in constraints ok 183 Rule: createRule: should should include from constraints ok 184 Rule: createRule: should should include from constraints ok 185 Rule: createRule: should should include exists constraints # tests 185 # pass 185 # fail 0
1..185 ok 1 constraint matcher: match: should check equality ok 2 constraint matcher: match: should check inequality ok 3 constraint matcher: match: should check gt operator ok 4 constraint matcher: match: should check lt operator ok 5 constraint matcher: match: should check gte operator ok 6 constraint matcher: match: should check lte operator ok 7 constraint matcher: match: should check lte operator ok 8 constraint matcher: match: should check like operator ok 9 constraint matcher: match: should check notLike operator ok 10 constraint matcher: match: should check and operator ok 11 constraint matcher: match: should check or operator ok 12 constraint matcher: match: should check with member operator ok 13 constraint matcher: match: should check with in operator ok 14 constraint matcher: match: should check with notIn operator ok 15 constraint matcher: match: should allow properties with in ok 16 constraint matcher: match: should check with boolean associativity ok 17 constraint matcher: match: should check with nested properties ok 18 constraint matcher: match: should check with function ok 19 constraint matcher: match: should check with functions and identifier args ok 20 constraint matcher: match: should check with functions in a deep property chain and identifier args ok 21 constraint matcher: match: should check with functions in a deep property chain that returns an object and identifier args ok 22 constraint matcher: match: should have date helpers ok 23 constraint matcher: match: should create have type helpers ok 24 constraint matcher: match: should check truthy statements ok 25 constraint matcher: toConstraints: should create for expressions ok 26 constraint matcher: toConstraints: should create correct pattern depending on scope ok 27 constraint matcher: toJs: should create js equvalent expression ok 28 constraint matcher: getIdentifiers: should create the correct atoms for and expressions ok 29 constraint matcher: equals: should return true when equal ok 30 constraint matcher: equals: should return false when not equal ok 31 constraint matcher: .getIndexableProperties: should get properties with no functions ok 32 constraint matcher: .getIndexableProperties: should not get non indexable constraints ok 33 constraint matcher: .getIndexableProperties: should not get properties with functions ok 34 flowgetFacts: should get all facts in the session ok 35 flowgetFacts: should get all facts in the session by Type ok 36 agenda-groups: should only fire events in focused group ok 37 agenda-groups: should should treat focus like a stack ok 38 auto-focus: should activate agenda groups in proper order ok 39 async actions: should fire all rules ok 40 events: should emit when facts are asserted ok 41 events: should emit when facts are retracted ok 42 events: should emit when facts are modified ok 43 events: should emit when rules are fired ok 44 exists rule: fact assertion: should only activate once ok 45 exists rule: fact assertion: should not activate once if the fact does not exists ok 46 exists rule: fact retraction: should should handle fact retractions properly ok 47 exists rule: fact modification: should should handle fact modification properly ok 48 exists rule: with from modifier: assert: should should handle fact assertion properly ok 49 exists rule: with from modifier: retract: should should handle fact retraction properly ok 50 exists rule: with from modifier: modify: should should handle fact modification properly ok 51 from condition: with non array properties: should create the proper match contexts ok 52 from condition: with non array properties: should propagate modified facts properly ok 53 from condition: with non array properties: should retract facts properly ok 54 from condition: with js source: should create the proper match contexts ok 55 from condition: with js source: should propagate modified facts properly ok 56 from condition: with array properties: should create all cross product matches ok 57 from condition: with array properties: should retract all cross product matches ok 58 from condition: with not node: should only fullfill if all facts evaluate to false ok 59 from condition: with not node: should only fullfill if all facts evaluate to false ok 60 matchUntilHalt: should match until halt is called ok 61 not rule: with a single fact: should call when a string that does not equal 'hello' ok 62 not rule: with a single fact: should not call when a string that does equal 'hello' ok 63 not rule: with a single fact: should not call when a string that does equal 'hello' and one that does not ok 64 not rule: with multiple facts: should fire rules in order ok 65 not rule: modifying facts: should handle modifications ok 66 or rule: or rule with two conditions of the same type: should should match if one constraints matches ok 67 or rule: or rule with two conditions of the same type: should not call when a a constraint does not match ok 68 or rule: or rule with three conditions: should should match if one constraints matches ok 69 or rule: or rule with three conditions: should not call when none constraints match ok 70 or rule: or rule with different types: should should match if one constraints matches ok 71 or rule: or rule with different types: should not call when none constraints match ok 72 or rule: or with not conditions: should activate for each fact that does not exist ok 73 flowrule: should create a rule ok 74 flowrule: should create a rule with joins properly ok 75 flowrule: should create a rules that are dependent on eachother properly ok 76 salience: should activate in the proper order ok 77 scope option: should call when a string equals 'hello' ok 78 scope option: should call when a string equals 'world' ok 79 scope option: should not call when a string that does equal 'hello' or 'world ok 80 simple rule: should call hello world rule ok 81 Flow compiled: not rule: should call when a string that does not equal 'hello' ok 82 Flow compiled: not rule: should not call when a string that does equal 'hello' ok 83 Flow compiled: not rule: should not call when a string that does equal 'hello' and one that does not ok 84 Flow compiled: or rule: should call when a string equals 'hello' ok 85 Flow compiled: or rule: or rule with not conditions: should activate for each fact that does not exist ok 86 Flow compiled: scoped functions: should call the scoped function ok 87 Flow compiled: events: should emit when facts are asserted ok 88 Flow compiled: events: should emit when facts are retracted ok 89 Flow compiled: events: should emit when facts are modified ok 90 Flow compiled: events: should emit when rules are fired ok 91 Flow compiled: agenda-groups: should only fire events in focused group ok 92 Flow compiled: agenda-groups: should should treat focus like a stack ok 93 Flow compiled: auto-focus: should activate agenda groups in proper order ok 94 Flow compiled: fibonacci nools dsl: should calculate fibonacci 3 ok 95 Flow compiled: fibonacci nools dsl: should calculate fibonacci 4 ok 96 Flow compiled: fibonacci nools dsl: should calculate fibonacci 5 ok 97 Flow compiled: fibonacci nools dsl: should calculate fibonacci 6 ok 98 Flow compiled: diagnosis using dsl: should treat properly ok 99 Flow compiled: getFacts from action: should get all facts ok 100 Flow compiled: getFacts from action: should get facts by type ok 101 nools dsl parser: define: should parse a define statement ok 102 nools dsl parser: define: should throw an error when the define block is missing a name ok 103 nools dsl parser: define: should throw an error for invalid define blocks ok 104 nools dsl parser: define: should throw an error when the global statement is missing a name ok 105 nools dsl parser: define: should throw an error when the global statement is missing a ; ok 106 nools dsl parser: global: should parse a require call statement ok 107 nools dsl parser: global: should parse a require with a '.' character that is not a relative path ok 108 nools dsl parser: global: should resolve relative require paths ok 109 nools dsl parser: global: should parse a member look up ok 110 nools dsl parser: global: should parse a strings ok 111 nools dsl parser: global: should parse a boolean ok 112 nools dsl parser: global: should parse numbers ok 113 nools dsl parser: global: should parse a new instantiation ok 114 nools dsl parser: function: should parse a function statement ok 115 nools dsl parser: function: should throw an error when the function block is missing a name ok 116 nools dsl parser: function: should throw an error for invalid define blocks ok 117 nools dsl parser: rule: should parse rules ok 118 nools dsl parser: rule: should throw an error for invalid rule blocks ok 119 nools dsl parser: rule: should throw an error for a missing name ok 120 nools dsl parser: rule: should parse not conditions ok 121 nools dsl parser: rule: should parse or conditions ok 122 nools dsl parser: rule: should parse when clause with hash and constraints in any order ok 123 nools dsl parser: rule: should parse when clause with from ok 124 nools dsl parser: rule: should parse rules with a string name in double quotes ok 125 nools dsl parser: rule: should parse rules with a string name in single quotes ok 126 nools dsl parser: rule: should parse rules with a string name with inner strings ok 127 nools dsl parser: rule: salience/priority: should parse rules with a salience ok 128 nools dsl parser: rule: salience/priority: should parse rules with a priority ok 129 nools dsl parser: rule: salience/priority: should parse rules with a salience with a ; ok 130 nools dsl parser: rule: salience/priority: should parse rules with a priority with a ; ok 131 nools dsl parser: rule: salience/priority: should throw an error if the salience is not a number ok 132 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' ok 133 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agendaGroup' ok 134 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in '"' ok 135 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in "'" ok 136 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as true ok 137 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as false ok 138 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as true ok 139 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as false ok 140 nools dsl parser: rule: rules with auto-focus/autoFocus: should throw errors for values other than true or false ok 141 nools dsl parser: rule: should throw an error for invalid when clauses ok 142 nools dsl parser: rule: should throw an error for invalid then clauses ok 143 nools dsl parser: rule: should parse rules with exists clause ok 144 A Parser: should parse valid string expressions ok 145 A Parser: should parse regexps and not be greedy ok 146 A Parser: should parse valid string expressions with functions ok 147 A Parser: should parse valid string expressions with property access ok 148 A Parser: should parse valid string expressions with boolean operators ok 149 A Parser: should handle operator associativity properly ok 150 A Parser: should parse arrays ok 151 A Parser: should parse the in operator ok 152 A Parser: should parse the notIn operator ok 153 A Parser: should parse truthy statements ok 154 Rule: createRule: with strings: should create for string ok 155 Rule: createRule: with strings: should create for String ok 156 Rule: createRule: with strings: should create for number ok 157 Rule: createRule: with strings: should create for Number ok 158 Rule: createRule: with strings: should create for date ok 159 Rule: createRule: with strings: should create for Date ok 160 Rule: createRule: with strings: should create for array ok 161 Rule: createRule: with strings: should create for Array ok 162 Rule: createRule: with strings: should create for boolean ok 163 Rule: createRule: with strings: should create for Boolean ok 164 Rule: createRule: with strings: should create for regexp ok 165 Rule: createRule: with strings: should create for Regexp ok 166 Rule: createRule: with strings: should create for object ok 167 Rule: createRule: with strings: should create for Object ok 168 Rule: createRule: with strings: should create for hash ok 169 Rule: createRule: with strings: should create for Hash ok 170 Rule: createRule: with functions: should create for String function ok 171 Rule: createRule: with functions: should create for Number function ok 172 Rule: createRule: with functions: should create for Date function ok 173 Rule: createRule: with functions: should create for [] ok 174 Rule: createRule: with functions: should create for Array function ok 175 Rule: createRule: with functions: should create for Boolean function ok 176 Rule: createRule: with functions: should create for RegExp function ok 177 Rule: createRule: with functions: should create for Object function ok 178 Rule: createRule: with functions: should create for custom functions ok 179 Rule: createRule: should create a composite rule ok 180 Rule: createRule: should create a not pattern ok 181 Rule: createRule: should create a or pattern ok 182 Rule: createRule: should include reference store in constraints ok 183 Rule: createRule: should should include from constraints ok 184 Rule: createRule: should should include from constraints ok 185 Rule: createRule: should should include exists constraints # tests 185 # pass 185 # fail 0
1..185 ok 1 constraint matcher: match: should check equality ok 2 constraint matcher: match: should check inequality ok 3 constraint matcher: match: should check gt operator ok 4 constraint matcher: match: should check lt operator ok 5 constraint matcher: match: should check gte operator ok 6 constraint matcher: match: should check lte operator ok 7 constraint matcher: match: should check lte operator ok 8 constraint matcher: match: should check like operator ok 9 constraint matcher: match: should check notLike operator ok 10 constraint matcher: match: should check and operator ok 11 constraint matcher: match: should check or operator ok 12 constraint matcher: match: should check with member operator ok 13 constraint matcher: match: should check with in operator ok 14 constraint matcher: match: should check with notIn operator ok 15 constraint matcher: match: should allow properties with in ok 16 constraint matcher: match: should check with boolean associativity ok 17 constraint matcher: match: should check with nested properties ok 18 constraint matcher: match: should check with function ok 19 constraint matcher: match: should check with functions and identifier args ok 20 constraint matcher: match: should check with functions in a deep property chain and identifier args ok 21 constraint matcher: match: should check with functions in a deep property chain that returns an object and identifier args ok 22 constraint matcher: match: should have date helpers ok 23 constraint matcher: match: should create have type helpers ok 24 constraint matcher: match: should check truthy statements ok 25 constraint matcher: toConstraints: should create for expressions ok 26 constraint matcher: toConstraints: should create correct pattern depending on scope ok 27 constraint matcher: toJs: should create js equvalent expression ok 28 constraint matcher: getIdentifiers: should create the correct atoms for and expressions ok 29 constraint matcher: equals: should return true when equal ok 30 constraint matcher: equals: should return false when not equal ok 31 constraint matcher: .getIndexableProperties: should get properties with no functions ok 32 constraint matcher: .getIndexableProperties: should not get non indexable constraints ok 33 constraint matcher: .getIndexableProperties: should not get properties with functions ok 34 flowgetFacts: should get all facts in the session ok 35 flowgetFacts: should get all facts in the session by Type ok 36 agenda-groups: should only fire events in focused group ok 37 agenda-groups: should should treat focus like a stack ok 38 auto-focus: should activate agenda groups in proper order ok 39 async actions: should fire all rules ok 40 events: should emit when facts are asserted ok 41 events: should emit when facts are retracted ok 42 events: should emit when facts are modified ok 43 events: should emit when rules are fired ok 44 exists rule: fact assertion: should only activate once ok 45 exists rule: fact assertion: should not activate once if the fact does not exists ok 46 exists rule: fact retraction: should should handle fact retractions properly ok 47 exists rule: fact modification: should should handle fact modification properly ok 48 exists rule: with from modifier: assert: should should handle fact assertion properly ok 49 exists rule: with from modifier: retract: should should handle fact retraction properly ok 50 exists rule: with from modifier: modify: should should handle fact modification properly ok 51 from condition: with non array properties: should create the proper match contexts ok 52 from condition: with non array properties: should propagate modified facts properly ok 53 from condition: with non array properties: should retract facts properly ok 54 from condition: with js source: should create the proper match contexts ok 55 from condition: with js source: should propagate modified facts properly ok 56 from condition: with array properties: should create all cross product matches ok 57 from condition: with array properties: should retract all cross product matches ok 58 from condition: with not node: should only fullfill if all facts evaluate to false ok 59 from condition: with not node: should only fullfill if all facts evaluate to false ok 60 matchUntilHalt: should match until halt is called ok 61 not rule: with a single fact: should call when a string that does not equal 'hello' ok 62 not rule: with a single fact: should not call when a string that does equal 'hello' ok 63 not rule: with a single fact: should not call when a string that does equal 'hello' and one that does not ok 64 not rule: with multiple facts: should fire rules in order ok 65 not rule: modifying facts: should handle modifications ok 66 or rule: or rule with two conditions of the same type: should should match if one constraints matches ok 67 or rule: or rule with two conditions of the same type: should not call when a a constraint does not match ok 68 or rule: or rule with three conditions: should should match if one constraints matches ok 69 or rule: or rule with three conditions: should not call when none constraints match ok 70 or rule: or rule with different types: should should match if one constraints matches ok 71 or rule: or rule with different types: should not call when none constraints match ok 72 or rule: or with not conditions: should activate for each fact that does not exist ok 73 flowrule: should create a rule ok 74 flowrule: should create a rule with joins properly ok 75 flowrule: should create a rules that are dependent on eachother properly ok 76 salience: should activate in the proper order ok 77 scope option: should call when a string equals 'hello' ok 78 scope option: should call when a string equals 'world' ok 79 scope option: should not call when a string that does equal 'hello' or 'world ok 80 simple rule: should call hello world rule ok 81 Flow compiled: not rule: should call when a string that does not equal 'hello' ok 82 Flow compiled: not rule: should not call when a string that does equal 'hello' ok 83 Flow compiled: not rule: should not call when a string that does equal 'hello' and one that does not ok 84 Flow compiled: or rule: should call when a string equals 'hello' ok 85 Flow compiled: or rule: or rule with not conditions: should activate for each fact that does not exist ok 86 Flow compiled: scoped functions: should call the scoped function ok 87 Flow compiled: events: should emit when facts are asserted ok 88 Flow compiled: events: should emit when facts are retracted ok 89 Flow compiled: events: should emit when facts are modified ok 90 Flow compiled: events: should emit when rules are fired ok 91 Flow compiled: agenda-groups: should only fire events in focused group ok 92 Flow compiled: agenda-groups: should should treat focus like a stack ok 93 Flow compiled: auto-focus: should activate agenda groups in proper order ok 94 Flow compiled: fibonacci nools dsl: should calculate fibonacci 3 ok 95 Flow compiled: fibonacci nools dsl: should calculate fibonacci 4 ok 96 Flow compiled: fibonacci nools dsl: should calculate fibonacci 5 ok 97 Flow compiled: fibonacci nools dsl: should calculate fibonacci 6 ok 98 Flow compiled: diagnosis using dsl: should treat properly ok 99 Flow compiled: getFacts from action: should get all facts ok 100 Flow compiled: getFacts from action: should get facts by type ok 101 nools dsl parser: define: should parse a define statement ok 102 nools dsl parser: define: should throw an error when the define block is missing a name ok 103 nools dsl parser: define: should throw an error for invalid define blocks ok 104 nools dsl parser: define: should throw an error when the global statement is missing a name ok 105 nools dsl parser: define: should throw an error when the global statement is missing a ; ok 106 nools dsl parser: global: should parse a require call statement ok 107 nools dsl parser: global: should parse a require with a '.' character that is not a relative path ok 108 nools dsl parser: global: should resolve relative require paths ok 109 nools dsl parser: global: should parse a member look up ok 110 nools dsl parser: global: should parse a strings ok 111 nools dsl parser: global: should parse a boolean ok 112 nools dsl parser: global: should parse numbers ok 113 nools dsl parser: global: should parse a new instantiation ok 114 nools dsl parser: function: should parse a function statement ok 115 nools dsl parser: function: should throw an error when the function block is missing a name ok 116 nools dsl parser: function: should throw an error for invalid define blocks ok 117 nools dsl parser: rule: should parse rules ok 118 nools dsl parser: rule: should throw an error for invalid rule blocks ok 119 nools dsl parser: rule: should throw an error for a missing name ok 120 nools dsl parser: rule: should parse not conditions ok 121 nools dsl parser: rule: should parse or conditions ok 122 nools dsl parser: rule: should parse when clause with hash and constraints in any order ok 123 nools dsl parser: rule: should parse when clause with from ok 124 nools dsl parser: rule: should parse rules with a string name in double quotes ok 125 nools dsl parser: rule: should parse rules with a string name in single quotes ok 126 nools dsl parser: rule: should parse rules with a string name with inner strings ok 127 nools dsl parser: rule: salience/priority: should parse rules with a salience ok 128 nools dsl parser: rule: salience/priority: should parse rules with a priority ok 129 nools dsl parser: rule: salience/priority: should parse rules with a salience with a ; ok 130 nools dsl parser: rule: salience/priority: should parse rules with a priority with a ; ok 131 nools dsl parser: rule: salience/priority: should throw an error if the salience is not a number ok 132 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' ok 133 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agendaGroup' ok 134 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in '"' ok 135 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in "'" ok 136 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as true ok 137 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as false ok 138 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as true ok 139 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as false ok 140 nools dsl parser: rule: rules with auto-focus/autoFocus: should throw errors for values other than true or false ok 141 nools dsl parser: rule: should throw an error for invalid when clauses ok 142 nools dsl parser: rule: should throw an error for invalid then clauses ok 143 nools dsl parser: rule: should parse rules with exists clause ok 144 A Parser: should parse valid string expressions ok 145 A Parser: should parse regexps and not be greedy ok 146 A Parser: should parse valid string expressions with functions ok 147 A Parser: should parse valid string expressions with property access ok 148 A Parser: should parse valid string expressions with boolean operators ok 149 A Parser: should handle operator associativity properly ok 150 A Parser: should parse arrays ok 151 A Parser: should parse the in operator ok 152 A Parser: should parse the notIn operator ok 153 A Parser: should parse truthy statements ok 154 Rule: createRule: with strings: should create for string ok 155 Rule: createRule: with strings: should create for String ok 156 Rule: createRule: with strings: should create for number ok 157 Rule: createRule: with strings: should create for Number ok 158 Rule: createRule: with strings: should create for date ok 159 Rule: createRule: with strings: should create for Date ok 160 Rule: createRule: with strings: should create for array ok 161 Rule: createRule: with strings: should create for Array ok 162 Rule: createRule: with strings: should create for boolean ok 163 Rule: createRule: with strings: should create for Boolean ok 164 Rule: createRule: with strings: should create for regexp ok 165 Rule: createRule: with strings: should create for Regexp ok 166 Rule: createRule: with strings: should create for object ok 167 Rule: createRule: with strings: should create for Object ok 168 Rule: createRule: with strings: should create for hash ok 169 Rule: createRule: with strings: should create for Hash ok 170 Rule: createRule: with functions: should create for String function ok 171 Rule: createRule: with functions: should create for Number function ok 172 Rule: createRule: with functions: should create for Date function ok 173 Rule: createRule: with functions: should create for [] ok 174 Rule: createRule: with functions: should create for Array function ok 175 Rule: createRule: with functions: should create for Boolean function ok 176 Rule: createRule: with functions: should create for RegExp function ok 177 Rule: createRule: with functions: should create for Object function ok 178 Rule: createRule: with functions: should create for custom functions ok 179 Rule: createRule: should create a composite rule ok 180 Rule: createRule: should create a not pattern ok 181 Rule: createRule: should create a or pattern ok 182 Rule: createRule: should include reference store in constraints ok 183 Rule: createRule: should should include from constraints ok 184 Rule: createRule: should should include from constraints ok 185 Rule: createRule: should should include exists constraints # tests 185 # pass 185 # fail 0
1..185 ok 1 constraint matcher: match: should check equality ok 2 constraint matcher: match: should check inequality ok 3 constraint matcher: match: should check gt operator ok 4 constraint matcher: match: should check lt operator ok 5 constraint matcher: match: should check gte operator ok 6 constraint matcher: match: should check lte operator ok 7 constraint matcher: match: should check lte operator ok 8 constraint matcher: match: should check like operator ok 9 constraint matcher: match: should check notLike operator ok 10 constraint matcher: match: should check and operator ok 11 constraint matcher: match: should check or operator ok 12 constraint matcher: match: should check with member operator ok 13 constraint matcher: match: should check with in operator ok 14 constraint matcher: match: should check with notIn operator ok 15 constraint matcher: match: should allow properties with in ok 16 constraint matcher: match: should check with boolean associativity ok 17 constraint matcher: match: should check with nested properties ok 18 constraint matcher: match: should check with function ok 19 constraint matcher: match: should check with functions and identifier args ok 20 constraint matcher: match: should check with functions in a deep property chain and identifier args ok 21 constraint matcher: match: should check with functions in a deep property chain that returns an object and identifier args ok 22 constraint matcher: match: should have date helpers ok 23 constraint matcher: match: should create have type helpers ok 24 constraint matcher: match: should check truthy statements ok 25 constraint matcher: toConstraints: should create for expressions ok 26 constraint matcher: toConstraints: should create correct pattern depending on scope ok 27 constraint matcher: toJs: should create js equvalent expression ok 28 constraint matcher: getIdentifiers: should create the correct atoms for and expressions ok 29 constraint matcher: equals: should return true when equal ok 30 constraint matcher: equals: should return false when not equal ok 31 constraint matcher: .getIndexableProperties: should get properties with no functions ok 32 constraint matcher: .getIndexableProperties: should not get non indexable constraints ok 33 constraint matcher: .getIndexableProperties: should not get properties with functions ok 34 flowgetFacts: should get all facts in the session ok 35 flowgetFacts: should get all facts in the session by Type ok 36 agenda-groups: should only fire events in focused group ok 37 agenda-groups: should should treat focus like a stack ok 38 auto-focus: should activate agenda groups in proper order ok 39 async actions: should fire all rules ok 40 events: should emit when facts are asserted ok 41 events: should emit when facts are retracted ok 42 events: should emit when facts are modified ok 43 events: should emit when rules are fired ok 44 exists rule: fact assertion: should only activate once ok 45 exists rule: fact assertion: should not activate once if the fact does not exists ok 46 exists rule: fact retraction: should should handle fact retractions properly ok 47 exists rule: fact modification: should should handle fact modification properly ok 48 exists rule: with from modifier: assert: should should handle fact assertion properly ok 49 exists rule: with from modifier: retract: should should handle fact retraction properly ok 50 exists rule: with from modifier: modify: should should handle fact modification properly ok 51 from condition: with non array properties: should create the proper match contexts ok 52 from condition: with non array properties: should propagate modified facts properly ok 53 from condition: with non array properties: should retract facts properly ok 54 from condition: with js source: should create the proper match contexts ok 55 from condition: with js source: should propagate modified facts properly ok 56 from condition: with array properties: should create all cross product matches ok 57 from condition: with array properties: should retract all cross product matches ok 58 from condition: with not node: should only fullfill if all facts evaluate to false ok 59 from condition: with not node: should only fullfill if all facts evaluate to false ok 60 matchUntilHalt: should match until halt is called ok 61 not rule: with a single fact: should call when a string that does not equal 'hello' ok 62 not rule: with a single fact: should not call when a string that does equal 'hello' ok 63 not rule: with a single fact: should not call when a string that does equal 'hello' and one that does not ok 64 not rule: with multiple facts: should fire rules in order ok 65 not rule: modifying facts: should handle modifications ok 66 or rule: or rule with two conditions of the same type: should should match if one constraints matches ok 67 or rule: or rule with two conditions of the same type: should not call when a a constraint does not match ok 68 or rule: or rule with three conditions: should should match if one constraints matches ok 69 or rule: or rule with three conditions: should not call when none constraints match ok 70 or rule: or rule with different types: should should match if one constraints matches ok 71 or rule: or rule with different types: should not call when none constraints match ok 72 or rule: or with not conditions: should activate for each fact that does not exist ok 73 flowrule: should create a rule ok 74 flowrule: should create a rule with joins properly ok 75 flowrule: should create a rules that are dependent on eachother properly ok 76 salience: should activate in the proper order ok 77 scope option: should call when a string equals 'hello' ok 78 scope option: should call when a string equals 'world' ok 79 scope option: should not call when a string that does equal 'hello' or 'world ok 80 simple rule: should call hello world rule ok 81 Flow compiled: not rule: should call when a string that does not equal 'hello' ok 82 Flow compiled: not rule: should not call when a string that does equal 'hello' ok 83 Flow compiled: not rule: should not call when a string that does equal 'hello' and one that does not ok 84 Flow compiled: or rule: should call when a string equals 'hello' ok 85 Flow compiled: or rule: or rule with not conditions: should activate for each fact that does not exist ok 86 Flow compiled: scoped functions: should call the scoped function ok 87 Flow compiled: events: should emit when facts are asserted ok 88 Flow compiled: events: should emit when facts are retracted ok 89 Flow compiled: events: should emit when facts are modified ok 90 Flow compiled: events: should emit when rules are fired ok 91 Flow compiled: agenda-groups: should only fire events in focused group ok 92 Flow compiled: agenda-groups: should should treat focus like a stack ok 93 Flow compiled: auto-focus: should activate agenda groups in proper order ok 94 Flow compiled: fibonacci nools dsl: should calculate fibonacci 3 ok 95 Flow compiled: fibonacci nools dsl: should calculate fibonacci 4 ok 96 Flow compiled: fibonacci nools dsl: should calculate fibonacci 5 ok 97 Flow compiled: fibonacci nools dsl: should calculate fibonacci 6 ok 98 Flow compiled: diagnosis using dsl: should treat properly ok 99 Flow compiled: getFacts from action: should get all facts ok 100 Flow compiled: getFacts from action: should get facts by type ok 101 nools dsl parser: define: should parse a define statement ok 102 nools dsl parser: define: should throw an error when the define block is missing a name ok 103 nools dsl parser: define: should throw an error for invalid define blocks ok 104 nools dsl parser: define: should throw an error when the global statement is missing a name ok 105 nools dsl parser: define: should throw an error when the global statement is missing a ; ok 106 nools dsl parser: global: should parse a require call statement ok 107 nools dsl parser: global: should parse a require with a '.' character that is not a relative path ok 108 nools dsl parser: global: should resolve relative require paths ok 109 nools dsl parser: global: should parse a member look up ok 110 nools dsl parser: global: should parse a strings ok 111 nools dsl parser: global: should parse a boolean ok 112 nools dsl parser: global: should parse numbers ok 113 nools dsl parser: global: should parse a new instantiation ok 114 nools dsl parser: function: should parse a function statement ok 115 nools dsl parser: function: should throw an error when the function block is missing a name ok 116 nools dsl parser: function: should throw an error for invalid define blocks ok 117 nools dsl parser: rule: should parse rules ok 118 nools dsl parser: rule: should throw an error for invalid rule blocks ok 119 nools dsl parser: rule: should throw an error for a missing name ok 120 nools dsl parser: rule: should parse not conditions ok 121 nools dsl parser: rule: should parse or conditions ok 122 nools dsl parser: rule: should parse when clause with hash and constraints in any order ok 123 nools dsl parser: rule: should parse when clause with from ok 124 nools dsl parser: rule: should parse rules with a string name in double quotes ok 125 nools dsl parser: rule: should parse rules with a string name in single quotes ok 126 nools dsl parser: rule: should parse rules with a string name with inner strings ok 127 nools dsl parser: rule: salience/priority: should parse rules with a salience ok 128 nools dsl parser: rule: salience/priority: should parse rules with a priority ok 129 nools dsl parser: rule: salience/priority: should parse rules with a salience with a ; ok 130 nools dsl parser: rule: salience/priority: should parse rules with a priority with a ; ok 131 nools dsl parser: rule: salience/priority: should throw an error if the salience is not a number ok 132 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' ok 133 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agendaGroup' ok 134 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in '"' ok 135 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in "'" ok 136 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as true ok 137 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as false ok 138 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as true ok 139 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as false ok 140 nools dsl parser: rule: rules with auto-focus/autoFocus: should throw errors for values other than true or false ok 141 nools dsl parser: rule: should throw an error for invalid when clauses ok 142 nools dsl parser: rule: should throw an error for invalid then clauses ok 143 nools dsl parser: rule: should parse rules with exists clause ok 144 A Parser: should parse valid string expressions ok 145 A Parser: should parse regexps and not be greedy ok 146 A Parser: should parse valid string expressions with functions ok 147 A Parser: should parse valid string expressions with property access ok 148 A Parser: should parse valid string expressions with boolean operators ok 149 A Parser: should handle operator associativity properly ok 150 A Parser: should parse arrays ok 151 A Parser: should parse the in operator ok 152 A Parser: should parse the notIn operator ok 153 A Parser: should parse truthy statements ok 154 Rule: createRule: with strings: should create for string ok 155 Rule: createRule: with strings: should create for String ok 156 Rule: createRule: with strings: should create for number ok 157 Rule: createRule: with strings: should create for Number ok 158 Rule: createRule: with strings: should create for date ok 159 Rule: createRule: with strings: should create for Date ok 160 Rule: createRule: with strings: should create for array ok 161 Rule: createRule: with strings: should create for Array ok 162 Rule: createRule: with strings: should create for boolean ok 163 Rule: createRule: with strings: should create for Boolean ok 164 Rule: createRule: with strings: should create for regexp ok 165 Rule: createRule: with strings: should create for Regexp ok 166 Rule: createRule: with strings: should create for object ok 167 Rule: createRule: with strings: should create for Object ok 168 Rule: createRule: with strings: should create for hash ok 169 Rule: createRule: with strings: should create for Hash ok 170 Rule: createRule: with functions: should create for String function ok 171 Rule: createRule: with functions: should create for Number function ok 172 Rule: createRule: with functions: should create for Date function ok 173 Rule: createRule: with functions: should create for [] ok 174 Rule: createRule: with functions: should create for Array function ok 175 Rule: createRule: with functions: should create for Boolean function ok 176 Rule: createRule: with functions: should create for RegExp function ok 177 Rule: createRule: with functions: should create for Object function ok 178 Rule: createRule: with functions: should create for custom functions ok 179 Rule: createRule: should create a composite rule ok 180 Rule: createRule: should create a not pattern ok 181 Rule: createRule: should create a or pattern ok 182 Rule: createRule: should include reference store in constraints ok 183 Rule: createRule: should should include from constraints ok 184 Rule: createRule: should should include from constraints ok 185 Rule: createRule: should should include exists constraints # tests 185 # pass 185 # fail 0
1..185 ok 1 constraint matcher: match: should check equality ok 2 constraint matcher: match: should check inequality ok 3 constraint matcher: match: should check gt operator ok 4 constraint matcher: match: should check lt operator ok 5 constraint matcher: match: should check gte operator ok 6 constraint matcher: match: should check lte operator ok 7 constraint matcher: match: should check lte operator ok 8 constraint matcher: match: should check like operator ok 9 constraint matcher: match: should check notLike operator ok 10 constraint matcher: match: should check and operator ok 11 constraint matcher: match: should check or operator ok 12 constraint matcher: match: should check with member operator ok 13 constraint matcher: match: should check with in operator ok 14 constraint matcher: match: should check with notIn operator ok 15 constraint matcher: match: should allow properties with in ok 16 constraint matcher: match: should check with boolean associativity ok 17 constraint matcher: match: should check with nested properties ok 18 constraint matcher: match: should check with function ok 19 constraint matcher: match: should check with functions and identifier args ok 20 constraint matcher: match: should check with functions in a deep property chain and identifier args ok 21 constraint matcher: match: should check with functions in a deep property chain that returns an object and identifier args ok 22 constraint matcher: match: should have date helpers ok 23 constraint matcher: match: should create have type helpers ok 24 constraint matcher: match: should check truthy statements ok 25 constraint matcher: toConstraints: should create for expressions ok 26 constraint matcher: toConstraints: should create correct pattern depending on scope ok 27 constraint matcher: toJs: should create js equvalent expression ok 28 constraint matcher: getIdentifiers: should create the correct atoms for and expressions ok 29 constraint matcher: equals: should return true when equal ok 30 constraint matcher: equals: should return false when not equal ok 31 constraint matcher: .getIndexableProperties: should get properties with no functions ok 32 constraint matcher: .getIndexableProperties: should not get non indexable constraints ok 33 constraint matcher: .getIndexableProperties: should not get properties with functions ok 34 flowgetFacts: should get all facts in the session ok 35 flowgetFacts: should get all facts in the session by Type ok 36 agenda-groups: should only fire events in focused group ok 37 agenda-groups: should should treat focus like a stack ok 38 auto-focus: should activate agenda groups in proper order ok 39 async actions: should fire all rules ok 40 events: should emit when facts are asserted ok 41 events: should emit when facts are retracted ok 42 events: should emit when facts are modified ok 43 events: should emit when rules are fired ok 44 exists rule: fact assertion: should only activate once ok 45 exists rule: fact assertion: should not activate once if the fact does not exists ok 46 exists rule: fact retraction: should should handle fact retractions properly ok 47 exists rule: fact modification: should should handle fact modification properly ok 48 exists rule: with from modifier: assert: should should handle fact assertion properly ok 49 exists rule: with from modifier: retract: should should handle fact retraction properly ok 50 exists rule: with from modifier: modify: should should handle fact modification properly ok 51 from condition: with non array properties: should create the proper match contexts ok 52 from condition: with non array properties: should propagate modified facts properly ok 53 from condition: with non array properties: should retract facts properly ok 54 from condition: with js source: should create the proper match contexts ok 55 from condition: with js source: should propagate modified facts properly ok 56 from condition: with array properties: should create all cross product matches ok 57 from condition: with array properties: should retract all cross product matches ok 58 from condition: with not node: should only fullfill if all facts evaluate to false ok 59 from condition: with not node: should only fullfill if all facts evaluate to false ok 60 matchUntilHalt: should match until halt is called ok 61 not rule: with a single fact: should call when a string that does not equal 'hello' ok 62 not rule: with a single fact: should not call when a string that does equal 'hello' ok 63 not rule: with a single fact: should not call when a string that does equal 'hello' and one that does not ok 64 not rule: with multiple facts: should fire rules in order ok 65 not rule: modifying facts: should handle modifications ok 66 or rule: or rule with two conditions of the same type: should should match if one constraints matches ok 67 or rule: or rule with two conditions of the same type: should not call when a a constraint does not match ok 68 or rule: or rule with three conditions: should should match if one constraints matches ok 69 or rule: or rule with three conditions: should not call when none constraints match ok 70 or rule: or rule with different types: should should match if one constraints matches ok 71 or rule: or rule with different types: should not call when none constraints match ok 72 or rule: or with not conditions: should activate for each fact that does not exist ok 73 flowrule: should create a rule ok 74 flowrule: should create a rule with joins properly ok 75 flowrule: should create a rules that are dependent on eachother properly ok 76 salience: should activate in the proper order ok 77 scope option: should call when a string equals 'hello' ok 78 scope option: should call when a string equals 'world' ok 79 scope option: should not call when a string that does equal 'hello' or 'world ok 80 simple rule: should call hello world rule ok 81 Flow compiled: not rule: should call when a string that does not equal 'hello' ok 82 Flow compiled: not rule: should not call when a string that does equal 'hello' ok 83 Flow compiled: not rule: should not call when a string that does equal 'hello' and one that does not ok 84 Flow compiled: or rule: should call when a string equals 'hello' ok 85 Flow compiled: or rule: or rule with not conditions: should activate for each fact that does not exist ok 86 Flow compiled: scoped functions: should call the scoped function ok 87 Flow compiled: events: should emit when facts are asserted ok 88 Flow compiled: events: should emit when facts are retracted ok 89 Flow compiled: events: should emit when facts are modified ok 90 Flow compiled: events: should emit when rules are fired ok 91 Flow compiled: agenda-groups: should only fire events in focused group ok 92 Flow compiled: agenda-groups: should should treat focus like a stack ok 93 Flow compiled: auto-focus: should activate agenda groups in proper order ok 94 Flow compiled: fibonacci nools dsl: should calculate fibonacci 3 ok 95 Flow compiled: fibonacci nools dsl: should calculate fibonacci 4 ok 96 Flow compiled: fibonacci nools dsl: should calculate fibonacci 5 ok 97 Flow compiled: fibonacci nools dsl: should calculate fibonacci 6 ok 98 Flow compiled: diagnosis using dsl: should treat properly ok 99 Flow compiled: getFacts from action: should get all facts ok 100 Flow compiled: getFacts from action: should get facts by type ok 101 nools dsl parser: define: should parse a define statement ok 102 nools dsl parser: define: should throw an error when the define block is missing a name ok 103 nools dsl parser: define: should throw an error for invalid define blocks ok 104 nools dsl parser: define: should throw an error when the global statement is missing a name ok 105 nools dsl parser: define: should throw an error when the global statement is missing a ; ok 106 nools dsl parser: global: should parse a require call statement ok 107 nools dsl parser: global: should parse a require with a '.' character that is not a relative path ok 108 nools dsl parser: global: should resolve relative require paths ok 109 nools dsl parser: global: should parse a member look up ok 110 nools dsl parser: global: should parse a strings ok 111 nools dsl parser: global: should parse a boolean ok 112 nools dsl parser: global: should parse numbers ok 113 nools dsl parser: global: should parse a new instantiation ok 114 nools dsl parser: function: should parse a function statement ok 115 nools dsl parser: function: should throw an error when the function block is missing a name ok 116 nools dsl parser: function: should throw an error for invalid define blocks ok 117 nools dsl parser: rule: should parse rules ok 118 nools dsl parser: rule: should throw an error for invalid rule blocks ok 119 nools dsl parser: rule: should throw an error for a missing name ok 120 nools dsl parser: rule: should parse not conditions ok 121 nools dsl parser: rule: should parse or conditions ok 122 nools dsl parser: rule: should parse when clause with hash and constraints in any order ok 123 nools dsl parser: rule: should parse when clause with from ok 124 nools dsl parser: rule: should parse rules with a string name in double quotes ok 125 nools dsl parser: rule: should parse rules with a string name in single quotes ok 126 nools dsl parser: rule: should parse rules with a string name with inner strings ok 127 nools dsl parser: rule: salience/priority: should parse rules with a salience ok 128 nools dsl parser: rule: salience/priority: should parse rules with a priority ok 129 nools dsl parser: rule: salience/priority: should parse rules with a salience with a ; ok 130 nools dsl parser: rule: salience/priority: should parse rules with a priority with a ; ok 131 nools dsl parser: rule: salience/priority: should throw an error if the salience is not a number ok 132 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' ok 133 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agendaGroup' ok 134 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in '"' ok 135 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in "'" ok 136 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as true ok 137 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as false ok 138 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as true ok 139 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as false ok 140 nools dsl parser: rule: rules with auto-focus/autoFocus: should throw errors for values other than true or false ok 141 nools dsl parser: rule: should throw an error for invalid when clauses ok 142 nools dsl parser: rule: should throw an error for invalid then clauses ok 143 nools dsl parser: rule: should parse rules with exists clause ok 144 A Parser: should parse valid string expressions ok 145 A Parser: should parse regexps and not be greedy ok 146 A Parser: should parse valid string expressions with functions ok 147 A Parser: should parse valid string expressions with property access ok 148 A Parser: should parse valid string expressions with boolean operators ok 149 A Parser: should handle operator associativity properly ok 150 A Parser: should parse arrays ok 151 A Parser: should parse the in operator ok 152 A Parser: should parse the notIn operator ok 153 A Parser: should parse truthy statements ok 154 Rule: createRule: with strings: should create for string ok 155 Rule: createRule: with strings: should create for String ok 156 Rule: createRule: with strings: should create for number ok 157 Rule: createRule: with strings: should create for Number ok 158 Rule: createRule: with strings: should create for date ok 159 Rule: createRule: with strings: should create for Date ok 160 Rule: createRule: with strings: should create for array ok 161 Rule: createRule: with strings: should create for Array ok 162 Rule: createRule: with strings: should create for boolean ok 163 Rule: createRule: with strings: should create for Boolean ok 164 Rule: createRule: with strings: should create for regexp ok 165 Rule: createRule: with strings: should create for Regexp ok 166 Rule: createRule: with strings: should create for object ok 167 Rule: createRule: with strings: should create for Object ok 168 Rule: createRule: with strings: should create for hash ok 169 Rule: createRule: with strings: should create for Hash ok 170 Rule: createRule: with functions: should create for String function ok 171 Rule: createRule: with functions: should create for Number function ok 172 Rule: createRule: with functions: should create for Date function ok 173 Rule: createRule: with functions: should create for [] ok 174 Rule: createRule: with functions: should create for Array function ok 175 Rule: createRule: with functions: should create for Boolean function ok 176 Rule: createRule: with functions: should create for RegExp function ok 177 Rule: createRule: with functions: should create for Object function ok 178 Rule: createRule: with functions: should create for custom functions ok 179 Rule: createRule: should create a composite rule ok 180 Rule: createRule: should create a not pattern ok 181 Rule: createRule: should create a or pattern ok 182 Rule: createRule: should include reference store in constraints ok 183 Rule: createRule: should should include from constraints ok 184 Rule: createRule: should should include from constraints ok 185 Rule: createRule: should should include exists constraints # tests 185 # pass 185 # fail 0
1..185 ok 1 constraint matcher: match: should check equality ok 2 constraint matcher: match: should check inequality ok 3 constraint matcher: match: should check gt operator ok 4 constraint matcher: match: should check lt operator ok 5 constraint matcher: match: should check gte operator ok 6 constraint matcher: match: should check lte operator ok 7 constraint matcher: match: should check lte operator ok 8 constraint matcher: match: should check like operator ok 9 constraint matcher: match: should check notLike operator ok 10 constraint matcher: match: should check and operator ok 11 constraint matcher: match: should check or operator ok 12 constraint matcher: match: should check with member operator ok 13 constraint matcher: match: should check with in operator ok 14 constraint matcher: match: should check with notIn operator ok 15 constraint matcher: match: should allow properties with in ok 16 constraint matcher: match: should check with boolean associativity ok 17 constraint matcher: match: should check with nested properties ok 18 constraint matcher: match: should check with function ok 19 constraint matcher: match: should check with functions and identifier args ok 20 constraint matcher: match: should check with functions in a deep property chain and identifier args ok 21 constraint matcher: match: should check with functions in a deep property chain that returns an object and identifier args ok 22 constraint matcher: match: should have date helpers ok 23 constraint matcher: match: should create have type helpers ok 24 constraint matcher: match: should check truthy statements ok 25 constraint matcher: toConstraints: should create for expressions ok 26 constraint matcher: toConstraints: should create correct pattern depending on scope ok 27 constraint matcher: toJs: should create js equvalent expression ok 28 constraint matcher: getIdentifiers: should create the correct atoms for and expressions ok 29 constraint matcher: equals: should return true when equal ok 30 constraint matcher: equals: should return false when not equal ok 31 constraint matcher: .getIndexableProperties: should get properties with no functions ok 32 constraint matcher: .getIndexableProperties: should not get non indexable constraints ok 33 constraint matcher: .getIndexableProperties: should not get properties with functions ok 34 flowgetFacts: should get all facts in the session ok 35 flowgetFacts: should get all facts in the session by Type ok 36 agenda-groups: should only fire events in focused group ok 37 agenda-groups: should should treat focus like a stack ok 38 auto-focus: should activate agenda groups in proper order ok 39 async actions: should fire all rules ok 40 events: should emit when facts are asserted ok 41 events: should emit when facts are retracted ok 42 events: should emit when facts are modified ok 43 events: should emit when rules are fired ok 44 exists rule: fact assertion: should only activate once ok 45 exists rule: fact assertion: should not activate once if the fact does not exists ok 46 exists rule: fact retraction: should should handle fact retractions properly ok 47 exists rule: fact modification: should should handle fact modification properly ok 48 exists rule: with from modifier: assert: should should handle fact assertion properly ok 49 exists rule: with from modifier: retract: should should handle fact retraction properly ok 50 exists rule: with from modifier: modify: should should handle fact modification properly ok 51 from condition: with non array properties: should create the proper match contexts ok 52 from condition: with non array properties: should propagate modified facts properly ok 53 from condition: with non array properties: should retract facts properly ok 54 from condition: with js source: should create the proper match contexts ok 55 from condition: with js source: should propagate modified facts properly ok 56 from condition: with array properties: should create all cross product matches ok 57 from condition: with array properties: should retract all cross product matches ok 58 from condition: with not node: should only fullfill if all facts evaluate to false ok 59 from condition: with not node: should only fullfill if all facts evaluate to false ok 60 matchUntilHalt: should match until halt is called ok 61 not rule: with a single fact: should call when a string that does not equal 'hello' ok 62 not rule: with a single fact: should not call when a string that does equal 'hello' ok 63 not rule: with a single fact: should not call when a string that does equal 'hello' and one that does not ok 64 not rule: with multiple facts: should fire rules in order ok 65 not rule: modifying facts: should handle modifications ok 66 or rule: or rule with two conditions of the same type: should should match if one constraints matches ok 67 or rule: or rule with two conditions of the same type: should not call when a a constraint does not match ok 68 or rule: or rule with three conditions: should should match if one constraints matches ok 69 or rule: or rule with three conditions: should not call when none constraints match ok 70 or rule: or rule with different types: should should match if one constraints matches ok 71 or rule: or rule with different types: should not call when none constraints match ok 72 or rule: or with not conditions: should activate for each fact that does not exist ok 73 flowrule: should create a rule ok 74 flowrule: should create a rule with joins properly ok 75 flowrule: should create a rules that are dependent on eachother properly ok 76 salience: should activate in the proper order ok 77 scope option: should call when a string equals 'hello' ok 78 scope option: should call when a string equals 'world' ok 79 scope option: should not call when a string that does equal 'hello' or 'world ok 80 simple rule: should call hello world rule ok 81 Flow compiled: not rule: should call when a string that does not equal 'hello' ok 82 Flow compiled: not rule: should not call when a string that does equal 'hello' ok 83 Flow compiled: not rule: should not call when a string that does equal 'hello' and one that does not ok 84 Flow compiled: or rule: should call when a string equals 'hello' ok 85 Flow compiled: or rule: or rule with not conditions: should activate for each fact that does not exist ok 86 Flow compiled: scoped functions: should call the scoped function ok 87 Flow compiled: events: should emit when facts are asserted ok 88 Flow compiled: events: should emit when facts are retracted ok 89 Flow compiled: events: should emit when facts are modified ok 90 Flow compiled: events: should emit when rules are fired ok 91 Flow compiled: agenda-groups: should only fire events in focused group ok 92 Flow compiled: agenda-groups: should should treat focus like a stack ok 93 Flow compiled: auto-focus: should activate agenda groups in proper order ok 94 Flow compiled: fibonacci nools dsl: should calculate fibonacci 3 ok 95 Flow compiled: fibonacci nools dsl: should calculate fibonacci 4 ok 96 Flow compiled: fibonacci nools dsl: should calculate fibonacci 5 ok 97 Flow compiled: fibonacci nools dsl: should calculate fibonacci 6 ok 98 Flow compiled: diagnosis using dsl: should treat properly ok 99 Flow compiled: getFacts from action: should get all facts ok 100 Flow compiled: getFacts from action: should get facts by type ok 101 nools dsl parser: define: should parse a define statement ok 102 nools dsl parser: define: should throw an error when the define block is missing a name ok 103 nools dsl parser: define: should throw an error for invalid define blocks ok 104 nools dsl parser: define: should throw an error when the global statement is missing a name ok 105 nools dsl parser: define: should throw an error when the global statement is missing a ; ok 106 nools dsl parser: global: should parse a require call statement ok 107 nools dsl parser: global: should parse a require with a '.' character that is not a relative path ok 108 nools dsl parser: global: should resolve relative require paths ok 109 nools dsl parser: global: should parse a member look up ok 110 nools dsl parser: global: should parse a strings ok 111 nools dsl parser: global: should parse a boolean ok 112 nools dsl parser: global: should parse numbers ok 113 nools dsl parser: global: should parse a new instantiation ok 114 nools dsl parser: function: should parse a function statement ok 115 nools dsl parser: function: should throw an error when the function block is missing a name ok 116 nools dsl parser: function: should throw an error for invalid define blocks ok 117 nools dsl parser: rule: should parse rules ok 118 nools dsl parser: rule: should throw an error for invalid rule blocks ok 119 nools dsl parser: rule: should throw an error for a missing name ok 120 nools dsl parser: rule: should parse not conditions ok 121 nools dsl parser: rule: should parse or conditions ok 122 nools dsl parser: rule: should parse when clause with hash and constraints in any order ok 123 nools dsl parser: rule: should parse when clause with from ok 124 nools dsl parser: rule: should parse rules with a string name in double quotes ok 125 nools dsl parser: rule: should parse rules with a string name in single quotes ok 126 nools dsl parser: rule: should parse rules with a string name with inner strings ok 127 nools dsl parser: rule: salience/priority: should parse rules with a salience ok 128 nools dsl parser: rule: salience/priority: should parse rules with a priority ok 129 nools dsl parser: rule: salience/priority: should parse rules with a salience with a ; ok 130 nools dsl parser: rule: salience/priority: should parse rules with a priority with a ; ok 131 nools dsl parser: rule: salience/priority: should throw an error if the salience is not a number ok 132 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' ok 133 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agendaGroup' ok 134 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in '"' ok 135 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in "'" ok 136 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as true ok 137 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as false ok 138 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as true ok 139 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as false ok 140 nools dsl parser: rule: rules with auto-focus/autoFocus: should throw errors for values other than true or false ok 141 nools dsl parser: rule: should throw an error for invalid when clauses ok 142 nools dsl parser: rule: should throw an error for invalid then clauses ok 143 nools dsl parser: rule: should parse rules with exists clause ok 144 A Parser: should parse valid string expressions ok 145 A Parser: should parse regexps and not be greedy ok 146 A Parser: should parse valid string expressions with functions ok 147 A Parser: should parse valid string expressions with property access ok 148 A Parser: should parse valid string expressions with boolean operators ok 149 A Parser: should handle operator associativity properly ok 150 A Parser: should parse arrays ok 151 A Parser: should parse the in operator ok 152 A Parser: should parse the notIn operator ok 153 A Parser: should parse truthy statements ok 154 Rule: createRule: with strings: should create for string ok 155 Rule: createRule: with strings: should create for String ok 156 Rule: createRule: with strings: should create for number ok 157 Rule: createRule: with strings: should create for Number ok 158 Rule: createRule: with strings: should create for date ok 159 Rule: createRule: with strings: should create for Date ok 160 Rule: createRule: with strings: should create for array ok 161 Rule: createRule: with strings: should create for Array ok 162 Rule: createRule: with strings: should create for boolean ok 163 Rule: createRule: with strings: should create for Boolean ok 164 Rule: createRule: with strings: should create for regexp ok 165 Rule: createRule: with strings: should create for Regexp ok 166 Rule: createRule: with strings: should create for object ok 167 Rule: createRule: with strings: should create for Object ok 168 Rule: createRule: with strings: should create for hash ok 169 Rule: createRule: with strings: should create for Hash ok 170 Rule: createRule: with functions: should create for String function ok 171 Rule: createRule: with functions: should create for Number function ok 172 Rule: createRule: with functions: should create for Date function ok 173 Rule: createRule: with functions: should create for [] ok 174 Rule: createRule: with functions: should create for Array function ok 175 Rule: createRule: with functions: should create for Boolean function ok 176 Rule: createRule: with functions: should create for RegExp function ok 177 Rule: createRule: with functions: should create for Object function ok 178 Rule: createRule: with functions: should create for custom functions ok 179 Rule: createRule: should create a composite rule ok 180 Rule: createRule: should create a not pattern ok 181 Rule: createRule: should create a or pattern ok 182 Rule: createRule: should include reference store in constraints ok 183 Rule: createRule: should should include from constraints ok 184 Rule: createRule: should should include from constraints ok 185 Rule: createRule: should should include exists constraints # tests 185 # pass 185 # fail 0
1..185 ok 1 constraint matcher: match: should check equality ok 2 constraint matcher: match: should check inequality ok 3 constraint matcher: match: should check gt operator ok 4 constraint matcher: match: should check lt operator ok 5 constraint matcher: match: should check gte operator ok 6 constraint matcher: match: should check lte operator ok 7 constraint matcher: match: should check lte operator ok 8 constraint matcher: match: should check like operator ok 9 constraint matcher: match: should check notLike operator ok 10 constraint matcher: match: should check and operator ok 11 constraint matcher: match: should check or operator ok 12 constraint matcher: match: should check with member operator ok 13 constraint matcher: match: should check with in operator ok 14 constraint matcher: match: should check with notIn operator ok 15 constraint matcher: match: should allow properties with in ok 16 constraint matcher: match: should check with boolean associativity ok 17 constraint matcher: match: should check with nested properties ok 18 constraint matcher: match: should check with function ok 19 constraint matcher: match: should check with functions and identifier args ok 20 constraint matcher: match: should check with functions in a deep property chain and identifier args ok 21 constraint matcher: match: should check with functions in a deep property chain that returns an object and identifier args ok 22 constraint matcher: match: should have date helpers ok 23 constraint matcher: match: should create have type helpers ok 24 constraint matcher: match: should check truthy statements ok 25 constraint matcher: toConstraints: should create for expressions ok 26 constraint matcher: toConstraints: should create correct pattern depending on scope ok 27 constraint matcher: toJs: should create js equvalent expression ok 28 constraint matcher: getIdentifiers: should create the correct atoms for and expressions ok 29 constraint matcher: equals: should return true when equal ok 30 constraint matcher: equals: should return false when not equal ok 31 constraint matcher: .getIndexableProperties: should get properties with no functions ok 32 constraint matcher: .getIndexableProperties: should not get non indexable constraints ok 33 constraint matcher: .getIndexableProperties: should not get properties with functions ok 34 flowgetFacts: should get all facts in the session ok 35 flowgetFacts: should get all facts in the session by Type ok 36 agenda-groups: should only fire events in focused group ok 37 agenda-groups: should should treat focus like a stack ok 38 auto-focus: should activate agenda groups in proper order ok 39 async actions: should fire all rules ok 40 events: should emit when facts are asserted ok 41 events: should emit when facts are retracted ok 42 events: should emit when facts are modified ok 43 events: should emit when rules are fired ok 44 exists rule: fact assertion: should only activate once ok 45 exists rule: fact assertion: should not activate once if the fact does not exists ok 46 exists rule: fact retraction: should should handle fact retractions properly ok 47 exists rule: fact modification: should should handle fact modification properly ok 48 exists rule: with from modifier: assert: should should handle fact assertion properly ok 49 exists rule: with from modifier: retract: should should handle fact retraction properly ok 50 exists rule: with from modifier: modify: should should handle fact modification properly ok 51 from condition: with non array properties: should create the proper match contexts ok 52 from condition: with non array properties: should propagate modified facts properly ok 53 from condition: with non array properties: should retract facts properly ok 54 from condition: with js source: should create the proper match contexts ok 55 from condition: with js source: should propagate modified facts properly ok 56 from condition: with array properties: should create all cross product matches ok 57 from condition: with array properties: should retract all cross product matches ok 58 from condition: with not node: should only fullfill if all facts evaluate to false ok 59 from condition: with not node: should only fullfill if all facts evaluate to false ok 60 matchUntilHalt: should match until halt is called ok 61 not rule: with a single fact: should call when a string that does not equal 'hello' ok 62 not rule: with a single fact: should not call when a string that does equal 'hello' ok 63 not rule: with a single fact: should not call when a string that does equal 'hello' and one that does not ok 64 not rule: with multiple facts: should fire rules in order ok 65 not rule: modifying facts: should handle modifications ok 66 or rule: or rule with two conditions of the same type: should should match if one constraints matches ok 67 or rule: or rule with two conditions of the same type: should not call when a a constraint does not match ok 68 or rule: or rule with three conditions: should should match if one constraints matches ok 69 or rule: or rule with three conditions: should not call when none constraints match ok 70 or rule: or rule with different types: should should match if one constraints matches ok 71 or rule: or rule with different types: should not call when none constraints match ok 72 or rule: or with not conditions: should activate for each fact that does not exist ok 73 flowrule: should create a rule ok 74 flowrule: should create a rule with joins properly ok 75 flowrule: should create a rules that are dependent on eachother properly ok 76 salience: should activate in the proper order ok 77 scope option: should call when a string equals 'hello' ok 78 scope option: should call when a string equals 'world' ok 79 scope option: should not call when a string that does equal 'hello' or 'world ok 80 simple rule: should call hello world rule ok 81 Flow compiled: not rule: should call when a string that does not equal 'hello' ok 82 Flow compiled: not rule: should not call when a string that does equal 'hello' ok 83 Flow compiled: not rule: should not call when a string that does equal 'hello' and one that does not ok 84 Flow compiled: or rule: should call when a string equals 'hello' ok 85 Flow compiled: or rule: or rule with not conditions: should activate for each fact that does not exist ok 86 Flow compiled: scoped functions: should call the scoped function ok 87 Flow compiled: events: should emit when facts are asserted ok 88 Flow compiled: events: should emit when facts are retracted ok 89 Flow compiled: events: should emit when facts are modified ok 90 Flow compiled: events: should emit when rules are fired ok 91 Flow compiled: agenda-groups: should only fire events in focused group ok 92 Flow compiled: agenda-groups: should should treat focus like a stack ok 93 Flow compiled: auto-focus: should activate agenda groups in proper order ok 94 Flow compiled: fibonacci nools dsl: should calculate fibonacci 3 ok 95 Flow compiled: fibonacci nools dsl: should calculate fibonacci 4 ok 96 Flow compiled: fibonacci nools dsl: should calculate fibonacci 5 ok 97 Flow compiled: fibonacci nools dsl: should calculate fibonacci 6 ok 98 Flow compiled: diagnosis using dsl: should treat properly ok 99 Flow compiled: getFacts from action: should get all facts ok 100 Flow compiled: getFacts from action: should get facts by type ok 101 nools dsl parser: define: should parse a define statement ok 102 nools dsl parser: define: should throw an error when the define block is missing a name ok 103 nools dsl parser: define: should throw an error for invalid define blocks ok 104 nools dsl parser: define: should throw an error when the global statement is missing a name ok 105 nools dsl parser: define: should throw an error when the global statement is missing a ; ok 106 nools dsl parser: global: should parse a require call statement ok 107 nools dsl parser: global: should parse a require with a '.' character that is not a relative path ok 108 nools dsl parser: global: should resolve relative require paths ok 109 nools dsl parser: global: should parse a member look up ok 110 nools dsl parser: global: should parse a strings ok 111 nools dsl parser: global: should parse a boolean ok 112 nools dsl parser: global: should parse numbers ok 113 nools dsl parser: global: should parse a new instantiation ok 114 nools dsl parser: function: should parse a function statement ok 115 nools dsl parser: function: should throw an error when the function block is missing a name ok 116 nools dsl parser: function: should throw an error for invalid define blocks ok 117 nools dsl parser: rule: should parse rules ok 118 nools dsl parser: rule: should throw an error for invalid rule blocks ok 119 nools dsl parser: rule: should throw an error for a missing name ok 120 nools dsl parser: rule: should parse not conditions ok 121 nools dsl parser: rule: should parse or conditions ok 122 nools dsl parser: rule: should parse when clause with hash and constraints in any order ok 123 nools dsl parser: rule: should parse when clause with from ok 124 nools dsl parser: rule: should parse rules with a string name in double quotes ok 125 nools dsl parser: rule: should parse rules with a string name in single quotes ok 126 nools dsl parser: rule: should parse rules with a string name with inner strings ok 127 nools dsl parser: rule: salience/priority: should parse rules with a salience ok 128 nools dsl parser: rule: salience/priority: should parse rules with a priority ok 129 nools dsl parser: rule: salience/priority: should parse rules with a salience with a ; ok 130 nools dsl parser: rule: salience/priority: should parse rules with a priority with a ; ok 131 nools dsl parser: rule: salience/priority: should throw an error if the salience is not a number ok 132 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' ok 133 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agendaGroup' ok 134 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in '"' ok 135 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in "'" ok 136 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as true ok 137 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as false ok 138 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as true ok 139 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as false ok 140 nools dsl parser: rule: rules with auto-focus/autoFocus: should throw errors for values other than true or false ok 141 nools dsl parser: rule: should throw an error for invalid when clauses ok 142 nools dsl parser: rule: should throw an error for invalid then clauses ok 143 nools dsl parser: rule: should parse rules with exists clause ok 144 A Parser: should parse valid string expressions ok 145 A Parser: should parse regexps and not be greedy ok 146 A Parser: should parse valid string expressions with functions ok 147 A Parser: should parse valid string expressions with property access ok 148 A Parser: should parse valid string expressions with boolean operators ok 149 A Parser: should handle operator associativity properly ok 150 A Parser: should parse arrays ok 151 A Parser: should parse the in operator ok 152 A Parser: should parse the notIn operator ok 153 A Parser: should parse truthy statements ok 154 Rule: createRule: with strings: should create for string ok 155 Rule: createRule: with strings: should create for String ok 156 Rule: createRule: with strings: should create for number ok 157 Rule: createRule: with strings: should create for Number ok 158 Rule: createRule: with strings: should create for date ok 159 Rule: createRule: with strings: should create for Date ok 160 Rule: createRule: with strings: should create for array ok 161 Rule: createRule: with strings: should create for Array ok 162 Rule: createRule: with strings: should create for boolean ok 163 Rule: createRule: with strings: should create for Boolean ok 164 Rule: createRule: with strings: should create for regexp ok 165 Rule: createRule: with strings: should create for Regexp ok 166 Rule: createRule: with strings: should create for object ok 167 Rule: createRule: with strings: should create for Object ok 168 Rule: createRule: with strings: should create for hash ok 169 Rule: createRule: with strings: should create for Hash ok 170 Rule: createRule: with functions: should create for String function ok 171 Rule: createRule: with functions: should create for Number function ok 172 Rule: createRule: with functions: should create for Date function ok 173 Rule: createRule: with functions: should create for [] ok 174 Rule: createRule: with functions: should create for Array function ok 175 Rule: createRule: with functions: should create for Boolean function ok 176 Rule: createRule: with functions: should create for RegExp function ok 177 Rule: createRule: with functions: should create for Object function ok 178 Rule: createRule: with functions: should create for custom functions ok 179 Rule: createRule: should create a composite rule ok 180 Rule: createRule: should create a not pattern ok 181 Rule: createRule: should create a or pattern ok 182 Rule: createRule: should include reference store in constraints ok 183 Rule: createRule: should should include from constraints ok 184 Rule: createRule: should should include from constraints ok 185 Rule: createRule: should should include exists constraints # tests 185 # pass 185 # fail 0
1..185 ok 1 constraint matcher: match: should check equality ok 2 constraint matcher: match: should check inequality ok 3 constraint matcher: match: should check gt operator ok 4 constraint matcher: match: should check lt operator ok 5 constraint matcher: match: should check gte operator ok 6 constraint matcher: match: should check lte operator ok 7 constraint matcher: match: should check lte operator ok 8 constraint matcher: match: should check like operator ok 9 constraint matcher: match: should check notLike operator ok 10 constraint matcher: match: should check and operator ok 11 constraint matcher: match: should check or operator ok 12 constraint matcher: match: should check with member operator ok 13 constraint matcher: match: should check with in operator ok 14 constraint matcher: match: should check with notIn operator ok 15 constraint matcher: match: should allow properties with in ok 16 constraint matcher: match: should check with boolean associativity ok 17 constraint matcher: match: should check with nested properties ok 18 constraint matcher: match: should check with function ok 19 constraint matcher: match: should check with functions and identifier args ok 20 constraint matcher: match: should check with functions in a deep property chain and identifier args ok 21 constraint matcher: match: should check with functions in a deep property chain that returns an object and identifier args ok 22 constraint matcher: match: should have date helpers ok 23 constraint matcher: match: should create have type helpers ok 24 constraint matcher: match: should check truthy statements ok 25 constraint matcher: toConstraints: should create for expressions ok 26 constraint matcher: toConstraints: should create correct pattern depending on scope ok 27 constraint matcher: toJs: should create js equvalent expression ok 28 constraint matcher: getIdentifiers: should create the correct atoms for and expressions ok 29 constraint matcher: equals: should return true when equal ok 30 constraint matcher: equals: should return false when not equal ok 31 constraint matcher: .getIndexableProperties: should get properties with no functions ok 32 constraint matcher: .getIndexableProperties: should not get non indexable constraints ok 33 constraint matcher: .getIndexableProperties: should not get properties with functions ok 34 flowgetFacts: should get all facts in the session ok 35 flowgetFacts: should get all facts in the session by Type ok 36 agenda-groups: should only fire events in focused group ok 37 agenda-groups: should should treat focus like a stack ok 38 auto-focus: should activate agenda groups in proper order ok 39 async actions: should fire all rules ok 40 events: should emit when facts are asserted ok 41 events: should emit when facts are retracted ok 42 events: should emit when facts are modified ok 43 events: should emit when rules are fired ok 44 exists rule: fact assertion: should only activate once ok 45 exists rule: fact assertion: should not activate once if the fact does not exists ok 46 exists rule: fact retraction: should should handle fact retractions properly ok 47 exists rule: fact modification: should should handle fact modification properly ok 48 exists rule: with from modifier: assert: should should handle fact assertion properly ok 49 exists rule: with from modifier: retract: should should handle fact retraction properly ok 50 exists rule: with from modifier: modify: should should handle fact modification properly ok 51 from condition: with non array properties: should create the proper match contexts ok 52 from condition: with non array properties: should propagate modified facts properly ok 53 from condition: with non array properties: should retract facts properly ok 54 from condition: with js source: should create the proper match contexts ok 55 from condition: with js source: should propagate modified facts properly ok 56 from condition: with array properties: should create all cross product matches ok 57 from condition: with array properties: should retract all cross product matches ok 58 from condition: with not node: should only fullfill if all facts evaluate to false ok 59 from condition: with not node: should only fullfill if all facts evaluate to false ok 60 matchUntilHalt: should match until halt is called ok 61 not rule: with a single fact: should call when a string that does not equal 'hello' ok 62 not rule: with a single fact: should not call when a string that does equal 'hello' ok 63 not rule: with a single fact: should not call when a string that does equal 'hello' and one that does not ok 64 not rule: with multiple facts: should fire rules in order ok 65 not rule: modifying facts: should handle modifications ok 66 or rule: or rule with two conditions of the same type: should should match if one constraints matches ok 67 or rule: or rule with two conditions of the same type: should not call when a a constraint does not match ok 68 or rule: or rule with three conditions: should should match if one constraints matches ok 69 or rule: or rule with three conditions: should not call when none constraints match ok 70 or rule: or rule with different types: should should match if one constraints matches ok 71 or rule: or rule with different types: should not call when none constraints match ok 72 or rule: or with not conditions: should activate for each fact that does not exist ok 73 flowrule: should create a rule ok 74 flowrule: should create a rule with joins properly ok 75 flowrule: should create a rules that are dependent on eachother properly ok 76 salience: should activate in the proper order ok 77 scope option: should call when a string equals 'hello' ok 78 scope option: should call when a string equals 'world' ok 79 scope option: should not call when a string that does equal 'hello' or 'world ok 80 simple rule: should call hello world rule ok 81 Flow compiled: not rule: should call when a string that does not equal 'hello' ok 82 Flow compiled: not rule: should not call when a string that does equal 'hello' ok 83 Flow compiled: not rule: should not call when a string that does equal 'hello' and one that does not ok 84 Flow compiled: or rule: should call when a string equals 'hello'
1..185 ok 1 constraint matcher: match: should check equality ok 2 constraint matcher: match: should check inequality ok 3 constraint matcher: match: should check gt operator ok 4 constraint matcher: match: should check lt operator ok 5 constraint matcher: match: should check gte operator ok 6 constraint matcher: match: should check lte operator ok 7 constraint matcher: match: should check lte operator ok 8 constraint matcher: match: should check like operator ok 9 constraint matcher: match: should check notLike operator ok 10 constraint matcher: match: should check and operator ok 11 constraint matcher: match: should check or operator ok 12 constraint matcher: match: should check with member operator ok 13 constraint matcher: match: should check with in operator ok 14 constraint matcher: match: should check with notIn operator ok 15 constraint matcher: match: should allow properties with in ok 16 constraint matcher: match: should check with boolean associativity ok 17 constraint matcher: match: should check with nested properties ok 18 constraint matcher: match: should check with function ok 19 constraint matcher: match: should check with functions and identifier args ok 20 constraint matcher: match: should check with functions in a deep property chain and identifier args ok 21 constraint matcher: match: should check with functions in a deep property chain that returns an object and identifier args ok 22 constraint matcher: match: should have date helpers ok 23 constraint matcher: match: should create have type helpers ok 24 constraint matcher: match: should check truthy statements ok 25 constraint matcher: toConstraints: should create for expressions ok 26 constraint matcher: toConstraints: should create correct pattern depending on scope ok 27 constraint matcher: toJs: should create js equvalent expression ok 28 constraint matcher: getIdentifiers: should create the correct atoms for and expressions ok 29 constraint matcher: equals: should return true when equal ok 30 constraint matcher: equals: should return false when not equal ok 31 constraint matcher: .getIndexableProperties: should get properties with no functions ok 32 constraint matcher: .getIndexableProperties: should not get non indexable constraints ok 33 constraint matcher: .getIndexableProperties: should not get properties with functions ok 34 flowgetFacts: should get all facts in the session ok 35 flowgetFacts: should get all facts in the session by Type ok 36 agenda-groups: should only fire events in focused group ok 37 agenda-groups: should should treat focus like a stack ok 38 auto-focus: should activate agenda groups in proper order ok 39 async actions: should fire all rules ok 40 events: should emit when facts are asserted ok 41 events: should emit when facts are retracted ok 42 events: should emit when facts are modified ok 43 events: should emit when rules are fired ok 44 exists rule: fact assertion: should only activate once ok 45 exists rule: fact assertion: should not activate once if the fact does not exists ok 46 exists rule: fact retraction: should should handle fact retractions properly ok 47 exists rule: fact modification: should should handle fact modification properly ok 48 exists rule: with from modifier: assert: should should handle fact assertion properly ok 49 exists rule: with from modifier: retract: should should handle fact retraction properly ok 50 exists rule: with from modifier: modify: should should handle fact modification properly ok 51 from condition: with non array properties: should create the proper match contexts ok 52 from condition: with non array properties: should propagate modified facts properly ok 53 from condition: with non array properties: should retract facts properly ok 54 from condition: with js source: should create the proper match contexts ok 55 from condition: with js source: should propagate modified facts properly ok 56 from condition: with array properties: should create all cross product matches ok 57 from condition: with array properties: should retract all cross product matches ok 58 from condition: with not node: should only fullfill if all facts evaluate to false ok 59 from condition: with not node: should only fullfill if all facts evaluate to false ok 60 matchUntilHalt: should match until halt is called ok 61 not rule: with a single fact: should call when a string that does not equal 'hello' ok 62 not rule: with a single fact: should not call when a string that does equal 'hello' ok 63 not rule: with a single fact: should not call when a string that does equal 'hello' and one that does not ok 64 not rule: with multiple facts: should fire rules in order ok 65 not rule: modifying facts: should handle modifications ok 66 or rule: or rule with two conditions of the same type: should should match if one constraints matches ok 67 or rule: or rule with two conditions of the same type: should not call when a a constraint does not match ok 68 or rule: or rule with three conditions: should should match if one constraints matches ok 69 or rule: or rule with three conditions: should not call when none constraints match ok 70 or rule: or rule with different types: should should match if one constraints matches ok 71 or rule: or rule with different types: should not call when none constraints match ok 72 or rule: or with not conditions: should activate for each fact that does not exist ok 73 flowrule: should create a rule ok 74 flowrule: should create a rule with joins properly ok 75 flowrule: should create a rules that are dependent on eachother properly ok 76 salience: should activate in the proper order ok 77 scope option: should call when a string equals 'hello' ok 78 scope option: should call when a string equals 'world' ok 79 scope option: should not call when a string that does equal 'hello' or 'world ok 80 simple rule: should call hello world rule ok 81 Flow compiled: not rule: should call when a string that does not equal 'hello' ok 82 Flow compiled: not rule: should not call when a string that does equal 'hello' ok 83 Flow compiled: not rule: should not call when a string that does equal 'hello' and one that does not ok 84 Flow compiled: or rule: should call when a string equals 'hello' ok 85 Flow compiled: or rule: or rule with not conditions: should activate for each fact that does not exist ok 86 Flow compiled: scoped functions: should call the scoped function ok 87 Flow compiled: events: should emit when facts are asserted ok 88 Flow compiled: events: should emit when facts are retracted ok 89 Flow compiled: events: should emit when facts are modified ok 90 Flow compiled: events: should emit when rules are fired ok 91 Flow compiled: agenda-groups: should only fire events in focused group ok 92 Flow compiled: agenda-groups: should should treat focus like a stack ok 93 Flow compiled: auto-focus: should activate agenda groups in proper order ok 94 Flow compiled: fibonacci nools dsl: should calculate fibonacci 3 ok 95 Flow compiled: fibonacci nools dsl: should calculate fibonacci 4 ok 96 Flow compiled: fibonacci nools dsl: should calculate fibonacci 5 ok 97 Flow compiled: fibonacci nools dsl: should calculate fibonacci 6 ok 98 Flow compiled: diagnosis using dsl: should treat properly ok 99 Flow compiled: getFacts from action: should get all facts ok 100 Flow compiled: getFacts from action: should get facts by type ok 101 nools dsl parser: define: should parse a define statement ok 102 nools dsl parser: define: should throw an error when the define block is missing a name ok 103 nools dsl parser: define: should throw an error for invalid define blocks ok 104 nools dsl parser: define: should throw an error when the global statement is missing a name ok 105 nools dsl parser: define: should throw an error when the global statement is missing a ; ok 106 nools dsl parser: global: should parse a require call statement ok 107 nools dsl parser: global: should parse a require with a '.' character that is not a relative path ok 108 nools dsl parser: global: should resolve relative require paths ok 109 nools dsl parser: global: should parse a member look up ok 110 nools dsl parser: global: should parse a strings ok 111 nools dsl parser: global: should parse a boolean ok 112 nools dsl parser: global: should parse numbers ok 113 nools dsl parser: global: should parse a new instantiation ok 114 nools dsl parser: function: should parse a function statement ok 115 nools dsl parser: function: should throw an error when the function block is missing a name ok 116 nools dsl parser: function: should throw an error for invalid define blocks ok 117 nools dsl parser: rule: should parse rules ok 118 nools dsl parser: rule: should throw an error for invalid rule blocks ok 119 nools dsl parser: rule: should throw an error for a missing name ok 120 nools dsl parser: rule: should parse not conditions ok 121 nools dsl parser: rule: should parse or conditions ok 122 nools dsl parser: rule: should parse when clause with hash and constraints in any order ok 123 nools dsl parser: rule: should parse when clause with from ok 124 nools dsl parser: rule: should parse rules with a string name in double quotes ok 125 nools dsl parser: rule: should parse rules with a string name in single quotes ok 126 nools dsl parser: rule: should parse rules with a string name with inner strings ok 127 nools dsl parser: rule: salience/priority: should parse rules with a salience ok 128 nools dsl parser: rule: salience/priority: should parse rules with a priority ok 129 nools dsl parser: rule: salience/priority: should parse rules with a salience with a ; ok 130 nools dsl parser: rule: salience/priority: should parse rules with a priority with a ; ok 131 nools dsl parser: rule: salience/priority: should throw an error if the salience is not a number ok 132 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' ok 133 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agendaGroup' ok 134 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in '"' ok 135 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in "'" ok 136 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as true ok 137 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as false ok 138 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as true ok 139 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as false ok 140 nools dsl parser: rule: rules with auto-focus/autoFocus: should throw errors for values other than true or false ok 141 nools dsl parser: rule: should throw an error for invalid when clauses ok 142 nools dsl parser: rule: should throw an error for invalid then clauses ok 143 nools dsl parser: rule: should parse rules with exists clause ok 144 A Parser: should parse valid string expressions ok 145 A Parser: should parse regexps and not be greedy ok 146 A Parser: should parse valid string expressions with functions ok 147 A Parser: should parse valid string expressions with property access ok 148 A Parser: should parse valid string expressions with boolean operators ok 149 A Parser: should handle operator associativity properly ok 150 A Parser: should parse arrays ok 151 A Parser: should parse the in operator ok 152 A Parser: should parse the notIn operator ok 153 A Parser: should parse truthy statements ok 154 Rule: createRule: with strings: should create for string ok 155 Rule: createRule: with strings: should create for String ok 156 Rule: createRule: with strings: should create for number ok 157 Rule: createRule: with strings: should create for Number ok 158 Rule: createRule: with strings: should create for date ok 159 Rule: createRule: with strings: should create for Date ok 160 Rule: createRule: with strings: should create for array ok 161 Rule: createRule: with strings: should create for Array ok 162 Rule: createRule: with strings: should create for boolean ok 163 Rule: createRule: with strings: should create for Boolean ok 164 Rule: createRule: with strings: should create for regexp ok 165 Rule: createRule: with strings: should create for Regexp ok 166 Rule: createRule: with strings: should create for object ok 167 Rule: createRule: with strings: should create for Object ok 168 Rule: createRule: with strings: should create for hash ok 169 Rule: createRule: with strings: should create for Hash ok 170 Rule: createRule: with functions: should create for String function ok 171 Rule: createRule: with functions: should create for Number function ok 172 Rule: createRule: with functions: should create for Date function ok 173 Rule: createRule: with functions: should create for [] ok 174 Rule: createRule: with functions: should create for Array function ok 175 Rule: createRule: with functions: should create for Boolean function ok 176 Rule: createRule: with functions: should create for RegExp function ok 177 Rule: createRule: with functions: should create for Object function ok 178 Rule: createRule: with functions: should create for custom functions ok 179 Rule: createRule: should create a composite rule ok 180 Rule: createRule: should create a not pattern ok 181 Rule: createRule: should create a or pattern ok 182 Rule: createRule: should include reference store in constraints ok 183 Rule: createRule: should should include from constraints ok 184 Rule: createRule: should should include from constraints ok 185 Rule: createRule: should should include exists constraints # tests 185 # pass 185 # fail 0
1..185 ok 1 constraint matcher: match: should check equality ok 2 constraint matcher: match: should check inequality ok 3 constraint matcher: match: should check gt operator ok 4 constraint matcher: match: should check lt operator ok 5 constraint matcher: match: should check gte operator ok 6 constraint matcher: match: should check lte operator ok 7 constraint matcher: match: should check lte operator ok 8 constraint matcher: match: should check like operator ok 9 constraint matcher: match: should check notLike operator ok 10 constraint matcher: match: should check and operator ok 11 constraint matcher: match: should check or operator ok 12 constraint matcher: match: should check with member operator ok 13 constraint matcher: match: should check with in operator ok 14 constraint matcher: match: should check with notIn operator ok 15 constraint matcher: match: should allow properties with in ok 16 constraint matcher: match: should check with boolean associativity ok 17 constraint matcher: match: should check with nested properties ok 18 constraint matcher: match: should check with function ok 19 constraint matcher: match: should check with functions and identifier args ok 20 constraint matcher: match: should check with functions in a deep property chain and identifier args ok 21 constraint matcher: match: should check with functions in a deep property chain that returns an object and identifier args ok 22 constraint matcher: match: should have date helpers ok 23 constraint matcher: match: should create have type helpers ok 24 constraint matcher: match: should check truthy statements ok 25 constraint matcher: toConstraints: should create for expressions ok 26 constraint matcher: toConstraints: should create correct pattern depending on scope ok 27 constraint matcher: toJs: should create js equvalent expression ok 28 constraint matcher: getIdentifiers: should create the correct atoms for and expressions ok 29 constraint matcher: equals: should return true when equal ok 30 constraint matcher: equals: should return false when not equal ok 31 constraint matcher: .getIndexableProperties: should get properties with no functions ok 32 constraint matcher: .getIndexableProperties: should not get non indexable constraints ok 33 constraint matcher: .getIndexableProperties: should not get properties with functions ok 34 flowgetFacts: should get all facts in the session ok 35 flowgetFacts: should get all facts in the session by Type ok 36 agenda-groups: should only fire events in focused group ok 37 agenda-groups: should should treat focus like a stack ok 38 auto-focus: should activate agenda groups in proper order ok 39 async actions: should fire all rules ok 40 events: should emit when facts are asserted ok 41 events: should emit when facts are retracted ok 42 events: should emit when facts are modified ok 43 events: should emit when rules are fired ok 44 exists rule: fact assertion: should only activate once ok 45 exists rule: fact assertion: should not activate once if the fact does not exists ok 46 exists rule: fact retraction: should should handle fact retractions properly ok 47 exists rule: fact modification: should should handle fact modification properly ok 48 exists rule: with from modifier: assert: should should handle fact assertion properly ok 49 exists rule: with from modifier: retract: should should handle fact retraction properly ok 50 exists rule: with from modifier: modify: should should handle fact modification properly ok 51 from condition: with non array properties: should create the proper match contexts ok 52 from condition: with non array properties: should propagate modified facts properly ok 53 from condition: with non array properties: should retract facts properly ok 54 from condition: with js source: should create the proper match contexts ok 55 from condition: with js source: should propagate modified facts properly ok 56 from condition: with array properties: should create all cross product matches ok 57 from condition: with array properties: should retract all cross product matches ok 58 from condition: with not node: should only fullfill if all facts evaluate to false ok 59 from condition: with not node: should only fullfill if all facts evaluate to false ok 60 matchUntilHalt: should match until halt is called ok 61 not rule: with a single fact: should call when a string that does not equal 'hello' ok 62 not rule: with a single fact: should not call when a string that does equal 'hello' ok 63 not rule: with a single fact: should not call when a string that does equal 'hello' and one that does not ok 64 not rule: with multiple facts: should fire rules in order ok 65 not rule: modifying facts: should handle modifications ok 66 or rule: or rule with two conditions of the same type: should should match if one constraints matches ok 67 or rule: or rule with two conditions of the same type: should not call when a a constraint does not match ok 68 or rule: or rule with three conditions: should should match if one constraints matches ok 69 or rule: or rule with three conditions: should not call when none constraints match ok 70 or rule: or rule with different types: should should match if one constraints matches ok 71 or rule: or rule with different types: should not call when none constraints match ok 72 or rule: or with not conditions: should activate for each fact that does not exist ok 73 flowrule: should create a rule ok 74 flowrule: should create a rule with joins properly ok 75 flowrule: should create a rules that are dependent on eachother properly ok 76 salience: should activate in the proper order ok 77 scope option: should call when a string equals 'hello' ok 78 scope option: should call when a string equals 'world' ok 79 scope option: should not call when a string that does equal 'hello' or 'world ok 80 simple rule: should call hello world rule ok 81 Flow compiled: not rule: should call when a string that does not equal 'hello' ok 82 Flow compiled: not rule: should not call when a string that does equal 'hello' ok 83 Flow compiled: not rule: should not call when a string that does equal 'hello' and one that does not ok 84 Flow compiled: or rule: should call when a string equals 'hello' ok 85 Flow compiled: or rule: or rule with not conditions: should activate for each fact that does not exist ok 86 Flow compiled: scoped functions: should call the scoped function ok 87 Flow compiled: events: should emit when facts are asserted ok 88 Flow compiled: events: should emit when facts are retracted ok 89 Flow compiled: events: should emit when facts are modified ok 90 Flow compiled: events: should emit when rules are fired ok 91 Flow compiled: agenda-groups: should only fire events in focused group ok 92 Flow compiled: agenda-groups: should should treat focus like a stack ok 93 Flow compiled: auto-focus: should activate agenda groups in proper order ok 94 Flow compiled: fibonacci nools dsl: should calculate fibonacci 3 ok 95 Flow compiled: fibonacci nools dsl: should calculate fibonacci 4 ok 96 Flow compiled: fibonacci nools dsl: should calculate fibonacci 5 ok 97 Flow compiled: fibonacci nools dsl: should calculate fibonacci 6 ok 98 Flow compiled: diagnosis using dsl: should treat properly ok 99 Flow compiled: getFacts from action: should get all facts ok 100 Flow compiled: getFacts from action: should get facts by type ok 101 nools dsl parser: define: should parse a define statement ok 102 nools dsl parser: define: should throw an error when the define block is missing a name ok 103 nools dsl parser: define: should throw an error for invalid define blocks ok 104 nools dsl parser: define: should throw an error when the global statement is missing a name ok 105 nools dsl parser: define: should throw an error when the global statement is missing a ; ok 106 nools dsl parser: global: should parse a require call statement ok 107 nools dsl parser: global: should parse a require with a '.' character that is not a relative path ok 108 nools dsl parser: global: should resolve relative require paths ok 109 nools dsl parser: global: should parse a member look up ok 110 nools dsl parser: global: should parse a strings ok 111 nools dsl parser: global: should parse a boolean ok 112 nools dsl parser: global: should parse numbers ok 113 nools dsl parser: global: should parse a new instantiation ok 114 nools dsl parser: function: should parse a function statement ok 115 nools dsl parser: function: should throw an error when the function block is missing a name ok 116 nools dsl parser: function: should throw an error for invalid define blocks ok 117 nools dsl parser: rule: should parse rules ok 118 nools dsl parser: rule: should throw an error for invalid rule blocks ok 119 nools dsl parser: rule: should throw an error for a missing name ok 120 nools dsl parser: rule: should parse not conditions ok 121 nools dsl parser: rule: should parse or conditions ok 122 nools dsl parser: rule: should parse when clause with hash and constraints in any order ok 123 nools dsl parser: rule: should parse when clause with from ok 124 nools dsl parser: rule: should parse rules with a string name in double quotes ok 125 nools dsl parser: rule: should parse rules with a string name in single quotes ok 126 nools dsl parser: rule: should parse rules with a string name with inner strings ok 127 nools dsl parser: rule: salience/priority: should parse rules with a salience ok 128 nools dsl parser: rule: salience/priority: should parse rules with a priority ok 129 nools dsl parser: rule: salience/priority: should parse rules with a salience with a ; ok 130 nools dsl parser: rule: salience/priority: should parse rules with a priority with a ; ok 131 nools dsl parser: rule: salience/priority: should throw an error if the salience is not a number ok 132 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' ok 133 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agendaGroup' ok 134 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in '"' ok 135 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in "'" ok 136 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as true ok 137 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as false ok 138 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as true ok 139 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as false ok 140 nools dsl parser: rule: rules with auto-focus/autoFocus: should throw errors for values other than true or false ok 141 nools dsl parser: rule: should throw an error for invalid when clauses ok 142 nools dsl parser: rule: should throw an error for invalid then clauses ok 143 nools dsl parser: rule: should parse rules with exists clause ok 144 A Parser: should parse valid string expressions ok 145 A Parser: should parse regexps and not be greedy ok 146 A Parser: should parse valid string expressions with functions ok 147 A Parser: should parse valid string expressions with property access ok 148 A Parser: should parse valid string expressions with boolean operators ok 149 A Parser: should handle operator associativity properly ok 150 A Parser: should parse arrays ok 151 A Parser: should parse the in operator ok 152 A Parser: should parse the notIn operator ok 153 A Parser: should parse truthy statements ok 154 Rule: createRule: with strings: should create for string ok 155 Rule: createRule: with strings: should create for String ok 156 Rule: createRule: with strings: should create for number ok 157 Rule: createRule: with strings: should create for Number ok 158 Rule: createRule: with strings: should create for date ok 159 Rule: createRule: with strings: should create for Date ok 160 Rule: createRule: with strings: should create for array ok 161 Rule: createRule: with strings: should create for Array ok 162 Rule: createRule: with strings: should create for boolean ok 163 Rule: createRule: with strings: should create for Boolean ok 164 Rule: createRule: with strings: should create for regexp ok 165 Rule: createRule: with strings: should create for Regexp ok 166 Rule: createRule: with strings: should create for object ok 167 Rule: createRule: with strings: should create for Object ok 168 Rule: createRule: with strings: should create for hash ok 169 Rule: createRule: with strings: should create for Hash ok 170 Rule: createRule: with functions: should create for String function ok 171 Rule: createRule: with functions: should create for Number function ok 172 Rule: createRule: with functions: should create for Date function ok 173 Rule: createRule: with functions: should create for [] ok 174 Rule: createRule: with functions: should create for Array function ok 175 Rule: createRule: with functions: should create for Boolean function ok 176 Rule: createRule: with functions: should create for RegExp function ok 177 Rule: createRule: with functions: should create for Object function ok 178 Rule: createRule: with functions: should create for custom functions ok 179 Rule: createRule: should create a composite rule ok 180 Rule: createRule: should create a not pattern ok 181 Rule: createRule: should create a or pattern ok 182 Rule: createRule: should include reference store in constraints ok 183 Rule: createRule: should should include from constraints ok 184 Rule: createRule: should should include from constraints ok 185 Rule: createRule: should should include exists constraints # tests 185 # pass 185 # fail 0
1..185 ok 1 constraint matcher: match: should check equality ok 2 constraint matcher: match: should check inequality ok 3 constraint matcher: match: should check gt operator ok 4 constraint matcher: match: should check lt operator ok 5 constraint matcher: match: should check gte operator ok 6 constraint matcher: match: should check lte operator ok 7 constraint matcher: match: should check lte operator ok 8 constraint matcher: match: should check like operator ok 9 constraint matcher: match: should check notLike operator ok 10 constraint matcher: match: should check and operator ok 11 constraint matcher: match: should check or operator ok 12 constraint matcher: match: should check with member operator ok 13 constraint matcher: match: should check with in operator ok 14 constraint matcher: match: should check with notIn operator ok 15 constraint matcher: match: should allow properties with in ok 16 constraint matcher: match: should check with boolean associativity ok 17 constraint matcher: match: should check with nested properties ok 18 constraint matcher: match: should check with function ok 19 constraint matcher: match: should check with functions and identifier args ok 20 constraint matcher: match: should check with functions in a deep property chain and identifier args ok 21 constraint matcher: match: should check with functions in a deep property chain that returns an object and identifier args ok 22 constraint matcher: match: should have date helpers ok 23 constraint matcher: match: should create have type helpers ok 24 constraint matcher: match: should check truthy statements ok 25 constraint matcher: toConstraints: should create for expressions ok 26 constraint matcher: toConstraints: should create correct pattern depending on scope ok 27 constraint matcher: toJs: should create js equvalent expression ok 28 constraint matcher: getIdentifiers: should create the correct atoms for and expressions ok 29 constraint matcher: equals: should return true when equal ok 30 constraint matcher: equals: should return false when not equal ok 31 constraint matcher: .getIndexableProperties: should get properties with no functions ok 32 constraint matcher: .getIndexableProperties: should not get non indexable constraints ok 33 constraint matcher: .getIndexableProperties: should not get properties with functions ok 34 flowgetFacts: should get all facts in the session ok 35 flowgetFacts: should get all facts in the session by Type ok 36 agenda-groups: should only fire events in focused group ok 37 agenda-groups: should should treat focus like a stack ok 38 auto-focus: should activate agenda groups in proper order ok 39 async actions: should fire all rules ok 40 events: should emit when facts are asserted ok 41 events: should emit when facts are retracted ok 42 events: should emit when facts are modified ok 43 events: should emit when rules are fired ok 44 exists rule: fact assertion: should only activate once ok 45 exists rule: fact assertion: should not activate once if the fact does not exists ok 46 exists rule: fact retraction: should should handle fact retractions properly ok 47 exists rule: fact modification: should should handle fact modification properly ok 48 exists rule: with from modifier: assert: should should handle fact assertion properly ok 49 exists rule: with from modifier: retract: should should handle fact retraction properly ok 50 exists rule: with from modifier: modify: should should handle fact modification properly ok 51 from condition: with non array properties: should create the proper match contexts ok 52 from condition: with non array properties: should propagate modified facts properly ok 53 from condition: with non array properties: should retract facts properly ok 54 from condition: with js source: should create the proper match contexts ok 55 from condition: with js source: should propagate modified facts properly ok 56 from condition: with array properties: should create all cross product matches ok 57 from condition: with array properties: should retract all cross product matches ok 58 from condition: with not node: should only fullfill if all facts evaluate to false ok 59 from condition: with not node: should only fullfill if all facts evaluate to false ok 60 matchUntilHalt: should match until halt is called ok 61 not rule: with a single fact: should call when a string that does not equal 'hello' ok 62 not rule: with a single fact: should not call when a string that does equal 'hello' ok 63 not rule: with a single fact: should not call when a string that does equal 'hello' and one that does not ok 64 not rule: with multiple facts: should fire rules in order ok 65 not rule: modifying facts: should handle modifications ok 66 or rule: or rule with two conditions of the same type: should should match if one constraints matches ok 67 or rule: or rule with two conditions of the same type: should not call when a a constraint does not match ok 68 or rule: or rule with three conditions: should should match if one constraints matches ok 69 or rule: or rule with three conditions: should not call when none constraints match ok 70 or rule: or rule with different types: should should match if one constraints matches ok 71 or rule: or rule with different types: should not call when none constraints match ok 72 or rule: or with not conditions: should activate for each fact that does not exist ok 73 flowrule: should create a rule ok 74 flowrule: should create a rule with joins properly ok 75 flowrule: should create a rules that are dependent on eachother properly ok 76 salience: should activate in the proper order ok 77 scope option: should call when a string equals 'hello' ok 78 scope option: should call when a string equals 'world' ok 79 scope option: should not call when a string that does equal 'hello' or 'world ok 80 simple rule: should call hello world rule ok 81 Flow compiled: not rule: should call when a string that does not equal 'hello' ok 82 Flow compiled: not rule: should not call when a string that does equal 'hello' ok 83 Flow compiled: not rule: should not call when a string that does equal 'hello' and one that does not ok 84 Flow compiled: or rule: should call when a string equals 'hello' ok 85 Flow compiled: or rule: or rule with not conditions: should activate for each fact that does not exist ok 86 Flow compiled: scoped functions: should call the scoped function ok 87 Flow compiled: events: should emit when facts are asserted ok 88 Flow compiled: events: should emit when facts are retracted ok 89 Flow compiled: events: should emit when facts are modified ok 90 Flow compiled: events: should emit when rules are fired ok 91 Flow compiled: agenda-groups: should only fire events in focused group ok 92 Flow compiled: agenda-groups: should should treat focus like a stack ok 93 Flow compiled: auto-focus: should activate agenda groups in proper order ok 94 Flow compiled: fibonacci nools dsl: should calculate fibonacci 3 ok 95 Flow compiled: fibonacci nools dsl: should calculate fibonacci 4 ok 96 Flow compiled: fibonacci nools dsl: should calculate fibonacci 5 ok 97 Flow compiled: fibonacci nools dsl: should calculate fibonacci 6 ok 98 Flow compiled: diagnosis using dsl: should treat properly ok 99 Flow compiled: getFacts from action: should get all facts ok 100 Flow compiled: getFacts from action: should get facts by type ok 101 nools dsl parser: define: should parse a define statement ok 102 nools dsl parser: define: should throw an error when the define block is missing a name ok 103 nools dsl parser: define: should throw an error for invalid define blocks ok 104 nools dsl parser: define: should throw an error when the global statement is missing a name ok 105 nools dsl parser: define: should throw an error when the global statement is missing a ; ok 106 nools dsl parser: global: should parse a require call statement ok 107 nools dsl parser: global: should parse a require with a '.' character that is not a relative path ok 108 nools dsl parser: global: should resolve relative require paths ok 109 nools dsl parser: global: should parse a member look up ok 110 nools dsl parser: global: should parse a strings ok 111 nools dsl parser: global: should parse a boolean ok 112 nools dsl parser: global: should parse numbers ok 113 nools dsl parser: global: should parse a new instantiation ok 114 nools dsl parser: function: should parse a function statement ok 115 nools dsl parser: function: should throw an error when the function block is missing a name ok 116 nools dsl parser: function: should throw an error for invalid define blocks ok 117 nools dsl parser: rule: should parse rules ok 118 nools dsl parser: rule: should throw an error for invalid rule blocks ok 119 nools dsl parser: rule: should throw an error for a missing name ok 120 nools dsl parser: rule: should parse not conditions ok 121 nools dsl parser: rule: should parse or conditions ok 122 nools dsl parser: rule: should parse when clause with hash and constraints in any order ok 123 nools dsl parser: rule: should parse when clause with from ok 124 nools dsl parser: rule: should parse rules with a string name in double quotes ok 125 nools dsl parser: rule: should parse rules with a string name in single quotes ok 126 nools dsl parser: rule: should parse rules with a string name with inner strings ok 127 nools dsl parser: rule: salience/priority: should parse rules with a salience ok 128 nools dsl parser: rule: salience/priority: should parse rules with a priority ok 129 nools dsl parser: rule: salience/priority: should parse rules with a salience with a ; ok 130 nools dsl parser: rule: salience/priority: should parse rules with a priority with a ; ok 131 nools dsl parser: rule: salience/priority: should throw an error if the salience is not a number ok 132 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' ok 133 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agendaGroup' ok 134 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in '"' ok 135 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in "'" ok 136 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as true ok 137 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as false ok 138 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as true ok 139 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as false ok 140 nools dsl parser: rule: rules with auto-focus/autoFocus: should throw errors for values other than true or false ok 141 nools dsl parser: rule: should throw an error for invalid when clauses ok 142 nools dsl parser: rule: should throw an error for invalid then clauses ok 143 nools dsl parser: rule: should parse rules with exists clause ok 144 A Parser: should parse valid string expressions ok 145 A Parser: should parse regexps and not be greedy ok 146 A Parser: should parse valid string expressions with functions ok 147 A Parser: should parse valid string expressions with property access ok 148 A Parser: should parse valid string expressions with boolean operators ok 149 A Parser: should handle operator associativity properly ok 150 A Parser: should parse arrays ok 151 A Parser: should parse the in operator ok 152 A Parser: should parse the notIn operator ok 153 A Parser: should parse truthy statements ok 154 Rule: createRule: with strings: should create for string ok 155 Rule: createRule: with strings: should create for String ok 156 Rule: createRule: with strings: should create for number ok 157 Rule: createRule: with strings: should create for Number ok 158 Rule: createRule: with strings: should create for date ok 159 Rule: createRule: with strings: should create for Date ok 160 Rule: createRule: with strings: should create for array ok 161 Rule: createRule: with strings: should create for Array ok 162 Rule: createRule: with strings: should create for boolean ok 163 Rule: createRule: with strings: should create for Boolean ok 164 Rule: createRule: with strings: should create for regexp ok 165 Rule: createRule: with strings: should create for Regexp ok 166 Rule: createRule: with strings: should create for object ok 167 Rule: createRule: with strings: should create for Object ok 168 Rule: createRule: with strings: should create for hash ok 169 Rule: createRule: with strings: should create for Hash ok 170 Rule: createRule: with functions: should create for String function ok 171 Rule: createRule: with functions: should create for Number function ok 172 Rule: createRule: with functions: should create for Date function ok 173 Rule: createRule: with functions: should create for [] ok 174 Rule: createRule: with functions: should create for Array function ok 175 Rule: createRule: with functions: should create for Boolean function ok 176 Rule: createRule: with functions: should create for RegExp function ok 177 Rule: createRule: with functions: should create for Object function ok 178 Rule: createRule: with functions: should create for custom functions ok 179 Rule: createRule: should create a composite rule ok 180 Rule: createRule: should create a not pattern ok 181 Rule: createRule: should create a or pattern ok 182 Rule: createRule: should include reference store in constraints ok 183 Rule: createRule: should should include from constraints ok 184 Rule: createRule: should should include from constraints ok 185 Rule: createRule: should should include exists constraints # tests 185 # pass 185 # fail 0
1..185 ok 1 constraint matcher: match: should check equality ok 2 constraint matcher: match: should check inequality ok 3 constraint matcher: match: should check gt operator ok 4 constraint matcher: match: should check lt operator ok 5 constraint matcher: match: should check gte operator ok 6 constraint matcher: match: should check lte operator ok 7 constraint matcher: match: should check lte operator ok 8 constraint matcher: match: should check like operator ok 9 constraint matcher: match: should check notLike operator ok 10 constraint matcher: match: should check and operator ok 11 constraint matcher: match: should check or operator ok 12 constraint matcher: match: should check with member operator ok 13 constraint matcher: match: should check with in operator ok 14 constraint matcher: match: should check with notIn operator ok 15 constraint matcher: match: should allow properties with in ok 16 constraint matcher: match: should check with boolean associativity ok 17 constraint matcher: match: should check with nested properties ok 18 constraint matcher: match: should check with function ok 19 constraint matcher: match: should check with functions and identifier args ok 20 constraint matcher: match: should check with functions in a deep property chain and identifier args ok 21 constraint matcher: match: should check with functions in a deep property chain that returns an object and identifier args ok 22 constraint matcher: match: should have date helpers ok 23 constraint matcher: match: should create have type helpers ok 24 constraint matcher: match: should check truthy statements ok 25 constraint matcher: toConstraints: should create for expressions ok 26 constraint matcher: toConstraints: should create correct pattern depending on scope ok 27 constraint matcher: toJs: should create js equvalent expression ok 28 constraint matcher: getIdentifiers: should create the correct atoms for and expressions ok 29 constraint matcher: equals: should return true when equal ok 30 constraint matcher: equals: should return false when not equal ok 31 constraint matcher: .getIndexableProperties: should get properties with no functions ok 32 constraint matcher: .getIndexableProperties: should not get non indexable constraints ok 33 constraint matcher: .getIndexableProperties: should not get properties with functions ok 34 flowgetFacts: should get all facts in the session ok 35 flowgetFacts: should get all facts in the session by Type ok 36 agenda-groups: should only fire events in focused group ok 37 agenda-groups: should should treat focus like a stack ok 38 auto-focus: should activate agenda groups in proper order ok 39 async actions: should fire all rules ok 40 events: should emit when facts are asserted ok 41 events: should emit when facts are retracted ok 42 events: should emit when facts are modified ok 43 events: should emit when rules are fired ok 44 exists rule: fact assertion: should only activate once ok 45 exists rule: fact assertion: should not activate once if the fact does not exists ok 46 exists rule: fact retraction: should should handle fact retractions properly ok 47 exists rule: fact modification: should should handle fact modification properly ok 48 exists rule: with from modifier: assert: should should handle fact assertion properly ok 49 exists rule: with from modifier: retract: should should handle fact retraction properly ok 50 exists rule: with from modifier: modify: should should handle fact modification properly ok 51 from condition: with non array properties: should create the proper match contexts ok 52 from condition: with non array properties: should propagate modified facts properly ok 53 from condition: with non array properties: should retract facts properly ok 54 from condition: with js source: should create the proper match contexts ok 55 from condition: with js source: should propagate modified facts properly ok 56 from condition: with array properties: should create all cross product matches ok 57 from condition: with array properties: should retract all cross product matches ok 58 from condition: with not node: should only fullfill if all facts evaluate to false ok 59 from condition: with not node: should only fullfill if all facts evaluate to false ok 60 matchUntilHalt: should match until halt is called ok 61 not rule: with a single fact: should call when a string that does not equal 'hello' ok 62 not rule: with a single fact: should not call when a string that does equal 'hello' ok 63 not rule: with a single fact: should not call when a string that does equal 'hello' and one that does not ok 64 not rule: with multiple facts: should fire rules in order ok 65 not rule: modifying facts: should handle modifications ok 66 or rule: or rule with two conditions of the same type: should should match if one constraints matches ok 67 or rule: or rule with two conditions of the same type: should not call when a a constraint does not match ok 68 or rule: or rule with three conditions: should should match if one constraints matches ok 69 or rule: or rule with three conditions: should not call when none constraints match ok 70 or rule: or rule with different types: should should match if one constraints matches ok 71 or rule: or rule with different types: should not call when none constraints match ok 72 or rule: or with not conditions: should activate for each fact that does not exist ok 73 flowrule: should create a rule ok 74 flowrule: should create a rule with joins properly ok 75 flowrule: should create a rules that are dependent on eachother properly ok 76 salience: should activate in the proper order ok 77 scope option: should call when a string equals 'hello' ok 78 scope option: should call when a string equals 'world' ok 79 scope option: should not call when a string that does equal 'hello' or 'world ok 80 simple rule: should call hello world rule ok 81 Flow compiled: not rule: should call when a string that does not equal 'hello' ok 82 Flow compiled: not rule: should not call when a string that does equal 'hello' ok 83 Flow compiled: not rule: should not call when a string that does equal 'hello' and one that does not ok 84 Flow compiled: or rule: should call when a string equals 'hello' ok 85 Flow compiled: or rule: or rule with not conditions: should activate for each fact that does not exist ok 86 Flow compiled: scoped functions: should call the scoped function ok 87 Flow compiled: events: should emit when facts are asserted ok 88 Flow compiled: events: should emit when facts are retracted ok 89 Flow compiled: events: should emit when facts are modified ok 90 Flow compiled: events: should emit when rules are fired ok 91 Flow compiled: agenda-groups: should only fire events in focused group ok 92 Flow compiled: agenda-groups: should should treat focus like a stack ok 93 Flow compiled: auto-focus: should activate agenda groups in proper order ok 94 Flow compiled: fibonacci nools dsl: should calculate fibonacci 3 ok 95 Flow compiled: fibonacci nools dsl: should calculate fibonacci 4 ok 96 Flow compiled: fibonacci nools dsl: should calculate fibonacci 5 ok 97 Flow compiled: fibonacci nools dsl: should calculate fibonacci 6 ok 98 Flow compiled: diagnosis using dsl: should treat properly ok 99 Flow compiled: getFacts from action: should get all facts ok 100 Flow compiled: getFacts from action: should get facts by type ok 101 nools dsl parser: define: should parse a define statement ok 102 nools dsl parser: define: should throw an error when the define block is missing a name ok 103 nools dsl parser: define: should throw an error for invalid define blocks ok 104 nools dsl parser: define: should throw an error when the global statement is missing a name ok 105 nools dsl parser: define: should throw an error when the global statement is missing a ; ok 106 nools dsl parser: global: should parse a require call statement ok 107 nools dsl parser: global: should parse a require with a '.' character that is not a relative path ok 108 nools dsl parser: global: should resolve relative require paths ok 109 nools dsl parser: global: should parse a member look up ok 110 nools dsl parser: global: should parse a strings ok 111 nools dsl parser: global: should parse a boolean ok 112 nools dsl parser: global: should parse numbers ok 113 nools dsl parser: global: should parse a new instantiation ok 114 nools dsl parser: function: should parse a function statement ok 115 nools dsl parser: function: should throw an error when the function block is missing a name ok 116 nools dsl parser: function: should throw an error for invalid define blocks ok 117 nools dsl parser: rule: should parse rules ok 118 nools dsl parser: rule: should throw an error for invalid rule blocks ok 119 nools dsl parser: rule: should throw an error for a missing name ok 120 nools dsl parser: rule: should parse not conditions ok 121 nools dsl parser: rule: should parse or conditions ok 122 nools dsl parser: rule: should parse when clause with hash and constraints in any order ok 123 nools dsl parser: rule: should parse when clause with from ok 124 nools dsl parser: rule: should parse rules with a string name in double quotes ok 125 nools dsl parser: rule: should parse rules with a string name in single quotes ok 126 nools dsl parser: rule: should parse rules with a string name with inner strings ok 127 nools dsl parser: rule: salience/priority: should parse rules with a salience ok 128 nools dsl parser: rule: salience/priority: should parse rules with a priority ok 129 nools dsl parser: rule: salience/priority: should parse rules with a salience with a ; ok 130 nools dsl parser: rule: salience/priority: should parse rules with a priority with a ; ok 131 nools dsl parser: rule: salience/priority: should throw an error if the salience is not a number ok 132 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' ok 133 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agendaGroup' ok 134 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in '"' ok 135 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in "'" ok 136 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as true ok 137 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as false ok 138 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as true ok 139 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as false ok 140 nools dsl parser: rule: rules with auto-focus/autoFocus: should throw errors for values other than true or false ok 141 nools dsl parser: rule: should throw an error for invalid when clauses ok 142 nools dsl parser: rule: should throw an error for invalid then clauses ok 143 nools dsl parser: rule: should parse rules with exists clause ok 144 A Parser: should parse valid string expressions ok 145 A Parser: should parse regexps and not be greedy ok 146 A Parser: should parse valid string expressions with functions ok 147 A Parser: should parse valid string expressions with property access ok 148 A Parser: should parse valid string expressions with boolean operators ok 149 A Parser: should handle operator associativity properly ok 150 A Parser: should parse arrays ok 151 A Parser: should parse the in operator ok 152 A Parser: should parse the notIn operator ok 153 A Parser: should parse truthy statements ok 154 Rule: createRule: with strings: should create for string ok 155 Rule: createRule: with strings: should create for String ok 156 Rule: createRule: with strings: should create for number ok 157 Rule: createRule: with strings: should create for Number ok 158 Rule: createRule: with strings: should create for date ok 159 Rule: createRule: with strings: should create for Date ok 160 Rule: createRule: with strings: should create for array ok 161 Rule: createRule: with strings: should create for Array ok 162 Rule: createRule: with strings: should create for boolean ok 163 Rule: createRule: with strings: should create for Boolean ok 164 Rule: createRule: with strings: should create for regexp ok 165 Rule: createRule: with strings: should create for Regexp ok 166 Rule: createRule: with strings: should create for object ok 167 Rule: createRule: with strings: should create for Object ok 168 Rule: createRule: with strings: should create for hash ok 169 Rule: createRule: with strings: should create for Hash ok 170 Rule: createRule: with functions: should create for String function ok 171 Rule: createRule: with functions: should create for Number function ok 172 Rule: createRule: with functions: should create for Date function ok 173 Rule: createRule: with functions: should create for [] ok 174 Rule: createRule: with functions: should create for Array function ok 175 Rule: createRule: with functions: should create for Boolean function ok 176 Rule: createRule: with functions: should create for RegExp function ok 177 Rule: createRule: with functions: should create for Object function ok 178 Rule: createRule: with functions: should create for custom functions ok 179 Rule: createRule: should create a composite rule ok 180 Rule: createRule: should create a not pattern ok 181 Rule: createRule: should create a or pattern ok 182 Rule: createRule: should include reference store in constraints ok 183 Rule: createRule: should should include from constraints ok 184 Rule: createRule: should should include from constraints ok 185 Rule: createRule: should should include exists constraints # tests 185 # pass 185 # fail 0
1..185 ok 1 constraint matcher: match: should check equality ok 2 constraint matcher: match: should check inequality ok 3 constraint matcher: match: should check gt operator ok 4 constraint matcher: match: should check lt operator ok 5 constraint matcher: match: should check gte operator ok 6 constraint matcher: match: should check lte operator ok 7 constraint matcher: match: should check lte operator ok 8 constraint matcher: match: should check like operator ok 9 constraint matcher: match: should check notLike operator ok 10 constraint matcher: match: should check and operator ok 11 constraint matcher: match: should check or operator ok 12 constraint matcher: match: should check with member operator ok 13 constraint matcher: match: should check with in operator ok 14 constraint matcher: match: should check with notIn operator ok 15 constraint matcher: match: should allow properties with in ok 16 constraint matcher: match: should check with boolean associativity ok 17 constraint matcher: match: should check with nested properties ok 18 constraint matcher: match: should check with function ok 19 constraint matcher: match: should check with functions and identifier args ok 20 constraint matcher: match: should check with functions in a deep property chain and identifier args ok 21 constraint matcher: match: should check with functions in a deep property chain that returns an object and identifier args ok 22 constraint matcher: match: should have date helpers ok 23 constraint matcher: match: should create have type helpers ok 24 constraint matcher: match: should check truthy statements ok 25 constraint matcher: toConstraints: should create for expressions ok 26 constraint matcher: toConstraints: should create correct pattern depending on scope ok 27 constraint matcher: toJs: should create js equvalent expression ok 28 constraint matcher: getIdentifiers: should create the correct atoms for and expressions ok 29 constraint matcher: equals: should return true when equal ok 30 constraint matcher: equals: should return false when not equal ok 31 constraint matcher: .getIndexableProperties: should get properties with no functions ok 32 constraint matcher: .getIndexableProperties: should not get non indexable constraints ok 33 constraint matcher: .getIndexableProperties: should not get properties with functions ok 34 flowgetFacts: should get all facts in the session ok 35 flowgetFacts: should get all facts in the session by Type ok 36 agenda-groups: should only fire events in focused group ok 37 agenda-groups: should should treat focus like a stack ok 38 auto-focus: should activate agenda groups in proper order ok 39 async actions: should fire all rules ok 40 events: should emit when facts are asserted ok 41 events: should emit when facts are retracted ok 42 events: should emit when facts are modified ok 43 events: should emit when rules are fired ok 44 exists rule: fact assertion: should only activate once ok 45 exists rule: fact assertion: should not activate once if the fact does not exists ok 46 exists rule: fact retraction: should should handle fact retractions properly ok 47 exists rule: fact modification: should should handle fact modification properly ok 48 exists rule: with from modifier: assert: should should handle fact assertion properly ok 49 exists rule: with from modifier: retract: should should handle fact retraction properly ok 50 exists rule: with from modifier: modify: should should handle fact modification properly ok 51 from condition: with non array properties: should create the proper match contexts ok 52 from condition: with non array properties: should propagate modified facts properly ok 53 from condition: with non array properties: should retract facts properly ok 54 from condition: with js source: should create the proper match contexts ok 55 from condition: with js source: should propagate modified facts properly ok 56 from condition: with array properties: should create all cross product matches ok 57 from condition: with array properties: should retract all cross product matches ok 58 from condition: with not node: should only fullfill if all facts evaluate to false ok 59 from condition: with not node: should only fullfill if all facts evaluate to false ok 60 matchUntilHalt: should match until halt is called ok 61 not rule: with a single fact: should call when a string that does not equal 'hello' ok 62 not rule: with a single fact: should not call when a string that does equal 'hello' ok 63 not rule: with a single fact: should not call when a string that does equal 'hello' and one that does not ok 64 not rule: with multiple facts: should fire rules in order ok 65 not rule: modifying facts: should handle modifications ok 66 or rule: or rule with two conditions of the same type: should should match if one constraints matches ok 67 or rule: or rule with two conditions of the same type: should not call when a a constraint does not match ok 68 or rule: or rule with three conditions: should should match if one constraints matches ok 69 or rule: or rule with three conditions: should not call when none constraints match ok 70 or rule: or rule with different types: should should match if one constraints matches ok 71 or rule: or rule with different types: should not call when none constraints match ok 72 or rule: or with not conditions: should activate for each fact that does not exist ok 73 flowrule: should create a rule ok 74 flowrule: should create a rule with joins properly ok 75 flowrule: should create a rules that are dependent on eachother properly ok 76 salience: should activate in the proper order ok 77 scope option: should call when a string equals 'hello' ok 78 scope option: should call when a string equals 'world' ok 79 scope option: should not call when a string that does equal 'hello' or 'world ok 80 simple rule: should call hello world rule ok 81 Flow compiled: not rule: should call when a string that does not equal 'hello' ok 82 Flow compiled: not rule: should not call when a string that does equal 'hello' ok 83 Flow compiled: not rule: should not call when a string that does equal 'hello' and one that does not ok 84 Flow compiled: or rule: should call when a string equals 'hello' ok 85 Flow compiled: or rule: or rule with not conditions: should activate for each fact that does not exist ok 86 Flow compiled: scoped functions: should call the scoped function ok 87 Flow compiled: events: should emit when facts are asserted ok 88 Flow compiled: events: should emit when facts are retracted ok 89 Flow compiled: events: should emit when facts are modified ok 90 Flow compiled: events: should emit when rules are fired ok 91 Flow compiled: agenda-groups: should only fire events in focused group ok 92 Flow compiled: agenda-groups: should should treat focus like a stack ok 93 Flow compiled: auto-focus: should activate agenda groups in proper order ok 94 Flow compiled: fibonacci nools dsl: should calculate fibonacci 3 ok 95 Flow compiled: fibonacci nools dsl: should calculate fibonacci 4 ok 96 Flow compiled: fibonacci nools dsl: should calculate fibonacci 5 ok 97 Flow compiled: fibonacci nools dsl: should calculate fibonacci 6 ok 98 Flow compiled: diagnosis using dsl: should treat properly ok 99 Flow compiled: getFacts from action: should get all facts ok 100 Flow compiled: getFacts from action: should get facts by type ok 101 nools dsl parser: define: should parse a define statement ok 102 nools dsl parser: define: should throw an error when the define block is missing a name ok 103 nools dsl parser: define: should throw an error for invalid define blocks ok 104 nools dsl parser: define: should throw an error when the global statement is missing a name ok 105 nools dsl parser: define: should throw an error when the global statement is missing a ; ok 106 nools dsl parser: global: should parse a require call statement ok 107 nools dsl parser: global: should parse a require with a '.' character that is not a relative path ok 108 nools dsl parser: global: should resolve relative require paths ok 109 nools dsl parser: global: should parse a member look up ok 110 nools dsl parser: global: should parse a strings ok 111 nools dsl parser: global: should parse a boolean ok 112 nools dsl parser: global: should parse numbers ok 113 nools dsl parser: global: should parse a new instantiation ok 114 nools dsl parser: function: should parse a function statement ok 115 nools dsl parser: function: should throw an error when the function block is missing a name ok 116 nools dsl parser: function: should throw an error for invalid define blocks ok 117 nools dsl parser: rule: should parse rules ok 118 nools dsl parser: rule: should throw an error for invalid rule blocks ok 119 nools dsl parser: rule: should throw an error for a missing name ok 120 nools dsl parser: rule: should parse not conditions ok 121 nools dsl parser: rule: should parse or conditions ok 122 nools dsl parser: rule: should parse when clause with hash and constraints in any order ok 123 nools dsl parser: rule: should parse when clause with from ok 124 nools dsl parser: rule: should parse rules with a string name in double quotes ok 125 nools dsl parser: rule: should parse rules with a string name in single quotes ok 126 nools dsl parser: rule: should parse rules with a string name with inner strings ok 127 nools dsl parser: rule: salience/priority: should parse rules with a salience ok 128 nools dsl parser: rule: salience/priority: should parse rules with a priority ok 129 nools dsl parser: rule: salience/priority: should parse rules with a salience with a ; ok 130 nools dsl parser: rule: salience/priority: should parse rules with a priority with a ; ok 131 nools dsl parser: rule: salience/priority: should throw an error if the salience is not a number ok 132 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' ok 133 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agendaGroup' ok 134 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in '"' ok 135 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in "'" ok 136 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as true ok 137 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as false ok 138 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as true ok 139 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as false ok 140 nools dsl parser: rule: rules with auto-focus/autoFocus: should throw errors for values other than true or false ok 141 nools dsl parser: rule: should throw an error for invalid when clauses ok 142 nools dsl parser: rule: should throw an error for invalid then clauses ok 143 nools dsl parser: rule: should parse rules with exists clause ok 144 A Parser: should parse valid string expressions ok 145 A Parser: should parse regexps and not be greedy ok 146 A Parser: should parse valid string expressions with functions ok 147 A Parser: should parse valid string expressions with property access ok 148 A Parser: should parse valid string expressions with boolean operators ok 149 A Parser: should handle operator associativity properly ok 150 A Parser: should parse arrays ok 151 A Parser: should parse the in operator ok 152 A Parser: should parse the notIn operator ok 153 A Parser: should parse truthy statements ok 154 Rule: createRule: with strings: should create for string ok 155 Rule: createRule: with strings: should create for String ok 156 Rule: createRule: with strings: should create for number ok 157 Rule: createRule: with strings: should create for Number ok 158 Rule: createRule: with strings: should create for date ok 159 Rule: createRule: with strings: should create for Date ok 160 Rule: createRule: with strings: should create for array ok 161 Rule: createRule: with strings: should create for Array ok 162 Rule: createRule: with strings: should create for boolean ok 163 Rule: createRule: with strings: should create for Boolean ok 164 Rule: createRule: with strings: should create for regexp ok 165 Rule: createRule: with strings: should create for Regexp ok 166 Rule: createRule: with strings: should create for object ok 167 Rule: createRule: with strings: should create for Object ok 168 Rule: createRule: with strings: should create for hash ok 169 Rule: createRule: with strings: should create for Hash ok 170 Rule: createRule: with functions: should create for String function ok 171 Rule: createRule: with functions: should create for Number function ok 172 Rule: createRule: with functions: should create for Date function ok 173 Rule: createRule: with functions: should create for [] ok 174 Rule: createRule: with functions: should create for Array function ok 175 Rule: createRule: with functions: should create for Boolean function ok 176 Rule: createRule: with functions: should create for RegExp function ok 177 Rule: createRule: with functions: should create for Object function ok 178 Rule: createRule: with functions: should create for custom functions ok 179 Rule: createRule: should create a composite rule ok 180 Rule: createRule: should create a not pattern ok 181 Rule: createRule: should create a or pattern ok 182 Rule: createRule: should include reference store in constraints ok 183 Rule: createRule: should should include from constraints ok 184 Rule: createRule: should should include from constraints ok 185 Rule: createRule: should should include exists constraints # tests 185 # pass 185 # fail 0
1..185 ok 1 constraint matcher: match: should check equality ok 2 constraint matcher: match: should check inequality ok 3 constraint matcher: match: should check gt operator ok 4 constraint matcher: match: should check lt operator ok 5 constraint matcher: match: should check gte operator ok 6 constraint matcher: match: should check lte operator ok 7 constraint matcher: match: should check lte operator ok 8 constraint matcher: match: should check like operator ok 9 constraint matcher: match: should check notLike operator ok 10 constraint matcher: match: should check and operator ok 11 constraint matcher: match: should check or operator ok 12 constraint matcher: match: should check with member operator ok 13 constraint matcher: match: should check with in operator ok 14 constraint matcher: match: should check with notIn operator ok 15 constraint matcher: match: should allow properties with in ok 16 constraint matcher: match: should check with boolean associativity ok 17 constraint matcher: match: should check with nested properties ok 18 constraint matcher: match: should check with function ok 19 constraint matcher: match: should check with functions and identifier args ok 20 constraint matcher: match: should check with functions in a deep property chain and identifier args ok 21 constraint matcher: match: should check with functions in a deep property chain that returns an object and identifier args ok 22 constraint matcher: match: should have date helpers ok 23 constraint matcher: match: should create have type helpers ok 24 constraint matcher: match: should check truthy statements ok 25 constraint matcher: toConstraints: should create for expressions ok 26 constraint matcher: toConstraints: should create correct pattern depending on scope ok 27 constraint matcher: toJs: should create js equvalent expression ok 28 constraint matcher: getIdentifiers: should create the correct atoms for and expressions ok 29 constraint matcher: equals: should return true when equal ok 30 constraint matcher: equals: should return false when not equal ok 31 constraint matcher: .getIndexableProperties: should get properties with no functions ok 32 constraint matcher: .getIndexableProperties: should not get non indexable constraints ok 33 constraint matcher: .getIndexableProperties: should not get properties with functions ok 34 flowgetFacts: should get all facts in the session ok 35 flowgetFacts: should get all facts in the session by Type ok 36 agenda-groups: should only fire events in focused group ok 37 agenda-groups: should should treat focus like a stack ok 38 auto-focus: should activate agenda groups in proper order ok 39 async actions: should fire all rules ok 40 events: should emit when facts are asserted ok 41 events: should emit when facts are retracted ok 42 events: should emit when facts are modified ok 43 events: should emit when rules are fired ok 44 exists rule: fact assertion: should only activate once ok 45 exists rule: fact assertion: should not activate once if the fact does not exists ok 46 exists rule: fact retraction: should should handle fact retractions properly ok 47 exists rule: fact modification: should should handle fact modification properly ok 48 exists rule: with from modifier: assert: should should handle fact assertion properly ok 49 exists rule: with from modifier: retract: should should handle fact retraction properly ok 50 exists rule: with from modifier: modify: should should handle fact modification properly ok 51 from condition: with non array properties: should create the proper match contexts ok 52 from condition: with non array properties: should propagate modified facts properly ok 53 from condition: with non array properties: should retract facts properly ok 54 from condition: with js source: should create the proper match contexts ok 55 from condition: with js source: should propagate modified facts properly ok 56 from condition: with array properties: should create all cross product matches ok 57 from condition: with array properties: should retract all cross product matches ok 58 from condition: with not node: should only fullfill if all facts evaluate to false ok 59 from condition: with not node: should only fullfill if all facts evaluate to false ok 60 matchUntilHalt: should match until halt is called ok 61 not rule: with a single fact: should call when a string that does not equal 'hello' ok 62 not rule: with a single fact: should not call when a string that does equal 'hello' ok 63 not rule: with a single fact: should not call when a string that does equal 'hello' and one that does not ok 64 not rule: with multiple facts: should fire rules in order ok 65 not rule: modifying facts: should handle modifications ok 66 or rule: or rule with two conditions of the same type: should should match if one constraints matches ok 67 or rule: or rule with two conditions of the same type: should not call when a a constraint does not match ok 68 or rule: or rule with three conditions: should should match if one constraints matches ok 69 or rule: or rule with three conditions: should not call when none constraints match ok 70 or rule: or rule with different types: should should match if one constraints matches ok 71 or rule: or rule with different types: should not call when none constraints match ok 72 or rule: or with not conditions: should activate for each fact that does not exist ok 73 flowrule: should create a rule ok 74 flowrule: should create a rule with joins properly ok 75 flowrule: should create a rules that are dependent on eachother properly ok 76 salience: should activate in the proper order ok 77 scope option: should call when a string equals 'hello' ok 78 scope option: should call when a string equals 'world' ok 79 scope option: should not call when a string that does equal 'hello' or 'world ok 80 simple rule: should call hello world rule ok 81 Flow compiled: not rule: should call when a string that does not equal 'hello' ok 82 Flow compiled: not rule: should not call when a string that does equal 'hello' ok 83 Flow compiled: not rule: should not call when a string that does equal 'hello' and one that does not ok 84 Flow compiled: or rule: should call when a string equals 'hello' ok 85 Flow compiled: or rule: or rule with not conditions: should activate for each fact that does not exist ok 86 Flow compiled: scoped functions: should call the scoped function ok 87 Flow compiled: events: should emit when facts are asserted ok 88 Flow compiled: events: should emit when facts are retracted ok 89 Flow compiled: events: should emit when facts are modified ok 90 Flow compiled: events: should emit when rules are fired ok 91 Flow compiled: agenda-groups: should only fire events in focused group ok 92 Flow compiled: agenda-groups: should should treat focus like a stack ok 93 Flow compiled: auto-focus: should activate agenda groups in proper order ok 94 Flow compiled: fibonacci nools dsl: should calculate fibonacci 3 ok 95 Flow compiled: fibonacci nools dsl: should calculate fibonacci 4 ok 96 Flow compiled: fibonacci nools dsl: should calculate fibonacci 5 ok 97 Flow compiled: fibonacci nools dsl: should calculate fibonacci 6 ok 98 Flow compiled: diagnosis using dsl: should treat properly ok 99 Flow compiled: getFacts from action: should get all facts ok 100 Flow compiled: getFacts from action: should get facts by type ok 101 nools dsl parser: define: should parse a define statement ok 102 nools dsl parser: define: should throw an error when the define block is missing a name ok 103 nools dsl parser: define: should throw an error for invalid define blocks ok 104 nools dsl parser: define: should throw an error when the global statement is missing a name ok 105 nools dsl parser: define: should throw an error when the global statement is missing a ; ok 106 nools dsl parser: global: should parse a require call statement ok 107 nools dsl parser: global: should parse a require with a '.' character that is not a relative path ok 108 nools dsl parser: global: should resolve relative require paths ok 109 nools dsl parser: global: should parse a member look up ok 110 nools dsl parser: global: should parse a strings ok 111 nools dsl parser: global: should parse a boolean ok 112 nools dsl parser: global: should parse numbers ok 113 nools dsl parser: global: should parse a new instantiation ok 114 nools dsl parser: function: should parse a function statement ok 115 nools dsl parser: function: should throw an error when the function block is missing a name ok 116 nools dsl parser: function: should throw an error for invalid define blocks ok 117 nools dsl parser: rule: should parse rules ok 118 nools dsl parser: rule: should throw an error for invalid rule blocks ok 119 nools dsl parser: rule: should throw an error for a missing name ok 120 nools dsl parser: rule: should parse not conditions ok 121 nools dsl parser: rule: should parse or conditions ok 122 nools dsl parser: rule: should parse when clause with hash and constraints in any order ok 123 nools dsl parser: rule: should parse when clause with from ok 124 nools dsl parser: rule: should parse rules with a string name in double quotes ok 125 nools dsl parser: rule: should parse rules with a string name in single quotes ok 126 nools dsl parser: rule: should parse rules with a string name with inner strings ok 127 nools dsl parser: rule: salience/priority: should parse rules with a salience ok 128 nools dsl parser: rule: salience/priority: should parse rules with a priority ok 129 nools dsl parser: rule: salience/priority: should parse rules with a salience with a ; ok 130 nools dsl parser: rule: salience/priority: should parse rules with a priority with a ; ok 131 nools dsl parser: rule: salience/priority: should throw an error if the salience is not a number ok 132 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' ok 133 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agendaGroup' ok 134 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in '"' ok 135 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in "'" ok 136 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as true ok 137 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as false ok 138 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as true ok 139 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as false ok 140 nools dsl parser: rule: rules with auto-focus/autoFocus: should throw errors for values other than true or false ok 141 nools dsl parser: rule: should throw an error for invalid when clauses ok 142 nools dsl parser: rule: should throw an error for invalid then clauses ok 143 nools dsl parser: rule: should parse rules with exists clause ok 144 A Parser: should parse valid string expressions ok 145 A Parser: should parse regexps and not be greedy ok 146 A Parser: should parse valid string expressions with functions ok 147 A Parser: should parse valid string expressions with property access ok 148 A Parser: should parse valid string expressions with boolean operators ok 149 A Parser: should handle operator associativity properly ok 150 A Parser: should parse arrays ok 151 A Parser: should parse the in operator ok 152 A Parser: should parse the notIn operator ok 153 A Parser: should parse truthy statements ok 154 Rule: createRule: with strings: should create for string ok 155 Rule: createRule: with strings: should create for String ok 156 Rule: createRule: with strings: should create for number ok 157 Rule: createRule: with strings: should create for Number ok 158 Rule: createRule: with strings: should create for date ok 159 Rule: createRule: with strings: should create for Date ok 160 Rule: createRule: with strings: should create for array ok 161 Rule: createRule: with strings: should create for Array ok 162 Rule: createRule: with strings: should create for boolean ok 163 Rule: createRule: with strings: should create for Boolean ok 164 Rule: createRule: with strings: should create for regexp ok 165 Rule: createRule: with strings: should create for Regexp ok 166 Rule: createRule: with strings: should create for object ok 167 Rule: createRule: with strings: should create for Object ok 168 Rule: createRule: with strings: should create for hash ok 169 Rule: createRule: with strings: should create for Hash ok 170 Rule: createRule: with functions: should create for String function ok 171 Rule: createRule: with functions: should create for Number function ok 172 Rule: createRule: with functions: should create for Date function ok 173 Rule: createRule: with functions: should create for [] ok 174 Rule: createRule: with functions: should create for Array function ok 175 Rule: createRule: with functions: should create for Boolean function ok 176 Rule: createRule: with functions: should create for RegExp function ok 177 Rule: createRule: with functions: should create for Object function ok 178 Rule: createRule: with functions: should create for custom functions ok 179 Rule: createRule: should create a composite rule ok 180 Rule: createRule: should create a not pattern ok 181 Rule: createRule: should create a or pattern ok 182 Rule: createRule: should include reference store in constraints ok 183 Rule: createRule: should should include from constraints ok 184 Rule: createRule: should should include from constraints ok 185 Rule: createRule: should should include exists constraints # tests 185 # pass 185 # fail 0
1..185 ok 1 constraint matcher: match: should check equality ok 2 constraint matcher: match: should check inequality ok 3 constraint matcher: match: should check gt operator ok 4 constraint matcher: match: should check lt operator ok 5 constraint matcher: match: should check gte operator ok 6 constraint matcher: match: should check lte operator ok 7 constraint matcher: match: should check lte operator ok 8 constraint matcher: match: should check like operator ok 9 constraint matcher: match: should check notLike operator ok 10 constraint matcher: match: should check and operator ok 11 constraint matcher: match: should check or operator ok 12 constraint matcher: match: should check with member operator ok 13 constraint matcher: match: should check with in operator ok 14 constraint matcher: match: should check with notIn operator ok 15 constraint matcher: match: should allow properties with in ok 16 constraint matcher: match: should check with boolean associativity ok 17 constraint matcher: match: should check with nested properties ok 18 constraint matcher: match: should check with function ok 19 constraint matcher: match: should check with functions and identifier args ok 20 constraint matcher: match: should check with functions in a deep property chain and identifier args ok 21 constraint matcher: match: should check with functions in a deep property chain that returns an object and identifier args ok 22 constraint matcher: match: should have date helpers ok 23 constraint matcher: match: should create have type helpers ok 24 constraint matcher: match: should check truthy statements ok 25 constraint matcher: toConstraints: should create for expressions ok 26 constraint matcher: toConstraints: should create correct pattern depending on scope ok 27 constraint matcher: toJs: should create js equvalent expression ok 28 constraint matcher: getIdentifiers: should create the correct atoms for and expressions ok 29 constraint matcher: equals: should return true when equal ok 30 constraint matcher: equals: should return false when not equal ok 31 constraint matcher: .getIndexableProperties: should get properties with no functions ok 32 constraint matcher: .getIndexableProperties: should not get non indexable constraints ok 33 constraint matcher: .getIndexableProperties: should not get properties with functions ok 34 flowgetFacts: should get all facts in the session ok 35 flowgetFacts: should get all facts in the session by Type ok 36 agenda-groups: should only fire events in focused group ok 37 agenda-groups: should should treat focus like a stack ok 38 auto-focus: should activate agenda groups in proper order ok 39 async actions: should fire all rules ok 40 events: should emit when facts are asserted ok 41 events: should emit when facts are retracted ok 42 events: should emit when facts are modified ok 43 events: should emit when rules are fired ok 44 exists rule: fact assertion: should only activate once ok 45 exists rule: fact assertion: should not activate once if the fact does not exists ok 46 exists rule: fact retraction: should should handle fact retractions properly ok 47 exists rule: fact modification: should should handle fact modification properly ok 48 exists rule: with from modifier: assert: should should handle fact assertion properly ok 49 exists rule: with from modifier: retract: should should handle fact retraction properly ok 50 exists rule: with from modifier: modify: should should handle fact modification properly ok 51 from condition: with non array properties: should create the proper match contexts ok 52 from condition: with non array properties: should propagate modified facts properly ok 53 from condition: with non array properties: should retract facts properly ok 54 from condition: with js source: should create the proper match contexts ok 55 from condition: with js source: should propagate modified facts properly ok 56 from condition: with array properties: should create all cross product matches ok 57 from condition: with array properties: should retract all cross product matches ok 58 from condition: with not node: should only fullfill if all facts evaluate to false ok 59 from condition: with not node: should only fullfill if all facts evaluate to false ok 60 matchUntilHalt: should match until halt is called ok 61 not rule: with a single fact: should call when a string that does not equal 'hello' ok 62 not rule: with a single fact: should not call when a string that does equal 'hello' ok 63 not rule: with a single fact: should not call when a string that does equal 'hello' and one that does not ok 64 not rule: with multiple facts: should fire rules in order ok 65 not rule: modifying facts: should handle modifications ok 66 or rule: or rule with two conditions of the same type: should should match if one constraints matches ok 67 or rule: or rule with two conditions of the same type: should not call when a a constraint does not match ok 68 or rule: or rule with three conditions: should should match if one constraints matches ok 69 or rule: or rule with three conditions: should not call when none constraints match ok 70 or rule: or rule with different types: should should match if one constraints matches ok 71 or rule: or rule with different types: should not call when none constraints match ok 72 or rule: or with not conditions: should activate for each fact that does not exist ok 73 flowrule: should create a rule ok 74 flowrule: should create a rule with joins properly ok 75 flowrule: should create a rules that are dependent on eachother properly ok 76 salience: should activate in the proper order ok 77 scope option: should call when a string equals 'hello' ok 78 scope option: should call when a string equals 'world' ok 79 scope option: should not call when a string that does equal 'hello' or 'world ok 80 simple rule: should call hello world rule ok 81 Flow compiled: not rule: should call when a string that does not equal 'hello' ok 82 Flow compiled: not rule: should not call when a string that does equal 'hello' ok 83 Flow compiled: not rule: should not call when a string that does equal 'hello' and one that does not ok 84 Flow compiled: or rule: should call when a string equals 'hello' ok 85 Flow compiled: or rule: or rule with not conditions: should activate for each fact that does not exist ok 86 Flow compiled: scoped functions: should call the scoped function ok 87 Flow compiled: events: should emit when facts are asserted ok 88 Flow compiled: events: should emit when facts are retracted ok 89 Flow compiled: events: should emit when facts are modified ok 90 Flow compiled: events: should emit when rules are fired ok 91 Flow compiled: agenda-groups: should only fire events in focused group ok 92 Flow compiled: agenda-groups: should should treat focus like a stack ok 93 Flow compiled: auto-focus: should activate agenda groups in proper order ok 94 Flow compiled: fibonacci nools dsl: should calculate fibonacci 3 ok 95 Flow compiled: fibonacci nools dsl: should calculate fibonacci 4 ok 96 Flow compiled: fibonacci nools dsl: should calculate fibonacci 5 ok 97 Flow compiled: fibonacci nools dsl: should calculate fibonacci 6 ok 98 Flow compiled: diagnosis using dsl: should treat properly ok 99 Flow compiled: getFacts from action: should get all facts ok 100 Flow compiled: getFacts from action: should get facts by type ok 101 nools dsl parser: define: should parse a define statement ok 102 nools dsl parser: define: should throw an error when the define block is missing a name ok 103 nools dsl parser: define: should throw an error for invalid define blocks ok 104 nools dsl parser: define: should throw an error when the global statement is missing a name ok 105 nools dsl parser: define: should throw an error when the global statement is missing a ; ok 106 nools dsl parser: global: should parse a require call statement ok 107 nools dsl parser: global: should parse a require with a '.' character that is not a relative path ok 108 nools dsl parser: global: should resolve relative require paths ok 109 nools dsl parser: global: should parse a member look up ok 110 nools dsl parser: global: should parse a strings ok 111 nools dsl parser: global: should parse a boolean ok 112 nools dsl parser: global: should parse numbers ok 113 nools dsl parser: global: should parse a new instantiation ok 114 nools dsl parser: function: should parse a function statement ok 115 nools dsl parser: function: should throw an error when the function block is missing a name ok 116 nools dsl parser: function: should throw an error for invalid define blocks ok 117 nools dsl parser: rule: should parse rules ok 118 nools dsl parser: rule: should throw an error for invalid rule blocks ok 119 nools dsl parser: rule: should throw an error for a missing name ok 120 nools dsl parser: rule: should parse not conditions ok 121 nools dsl parser: rule: should parse or conditions ok 122 nools dsl parser: rule: should parse when clause with hash and constraints in any order ok 123 nools dsl parser: rule: should parse when clause with from ok 124 nools dsl parser: rule: should parse rules with a string name in double quotes ok 125 nools dsl parser: rule: should parse rules with a string name in single quotes ok 126 nools dsl parser: rule: should parse rules with a string name with inner strings ok 127 nools dsl parser: rule: salience/priority: should parse rules with a salience ok 128 nools dsl parser: rule: salience/priority: should parse rules with a priority ok 129 nools dsl parser: rule: salience/priority: should parse rules with a salience with a ; ok 130 nools dsl parser: rule: salience/priority: should parse rules with a priority with a ; ok 131 nools dsl parser: rule: salience/priority: should throw an error if the salience is not a number ok 132 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' ok 133 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agendaGroup' ok 134 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in '"' ok 135 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in "'" ok 136 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as true ok 137 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as false ok 138 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as true ok 139 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as false ok 140 nools dsl parser: rule: rules with auto-focus/autoFocus: should throw errors for values other than true or false ok 141 nools dsl parser: rule: should throw an error for invalid when clauses ok 142 nools dsl parser: rule: should throw an error for invalid then clauses ok 143 nools dsl parser: rule: should parse rules with exists clause ok 144 A Parser: should parse valid string expressions ok 145 A Parser: should parse regexps and not be greedy ok 146 A Parser: should parse valid string expressions with functions ok 147 A Parser: should parse valid string expressions with property access ok 148 A Parser: should parse valid string expressions with boolean operators ok 149 A Parser: should handle operator associativity properly ok 150 A Parser: should parse arrays ok 151 A Parser: should parse the in operator ok 152 A Parser: should parse the notIn operator ok 153 A Parser: should parse truthy statements ok 154 Rule: createRule: with strings: should create for string ok 155 Rule: createRule: with strings: should create for String ok 156 Rule: createRule: with strings: should create for number ok 157 Rule: createRule: with strings: should create for Number ok 158 Rule: createRule: with strings: should create for date ok 159 Rule: createRule: with strings: should create for Date ok 160 Rule: createRule: with strings: should create for array ok 161 Rule: createRule: with strings: should create for Array ok 162 Rule: createRule: with strings: should create for boolean ok 163 Rule: createRule: with strings: should create for Boolean ok 164 Rule: createRule: with strings: should create for regexp ok 165 Rule: createRule: with strings: should create for Regexp ok 166 Rule: createRule: with strings: should create for object ok 167 Rule: createRule: with strings: should create for Object ok 168 Rule: createRule: with strings: should create for hash ok 169 Rule: createRule: with strings: should create for Hash ok 170 Rule: createRule: with functions: should create for String function ok 171 Rule: createRule: with functions: should create for Number function ok 172 Rule: createRule: with functions: should create for Date function ok 173 Rule: createRule: with functions: should create for [] ok 174 Rule: createRule: with functions: should create for Array function ok 175 Rule: createRule: with functions: should create for Boolean function ok 176 Rule: createRule: with functions: should create for RegExp function ok 177 Rule: createRule: with functions: should create for Object function ok 178 Rule: createRule: with functions: should create for custom functions ok 179 Rule: createRule: should create a composite rule ok 180 Rule: createRule: should create a not pattern ok 181 Rule: createRule: should create a or pattern ok 182 Rule: createRule: should include reference store in constraints ok 183 Rule: createRule: should should include from constraints ok 184 Rule: createRule: should should include from constraints ok 185 Rule: createRule: should should include exists constraints # tests 185 # pass 185 # fail 0
1..185 ok 1 constraint matcher: match: should check equality ok 2 constraint matcher: match: should check inequality ok 3 constraint matcher: match: should check gt operator ok 4 constraint matcher: match: should check lt operator ok 5 constraint matcher: match: should check gte operator ok 6 constraint matcher: match: should check lte operator ok 7 constraint matcher: match: should check lte operator ok 8 constraint matcher: match: should check like operator ok 9 constraint matcher: match: should check notLike operator ok 10 constraint matcher: match: should check and operator ok 11 constraint matcher: match: should check or operator ok 12 constraint matcher: match: should check with member operator ok 13 constraint matcher: match: should check with in operator ok 14 constraint matcher: match: should check with notIn operator ok 15 constraint matcher: match: should allow properties with in ok 16 constraint matcher: match: should check with boolean associativity ok 17 constraint matcher: match: should check with nested properties ok 18 constraint matcher: match: should check with function ok 19 constraint matcher: match: should check with functions and identifier args ok 20 constraint matcher: match: should check with functions in a deep property chain and identifier args ok 21 constraint matcher: match: should check with functions in a deep property chain that returns an object and identifier args ok 22 constraint matcher: match: should have date helpers ok 23 constraint matcher: match: should create have type helpers ok 24 constraint matcher: match: should check truthy statements ok 25 constraint matcher: toConstraints: should create for expressions ok 26 constraint matcher: toConstraints: should create correct pattern depending on scope ok 27 constraint matcher: toJs: should create js equvalent expression ok 28 constraint matcher: getIdentifiers: should create the correct atoms for and expressions ok 29 constraint matcher: equals: should return true when equal ok 30 constraint matcher: equals: should return false when not equal ok 31 constraint matcher: .getIndexableProperties: should get properties with no functions ok 32 constraint matcher: .getIndexableProperties: should not get non indexable constraints ok 33 constraint matcher: .getIndexableProperties: should not get properties with functions ok 34 flowgetFacts: should get all facts in the session ok 35 flowgetFacts: should get all facts in the session by Type ok 36 agenda-groups: should only fire events in focused group ok 37 agenda-groups: should should treat focus like a stack ok 38 auto-focus: should activate agenda groups in proper order ok 39 async actions: should fire all rules ok 40 events: should emit when facts are asserted ok 41 events: should emit when facts are retracted ok 42 events: should emit when facts are modified ok 43 events: should emit when rules are fired ok 44 exists rule: fact assertion: should only activate once ok 45 exists rule: fact assertion: should not activate once if the fact does not exists ok 46 exists rule: fact retraction: should should handle fact retractions properly ok 47 exists rule: fact modification: should should handle fact modification properly ok 48 exists rule: with from modifier: assert: should should handle fact assertion properly ok 49 exists rule: with from modifier: retract: should should handle fact retraction properly ok 50 exists rule: with from modifier: modify: should should handle fact modification properly ok 51 from condition: with non array properties: should create the proper match contexts ok 52 from condition: with non array properties: should propagate modified facts properly ok 53 from condition: with non array properties: should retract facts properly ok 54 from condition: with js source: should create the proper match contexts ok 55 from condition: with js source: should propagate modified facts properly ok 56 from condition: with array properties: should create all cross product matches ok 57 from condition: with array properties: should retract all cross product matches ok 58 from condition: with not node: should only fullfill if all facts evaluate to false ok 59 from condition: with not node: should only fullfill if all facts evaluate to false ok 60 matchUntilHalt: should match until halt is called ok 61 not rule: with a single fact: should call when a string that does not equal 'hello' ok 62 not rule: with a single fact: should not call when a string that does equal 'hello' ok 63 not rule: with a single fact: should not call when a string that does equal 'hello' and one that does not ok 64 not rule: with multiple facts: should fire rules in order ok 65 not rule: modifying facts: should handle modifications ok 66 or rule: or rule with two conditions of the same type: should should match if one constraints matches ok 67 or rule: or rule with two conditions of the same type: should not call when a a constraint does not match ok 68 or rule: or rule with three conditions: should should match if one constraints matches ok 69 or rule: or rule with three conditions: should not call when none constraints match ok 70 or rule: or rule with different types: should should match if one constraints matches ok 71 or rule: or rule with different types: should not call when none constraints match ok 72 or rule: or with not conditions: should activate for each fact that does not exist ok 73 flowrule: should create a rule ok 74 flowrule: should create a rule with joins properly ok 75 flowrule: should create a rules that are dependent on eachother properly ok 76 salience: should activate in the proper order ok 77 scope option: should call when a string equals 'hello' ok 78 scope option: should call when a string equals 'world' ok 79 scope option: should not call when a string that does equal 'hello' or 'world ok 80 simple rule: should call hello world rule ok 81 Flow compiled: not rule: should call when a string that does not equal 'hello' ok 82 Flow compiled: not rule: should not call when a string that does equal 'hello' ok 83 Flow compiled: not rule: should not call when a string that does equal 'hello' and one that does not ok 84 Flow compiled: or rule: should call when a string equals 'hello' ok 85 Flow compiled: or rule: or rule with not conditions: should activate for each fact that does not exist ok 86 Flow compiled: scoped functions: should call the scoped function ok 87 Flow compiled: events: should emit when facts are asserted ok 88 Flow compiled: events: should emit when facts are retracted ok 89 Flow compiled: events: should emit when facts are modified ok 90 Flow compiled: events: should emit when rules are fired ok 91 Flow compiled: agenda-groups: should only fire events in focused group ok 92 Flow compiled: agenda-groups: should should treat focus like a stack ok 93 Flow compiled: auto-focus: should activate agenda groups in proper order ok 94 Flow compiled: fibonacci nools dsl: should calculate fibonacci 3 ok 95 Flow compiled: fibonacci nools dsl: should calculate fibonacci 4 ok 96 Flow compiled: fibonacci nools dsl: should calculate fibonacci 5 ok 97 Flow compiled: fibonacci nools dsl: should calculate fibonacci 6 ok 98 Flow compiled: diagnosis using dsl: should treat properly ok 99 Flow compiled: getFacts from action: should get all facts ok 100 Flow compiled: getFacts from action: should get facts by type ok 101 nools dsl parser: define: should parse a define statement ok 102 nools dsl parser: define: should throw an error when the define block is missing a name ok 103 nools dsl parser: define: should throw an error for invalid define blocks ok 104 nools dsl parser: define: should throw an error when the global statement is missing a name ok 105 nools dsl parser: define: should throw an error when the global statement is missing a ; ok 106 nools dsl parser: global: should parse a require call statement ok 107 nools dsl parser: global: should parse a require with a '.' character that is not a relative path ok 108 nools dsl parser: global: should resolve relative require paths ok 109 nools dsl parser: global: should parse a member look up ok 110 nools dsl parser: global: should parse a strings ok 111 nools dsl parser: global: should parse a boolean ok 112 nools dsl parser: global: should parse numbers ok 113 nools dsl parser: global: should parse a new instantiation ok 114 nools dsl parser: function: should parse a function statement ok 115 nools dsl parser: function: should throw an error when the function block is missing a name ok 116 nools dsl parser: function: should throw an error for invalid define blocks ok 117 nools dsl parser: rule: should parse rules ok 118 nools dsl parser: rule: should throw an error for invalid rule blocks ok 119 nools dsl parser: rule: should throw an error for a missing name ok 120 nools dsl parser: rule: should parse not conditions ok 121 nools dsl parser: rule: should parse or conditions ok 122 nools dsl parser: rule: should parse when clause with hash and constraints in any order ok 123 nools dsl parser: rule: should parse when clause with from ok 124 nools dsl parser: rule: should parse rules with a string name in double quotes ok 125 nools dsl parser: rule: should parse rules with a string name in single quotes ok 126 nools dsl parser: rule: should parse rules with a string name with inner strings ok 127 nools dsl parser: rule: salience/priority: should parse rules with a salience ok 128 nools dsl parser: rule: salience/priority: should parse rules with a priority ok 129 nools dsl parser: rule: salience/priority: should parse rules with a salience with a ; ok 130 nools dsl parser: rule: salience/priority: should parse rules with a priority with a ; ok 131 nools dsl parser: rule: salience/priority: should throw an error if the salience is not a number ok 132 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' ok 133 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agendaGroup' ok 134 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in '"' ok 135 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in "'" ok 136 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as true ok 137 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as false ok 138 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as true ok 139 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as false ok 140 nools dsl parser: rule: rules with auto-focus/autoFocus: should throw errors for values other than true or false ok 141 nools dsl parser: rule: should throw an error for invalid when clauses ok 142 nools dsl parser: rule: should throw an error for invalid then clauses ok 143 nools dsl parser: rule: should parse rules with exists clause ok 144 A Parser: should parse valid string expressions ok 145 A Parser: should parse regexps and not be greedy ok 146 A Parser: should parse valid string expressions with functions ok 147 A Parser: should parse valid string expressions with property access ok 148 A Parser: should parse valid string expressions with boolean operators ok 149 A Parser: should handle operator associativity properly ok 150 A Parser: should parse arrays ok 151 A Parser: should parse the in operator ok 152 A Parser: should parse the notIn operator ok 153 A Parser: should parse truthy statements ok 154 Rule: createRule: with strings: should create for string ok 155 Rule: createRule: with strings: should create for String ok 156 Rule: createRule: with strings: should create for number ok 157 Rule: createRule: with strings: should create for Number ok 158 Rule: createRule: with strings: should create for date ok 159 Rule: createRule: with strings: should create for Date ok 160 Rule: createRule: with strings: should create for array ok 161 Rule: createRule: with strings: should create for Array ok 162 Rule: createRule: with strings: should create for boolean ok 163 Rule: createRule: with strings: should create for Boolean ok 164 Rule: createRule: with strings: should create for regexp ok 165 Rule: createRule: with strings: should create for Regexp ok 166 Rule: createRule: with strings: should create for object ok 167 Rule: createRule: with strings: should create for Object ok 168 Rule: createRule: with strings: should create for hash ok 169 Rule: createRule: with strings: should create for Hash ok 170 Rule: createRule: with functions: should create for String function ok 171 Rule: createRule: with functions: should create for Number function ok 172 Rule: createRule: with functions: should create for Date function ok 173 Rule: createRule: with functions: should create for [] ok 174 Rule: createRule: with functions: should create for Array function ok 175 Rule: createRule: with functions: should create for Boolean function ok 176 Rule: createRule: with functions: should create for RegExp function ok 177 Rule: createRule: with functions: should create for Object function ok 178 Rule: createRule: with functions: should create for custom functions ok 179 Rule: createRule: should create a composite rule ok 180 Rule: createRule: should create a not pattern ok 181 Rule: createRule: should create a or pattern ok 182 Rule: createRule: should include reference store in constraints ok 183 Rule: createRule: should should include from constraints ok 184 Rule: createRule: should should include from constraints ok 185 Rule: createRule: should should include exists constraints # tests 185 # pass 185 # fail 0
1..185 ok 1 constraint matcher: match: should check equality ok 2 constraint matcher: match: should check inequality ok 3 constraint matcher: match: should check gt operator ok 4 constraint matcher: match: should check lt operator ok 5 constraint matcher: match: should check gte operator ok 6 constraint matcher: match: should check lte operator ok 7 constraint matcher: match: should check lte operator ok 8 constraint matcher: match: should check like operator ok 9 constraint matcher: match: should check notLike operator ok 10 constraint matcher: match: should check and operator ok 11 constraint matcher: match: should check or operator ok 12 constraint matcher: match: should check with member operator ok 13 constraint matcher: match: should check with in operator ok 14 constraint matcher: match: should check with notIn operator ok 15 constraint matcher: match: should allow properties with in ok 16 constraint matcher: match: should check with boolean associativity ok 17 constraint matcher: match: should check with nested properties ok 18 constraint matcher: match: should check with function ok 19 constraint matcher: match: should check with functions and identifier args ok 20 constraint matcher: match: should check with functions in a deep property chain and identifier args ok 21 constraint matcher: match: should check with functions in a deep property chain that returns an object and identifier args ok 22 constraint matcher: match: should have date helpers ok 23 constraint matcher: match: should create have type helpers ok 24 constraint matcher: match: should check truthy statements ok 25 constraint matcher: toConstraints: should create for expressions ok 26 constraint matcher: toConstraints: should create correct pattern depending on scope ok 27 constraint matcher: toJs: should create js equvalent expression ok 28 constraint matcher: getIdentifiers: should create the correct atoms for and expressions ok 29 constraint matcher: equals: should return true when equal ok 30 constraint matcher: equals: should return false when not equal ok 31 constraint matcher: .getIndexableProperties: should get properties with no functions ok 32 constraint matcher: .getIndexableProperties: should not get non indexable constraints ok 33 constraint matcher: .getIndexableProperties: should not get properties with functions ok 34 flowgetFacts: should get all facts in the session ok 35 flowgetFacts: should get all facts in the session by Type ok 36 agenda-groups: should only fire events in focused group ok 37 agenda-groups: should should treat focus like a stack ok 38 auto-focus: should activate agenda groups in proper order ok 39 async actions: should fire all rules ok 40 events: should emit when facts are asserted ok 41 events: should emit when facts are retracted ok 42 events: should emit when facts are modified ok 43 events: should emit when rules are fired ok 44 exists rule: fact assertion: should only activate once ok 45 exists rule: fact assertion: should not activate once if the fact does not exists ok 46 exists rule: fact retraction: should should handle fact retractions properly ok 47 exists rule: fact modification: should should handle fact modification properly ok 48 exists rule: with from modifier: assert: should should handle fact assertion properly ok 49 exists rule: with from modifier: retract: should should handle fact retraction properly ok 50 exists rule: with from modifier: modify: should should handle fact modification properly ok 51 from condition: with non array properties: should create the proper match contexts ok 52 from condition: with non array properties: should propagate modified facts properly ok 53 from condition: with non array properties: should retract facts properly ok 54 from condition: with js source: should create the proper match contexts ok 55 from condition: with js source: should propagate modified facts properly ok 56 from condition: with array properties: should create all cross product matches ok 57 from condition: with array properties: should retract all cross product matches ok 58 from condition: with not node: should only fullfill if all facts evaluate to false ok 59 from condition: with not node: should only fullfill if all facts evaluate to false ok 60 matchUntilHalt: should match until halt is called ok 61 not rule: with a single fact: should call when a string that does not equal 'hello' ok 62 not rule: with a single fact: should not call when a string that does equal 'hello' ok 63 not rule: with a single fact: should not call when a string that does equal 'hello' and one that does not ok 64 not rule: with multiple facts: should fire rules in order ok 65 not rule: modifying facts: should handle modifications ok 66 or rule: or rule with two conditions of the same type: should should match if one constraints matches ok 67 or rule: or rule with two conditions of the same type: should not call when a a constraint does not match ok 68 or rule: or rule with three conditions: should should match if one constraints matches ok 69 or rule: or rule with three conditions: should not call when none constraints match ok 70 or rule: or rule with different types: should should match if one constraints matches ok 71 or rule: or rule with different types: should not call when none constraints match ok 72 or rule: or with not conditions: should activate for each fact that does not exist ok 73 flowrule: should create a rule ok 74 flowrule: should create a rule with joins properly ok 75 flowrule: should create a rules that are dependent on eachother properly ok 76 salience: should activate in the proper order ok 77 scope option: should call when a string equals 'hello' ok 78 scope option: should call when a string equals 'world' ok 79 scope option: should not call when a string that does equal 'hello' or 'world ok 80 simple rule: should call hello world rule ok 81 Flow compiled: not rule: should call when a string that does not equal 'hello' ok 82 Flow compiled: not rule: should not call when a string that does equal 'hello' ok 83 Flow compiled: not rule: should not call when a string that does equal 'hello' and one that does not ok 84 Flow compiled: or rule: should call when a string equals 'hello' ok 85 Flow compiled: or rule: or rule with not conditions: should activate for each fact that does not exist ok 86 Flow compiled: scoped functions: should call the scoped function ok 87 Flow compiled: events: should emit when facts are asserted ok 88 Flow compiled: events: should emit when facts are retracted ok 89 Flow compiled: events: should emit when facts are modified ok 90 Flow compiled: events: should emit when rules are fired ok 91 Flow compiled: agenda-groups: should only fire events in focused group ok 92 Flow compiled: agenda-groups: should should treat focus like a stack ok 93 Flow compiled: auto-focus: should activate agenda groups in proper order ok 94 Flow compiled: fibonacci nools dsl: should calculate fibonacci 3 ok 95 Flow compiled: fibonacci nools dsl: should calculate fibonacci 4 ok 96 Flow compiled: fibonacci nools dsl: should calculate fibonacci 5 ok 97 Flow compiled: fibonacci nools dsl: should calculate fibonacci 6 ok 98 Flow compiled: diagnosis using dsl: should treat properly ok 99 Flow compiled: getFacts from action: should get all facts ok 100 Flow compiled: getFacts from action: should get facts by type ok 101 nools dsl parser: define: should parse a define statement ok 102 nools dsl parser: define: should throw an error when the define block is missing a name ok 103 nools dsl parser: define: should throw an error for invalid define blocks ok 104 nools dsl parser: define: should throw an error when the global statement is missing a name ok 105 nools dsl parser: define: should throw an error when the global statement is missing a ; ok 106 nools dsl parser: global: should parse a require call statement ok 107 nools dsl parser: global: should parse a require with a '.' character that is not a relative path ok 108 nools dsl parser: global: should resolve relative require paths ok 109 nools dsl parser: global: should parse a member look up ok 110 nools dsl parser: global: should parse a strings ok 111 nools dsl parser: global: should parse a boolean ok 112 nools dsl parser: global: should parse numbers ok 113 nools dsl parser: global: should parse a new instantiation ok 114 nools dsl parser: function: should parse a function statement ok 115 nools dsl parser: function: should throw an error when the function block is missing a name ok 116 nools dsl parser: function: should throw an error for invalid define blocks ok 117 nools dsl parser: rule: should parse rules ok 118 nools dsl parser: rule: should throw an error for invalid rule blocks ok 119 nools dsl parser: rule: should throw an error for a missing name ok 120 nools dsl parser: rule: should parse not conditions ok 121 nools dsl parser: rule: should parse or conditions ok 122 nools dsl parser: rule: should parse when clause with hash and constraints in any order ok 123 nools dsl parser: rule: should parse when clause with from ok 124 nools dsl parser: rule: should parse rules with a string name in double quotes ok 125 nools dsl parser: rule: should parse rules with a string name in single quotes ok 126 nools dsl parser: rule: should parse rules with a string name with inner strings ok 127 nools dsl parser: rule: salience/priority: should parse rules with a salience ok 128 nools dsl parser: rule: salience/priority: should parse rules with a priority ok 129 nools dsl parser: rule: salience/priority: should parse rules with a salience with a ; ok 130 nools dsl parser: rule: salience/priority: should parse rules with a priority with a ; ok 131 nools dsl parser: rule: salience/priority: should throw an error if the salience is not a number ok 132 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' ok 133 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agendaGroup' ok 134 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in '"' ok 135 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in "'" ok 136 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as true ok 137 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as false ok 138 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as true ok 139 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as false ok 140 nools dsl parser: rule: rules with auto-focus/autoFocus: should throw errors for values other than true or false ok 141 nools dsl parser: rule: should throw an error for invalid when clauses ok 142 nools dsl parser: rule: should throw an error for invalid then clauses ok 143 nools dsl parser: rule: should parse rules with exists clause ok 144 A Parser: should parse valid string expressions ok 145 A Parser: should parse regexps and not be greedy ok 146 A Parser: should parse valid string expressions with functions ok 147 A Parser: should parse valid string expressions with property access ok 148 A Parser: should parse valid string expressions with boolean operators ok 149 A Parser: should handle operator associativity properly ok 150 A Parser: should parse arrays ok 151 A Parser: should parse the in operator ok 152 A Parser: should parse the notIn operator ok 153 A Parser: should parse truthy statements ok 154 Rule: createRule: with strings: should create for string ok 155 Rule: createRule: with strings: should create for String ok 156 Rule: createRule: with strings: should create for number ok 157 Rule: createRule: with strings: should create for Number ok 158 Rule: createRule: with strings: should create for date ok 159 Rule: createRule: with strings: should create for Date ok 160 Rule: createRule: with strings: should create for array ok 161 Rule: createRule: with strings: should create for Array ok 162 Rule: createRule: with strings: should create for boolean ok 163 Rule: createRule: with strings: should create for Boolean ok 164 Rule: createRule: with strings: should create for regexp ok 165 Rule: createRule: with strings: should create for Regexp ok 166 Rule: createRule: with strings: should create for object ok 167 Rule: createRule: with strings: should create for Object ok 168 Rule: createRule: with strings: should create for hash ok 169 Rule: createRule: with strings: should create for Hash ok 170 Rule: createRule: with functions: should create for String function ok 171 Rule: createRule: with functions: should create for Number function ok 172 Rule: createRule: with functions: should create for Date function ok 173 Rule: createRule: with functions: should create for [] ok 174 Rule: createRule: with functions: should create for Array function ok 175 Rule: createRule: with functions: should create for Boolean function ok 176 Rule: createRule: with functions: should create for RegExp function ok 177 Rule: createRule: with functions: should create for Object function ok 178 Rule: createRule: with functions: should create for custom functions ok 179 Rule: createRule: should create a composite rule ok 180 Rule: createRule: should create a not pattern ok 181 Rule: createRule: should create a or pattern ok 182 Rule: createRule: should include reference store in constraints ok 183 Rule: createRule: should should include from constraints ok 184 Rule: createRule: should should include from constraints ok 185 Rule: createRule: should should include exists constraints # tests 185 # pass 185 # fail 0
1..185 ok 1 constraint matcher: match: should check equality ok 2 constraint matcher: match: should check inequality ok 3 constraint matcher: match: should check gt operator ok 4 constraint matcher: match: should check lt operator ok 5 constraint matcher: match: should check gte operator ok 6 constraint matcher: match: should check lte operator ok 7 constraint matcher: match: should check lte operator ok 8 constraint matcher: match: should check like operator ok 9 constraint matcher: match: should check notLike operator ok 10 constraint matcher: match: should check and operator ok 11 constraint matcher: match: should check or operator ok 12 constraint matcher: match: should check with member operator ok 13 constraint matcher: match: should check with in operator ok 14 constraint matcher: match: should check with notIn operator ok 15 constraint matcher: match: should allow properties with in ok 16 constraint matcher: match: should check with boolean associativity ok 17 constraint matcher: match: should check with nested properties ok 18 constraint matcher: match: should check with function ok 19 constraint matcher: match: should check with functions and identifier args ok 20 constraint matcher: match: should check with functions in a deep property chain and identifier args ok 21 constraint matcher: match: should check with functions in a deep property chain that returns an object and identifier args ok 22 constraint matcher: match: should have date helpers ok 23 constraint matcher: match: should create have type helpers ok 24 constraint matcher: match: should check truthy statements ok 25 constraint matcher: toConstraints: should create for expressions ok 26 constraint matcher: toConstraints: should create correct pattern depending on scope ok 27 constraint matcher: toJs: should create js equvalent expression ok 28 constraint matcher: getIdentifiers: should create the correct atoms for and expressions ok 29 constraint matcher: equals: should return true when equal ok 30 constraint matcher: equals: should return false when not equal ok 31 constraint matcher: .getIndexableProperties: should get properties with no functions ok 32 constraint matcher: .getIndexableProperties: should not get non indexable constraints ok 33 constraint matcher: .getIndexableProperties: should not get properties with functions ok 34 flowgetFacts: should get all facts in the session ok 35 flowgetFacts: should get all facts in the session by Type ok 36 agenda-groups: should only fire events in focused group ok 37 agenda-groups: should should treat focus like a stack ok 38 auto-focus: should activate agenda groups in proper order ok 39 async actions: should fire all rules ok 40 events: should emit when facts are asserted ok 41 events: should emit when facts are retracted ok 42 events: should emit when facts are modified ok 43 events: should emit when rules are fired ok 44 exists rule: fact assertion: should only activate once ok 45 exists rule: fact assertion: should not activate once if the fact does not exists ok 46 exists rule: fact retraction: should should handle fact retractions properly ok 47 exists rule: fact modification: should should handle fact modification properly ok 48 exists rule: with from modifier: assert: should should handle fact assertion properly ok 49 exists rule: with from modifier: retract: should should handle fact retraction properly ok 50 exists rule: with from modifier: modify: should should handle fact modification properly ok 51 from condition: with non array properties: should create the proper match contexts ok 52 from condition: with non array properties: should propagate modified facts properly ok 53 from condition: with non array properties: should retract facts properly ok 54 from condition: with js source: should create the proper match contexts ok 55 from condition: with js source: should propagate modified facts properly ok 56 from condition: with array properties: should create all cross product matches ok 57 from condition: with array properties: should retract all cross product matches ok 58 from condition: with not node: should only fullfill if all facts evaluate to false ok 59 from condition: with not node: should only fullfill if all facts evaluate to false ok 60 matchUntilHalt: should match until halt is called ok 61 not rule: with a single fact: should call when a string that does not equal 'hello' ok 62 not rule: with a single fact: should not call when a string that does equal 'hello' ok 63 not rule: with a single fact: should not call when a string that does equal 'hello' and one that does not ok 64 not rule: with multiple facts: should fire rules in order ok 65 not rule: modifying facts: should handle modifications ok 66 or rule: or rule with two conditions of the same type: should should match if one constraints matches ok 67 or rule: or rule with two conditions of the same type: should not call when a a constraint does not match ok 68 or rule: or rule with three conditions: should should match if one constraints matches ok 69 or rule: or rule with three conditions: should not call when none constraints match ok 70 or rule: or rule with different types: should should match if one constraints matches ok 71 or rule: or rule with different types: should not call when none constraints match ok 72 or rule: or with not conditions: should activate for each fact that does not exist ok 73 flowrule: should create a rule ok 74 flowrule: should create a rule with joins properly ok 75 flowrule: should create a rules that are dependent on eachother properly ok 76 salience: should activate in the proper order ok 77 scope option: should call when a string equals 'hello' ok 78 scope option: should call when a string equals 'world' ok 79 scope option: should not call when a string that does equal 'hello' or 'world ok 80 simple rule: should call hello world rule ok 81 Flow compiled: not rule: should call when a string that does not equal 'hello' ok 82 Flow compiled: not rule: should not call when a string that does equal 'hello' ok 83 Flow compiled: not rule: should not call when a string that does equal 'hello' and one that does not ok 84 Flow compiled: or rule: should call when a string equals 'hello' ok 85 Flow compiled: or rule: or rule with not conditions: should activate for each fact that does not exist ok 86 Flow compiled: scoped functions: should call the scoped function ok 87 Flow compiled: events: should emit when facts are asserted ok 88 Flow compiled: events: should emit when facts are retracted ok 89 Flow compiled: events: should emit when facts are modified ok 90 Flow compiled: events: should emit when rules are fired ok 91 Flow compiled: agenda-groups: should only fire events in focused group ok 92 Flow compiled: agenda-groups: should should treat focus like a stack ok 93 Flow compiled: auto-focus: should activate agenda groups in proper order ok 94 Flow compiled: fibonacci nools dsl: should calculate fibonacci 3 ok 95 Flow compiled: fibonacci nools dsl: should calculate fibonacci 4 ok 96 Flow compiled: fibonacci nools dsl: should calculate fibonacci 5 ok 97 Flow compiled: fibonacci nools dsl: should calculate fibonacci 6 ok 98 Flow compiled: diagnosis using dsl: should treat properly ok 99 Flow compiled: getFacts from action: should get all facts ok 100 Flow compiled: getFacts from action: should get facts by type ok 101 nools dsl parser: define: should parse a define statement ok 102 nools dsl parser: define: should throw an error when the define block is missing a name ok 103 nools dsl parser: define: should throw an error for invalid define blocks ok 104 nools dsl parser: define: should throw an error when the global statement is missing a name ok 105 nools dsl parser: define: should throw an error when the global statement is missing a ; ok 106 nools dsl parser: global: should parse a require call statement ok 107 nools dsl parser: global: should parse a require with a '.' character that is not a relative path ok 108 nools dsl parser: global: should resolve relative require paths ok 109 nools dsl parser: global: should parse a member look up ok 110 nools dsl parser: global: should parse a strings ok 111 nools dsl parser: global: should parse a boolean ok 112 nools dsl parser: global: should parse numbers ok 113 nools dsl parser: global: should parse a new instantiation ok 114 nools dsl parser: function: should parse a function statement ok 115 nools dsl parser: function: should throw an error when the function block is missing a name ok 116 nools dsl parser: function: should throw an error for invalid define blocks ok 117 nools dsl parser: rule: should parse rules ok 118 nools dsl parser: rule: should throw an error for invalid rule blocks ok 119 nools dsl parser: rule: should throw an error for a missing name ok 120 nools dsl parser: rule: should parse not conditions ok 121 nools dsl parser: rule: should parse or conditions ok 122 nools dsl parser: rule: should parse when clause with hash and constraints in any order ok 123 nools dsl parser: rule: should parse when clause with from ok 124 nools dsl parser: rule: should parse rules with a string name in double quotes ok 125 nools dsl parser: rule: should parse rules with a string name in single quotes ok 126 nools dsl parser: rule: should parse rules with a string name with inner strings ok 127 nools dsl parser: rule: salience/priority: should parse rules with a salience ok 128 nools dsl parser: rule: salience/priority: should parse rules with a priority ok 129 nools dsl parser: rule: salience/priority: should parse rules with a salience with a ; ok 130 nools dsl parser: rule: salience/priority: should parse rules with a priority with a ; ok 131 nools dsl parser: rule: salience/priority: should throw an error if the salience is not a number ok 132 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' ok 133 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agendaGroup' ok 134 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in '"' ok 135 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in "'" ok 136 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as true ok 137 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as false ok 138 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as true ok 139 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as false ok 140 nools dsl parser: rule: rules with auto-focus/autoFocus: should throw errors for values other than true or false ok 141 nools dsl parser: rule: should throw an error for invalid when clauses ok 142 nools dsl parser: rule: should throw an error for invalid then clauses ok 143 nools dsl parser: rule: should parse rules with exists clause ok 144 A Parser: should parse valid string expressions ok 145 A Parser: should parse regexps and not be greedy ok 146 A Parser: should parse valid string expressions with functions ok 147 A Parser: should parse valid string expressions with property access ok 148 A Parser: should parse valid string expressions with boolean operators ok 149 A Parser: should handle operator associativity properly ok 150 A Parser: should parse arrays ok 151 A Parser: should parse the in operator ok 152 A Parser: should parse the notIn operator ok 153 A Parser: should parse truthy statements ok 154 Rule: createRule: with strings: should create for string ok 155 Rule: createRule: with strings: should create for String ok 156 Rule: createRule: with strings: should create for number ok 157 Rule: createRule: with strings: should create for Number ok 158 Rule: createRule: with strings: should create for date ok 159 Rule: createRule: with strings: should create for Date ok 160 Rule: createRule: with strings: should create for array ok 161 Rule: createRule: with strings: should create for Array ok 162 Rule: createRule: with strings: should create for boolean ok 163 Rule: createRule: with strings: should create for Boolean ok 164 Rule: createRule: with strings: should create for regexp ok 165 Rule: createRule: with strings: should create for Regexp ok 166 Rule: createRule: with strings: should create for object ok 167 Rule: createRule: with strings: should create for Object ok 168 Rule: createRule: with strings: should create for hash ok 169 Rule: createRule: with strings: should create for Hash ok 170 Rule: createRule: with functions: should create for String function ok 171 Rule: createRule: with functions: should create for Number function ok 172 Rule: createRule: with functions: should create for Date function ok 173 Rule: createRule: with functions: should create for [] ok 174 Rule: createRule: with functions: should create for Array function ok 175 Rule: createRule: with functions: should create for Boolean function ok 176 Rule: createRule: with functions: should create for RegExp function ok 177 Rule: createRule: with functions: should create for Object function ok 178 Rule: createRule: with functions: should create for custom functions ok 179 Rule: createRule: should create a composite rule ok 180 Rule: createRule: should create a not pattern ok 181 Rule: createRule: should create a or pattern ok 182 Rule: createRule: should include reference store in constraints ok 183 Rule: createRule: should should include from constraints ok 184 Rule: createRule: should should include from constraints ok 185 Rule: createRule: should should include exists constraints # tests 185 # pass 185 # fail 0
idle timeout: 30 seconds with no output
2013-11-20 23:39:42
2013-11-20 23:52:55
8.0
✓9.0
✓10.0
✓20.0
✓21.0
✓22.0
23.0
✓24.0
✓25.0
26.0
27.0
28.0
29.0
✓14.0
✓15.0
✓16.0
✓17.0
✓18.0
✓19.0
20.0
21.0
22.0
23.0
24.0
✓6.0
✓6.0
✓6.0
1..181 ok 1 constraint matcher: match: should check equality ok 2 constraint matcher: match: should check inequality ok 3 constraint matcher: match: should check gt operator ok 4 constraint matcher: match: should check lt operator ok 5 constraint matcher: match: should check gte operator ok 6 constraint matcher: match: should check lte operator ok 7 constraint matcher: match: should check lte operator ok 8 constraint matcher: match: should check like operator ok 9 constraint matcher: match: should check notLike operator ok 10 constraint matcher: match: should check and operator ok 11 constraint matcher: match: should check or operator ok 12 constraint matcher: match: should check with member operator ok 13 constraint matcher: match: should check with in operator ok 14 constraint matcher: match: should check with notIn operator ok 15 constraint matcher: match: should allow properties with in ok 16 constraint matcher: match: should check with boolean associativity ok 17 constraint matcher: match: should check with nested properties ok 18 constraint matcher: match: should check with function ok 19 constraint matcher: match: should check with functions and identifier args ok 20 constraint matcher: match: should check with functions in a deep property chain and identifier args ok 21 constraint matcher: match: should check with functions in a deep property chain that returns an object and identifier args ok 22 constraint matcher: match: should have date helpers ok 23 constraint matcher: match: should create have type helpers ok 24 constraint matcher: match: should check truthy statements ok 25 constraint matcher: toConstraints: should create for expressions ok 26 constraint matcher: toConstraints: should create correct pattern depending on scope ok 27 constraint matcher: toJs: should create js equvalent expression ok 28 constraint matcher: getIdentifiers: should create the correct atoms for and expressions ok 29 constraint matcher: equals: should return true when equal ok 30 constraint matcher: equals: should return false when not equal ok 31 constraint matcher: .getIndexableProperties: should get properties with no functions ok 32 constraint matcher: .getIndexableProperties: should not get non indexable constraints ok 33 constraint matcher: .getIndexableProperties: should not get properties with functions ok 34 agenda-groups: should only fire events in focused group ok 35 agenda-groups: should should treat focus like a stack ok 36 auto-focus: should activate agenda groups in proper order ok 37 async actions: should fire all rules ok 38 events: should emit when facts are asserted ok 39 events: should emit when facts are retracted ok 40 events: should emit when facts are modified ok 41 events: should emit when rules are fired ok 42 exists rule: fact assertion: should only activate once ok 43 exists rule: fact assertion: should not activate once if the fact does not exists ok 44 exists rule: fact retraction: should should handle fact retractions properly ok 45 exists rule: fact modification: should should handle fact modification properly ok 46 exists rule: with from modifier: assert: should should handle fact assertion properly ok 47 exists rule: with from modifier: retract: should should handle fact retraction properly ok 48 exists rule: with from modifier: modify: should should handle fact modification properly ok 49 from condition: with non array properties: should create the proper match contexts ok 50 from condition: with non array properties: should propagate modified facts properly ok 51 from condition: with non array properties: should retract facts properly ok 52 from condition: with js source: should create the proper match contexts ok 53 from condition: with js source: should propagate modified facts properly ok 54 from condition: with array properties: should create all cross product matches ok 55 from condition: with array properties: should retract all cross product matches ok 56 from condition: with not node: should only fullfill if all facts evaluate to false ok 57 from condition: with not node: should only fullfill if all facts evaluate to false ok 58 matchUntilHalt: should match until halt is called ok 59 not rule: with a single fact: should call when a string that does not equal 'hello' ok 60 not rule: with a single fact: should not call when a string that does equal 'hello' ok 61 not rule: with a single fact: should not call when a string that does equal 'hello' and one that does not ok 62 not rule: with multiple facts: should fire rules in order ok 63 not rule: modifying facts: should handle modifications ok 64 or rule: or rule with two conditions of the same type: should should match if one constraints matches ok 65 or rule: or rule with two conditions of the same type: should not call when a a constraint does not match ok 66 or rule: or rule with three conditions: should should match if one constraints matches ok 67 or rule: or rule with three conditions: should not call when none constraints match ok 68 or rule: or rule with different types: should should match if one constraints matches ok 69 or rule: or rule with different types: should not call when none constraints match ok 70 or rule: or with not conditions: should activate for each fact that does not exist ok 71 flowrule: should create a rule ok 72 flowrule: should create a rule with joins properly ok 73 flowrule: should create a rules that are dependent on eachother properly ok 74 salience: should activate in the proper order ok 75 scope option: should call when a string equals 'hello' ok 76 scope option: should call when a string equals 'world' ok 77 scope option: should not call when a string that does equal 'hello' or 'world ok 78 simple rule: should call hello world rule ok 79 Flow compiled: not rule: should call when a string that does not equal 'hello' ok 80 Flow compiled: not rule: should not call when a string that does equal 'hello' ok 81 Flow compiled: not rule: should not call when a string that does equal 'hello' and one that does not ok 82 Flow compiled: or rule: should call when a string equals 'hello' ok 83 Flow compiled: or rule: or rule with not conditions: should activate for each fact that does not exist ok 84 Flow compiled: scoped functions: should call the scoped function ok 85 Flow compiled: events: should emit when facts are asserted ok 86 Flow compiled: events: should emit when facts are retracted ok 87 Flow compiled: events: should emit when facts are modified ok 88 Flow compiled: events: should emit when rules are fired ok 89 Flow compiled: agenda-groups: should only fire events in focused group ok 90 Flow compiled: agenda-groups: should should treat focus like a stack ok 91 Flow compiled: auto-focus: should activate agenda groups in proper order ok 92 Flow compiled: fibonacci nools dsl: should calculate fibonacci 3 ok 93 Flow compiled: fibonacci nools dsl: should calculate fibonacci 4 ok 94 Flow compiled: fibonacci nools dsl: should calculate fibonacci 5 ok 95 Flow compiled: fibonacci nools dsl: should calculate fibonacci 6 ok 96 Flow compiled: diagnosis using dsl: should treat properly ok 97 nools dsl parser: define: should parse a define statement ok 98 nools dsl parser: define: should throw an error when the define block is missing a name ok 99 nools dsl parser: define: should throw an error for invalid define blocks ok 100 nools dsl parser: define: should throw an error when the global statement is missing a name ok 101 nools dsl parser: define: should throw an error when the global statement is missing a ; ok 102 nools dsl parser: global: should parse a require call statement ok 103 nools dsl parser: global: should parse a require with a '.' character that is not a relative path ok 104 nools dsl parser: global: should resolve relative require paths ok 105 nools dsl parser: global: should parse a member look up ok 106 nools dsl parser: global: should parse a strings ok 107 nools dsl parser: global: should parse a boolean ok 108 nools dsl parser: global: should parse numbers ok 109 nools dsl parser: global: should parse a new instantiation ok 110 nools dsl parser: function: should parse a function statement ok 111 nools dsl parser: function: should throw an error when the function block is missing a name ok 112 nools dsl parser: function: should throw an error for invalid define blocks ok 113 nools dsl parser: rule: should parse rules ok 114 nools dsl parser: rule: should throw an error for invalid rule blocks ok 115 nools dsl parser: rule: should throw an error for a missing name ok 116 nools dsl parser: rule: should parse not conditions ok 117 nools dsl parser: rule: should parse or conditions ok 118 nools dsl parser: rule: should parse when clause with hash and constraints in any order ok 119 nools dsl parser: rule: should parse when clause with from ok 120 nools dsl parser: rule: should parse rules with a string name in double quotes ok 121 nools dsl parser: rule: should parse rules with a string name in single quotes ok 122 nools dsl parser: rule: should parse rules with a string name with inner strings ok 123 nools dsl parser: rule: salience/priority: should parse rules with a salience ok 124 nools dsl parser: rule: salience/priority: should parse rules with a priority ok 125 nools dsl parser: rule: salience/priority: should parse rules with a salience with a ; ok 126 nools dsl parser: rule: salience/priority: should parse rules with a priority with a ; ok 127 nools dsl parser: rule: salience/priority: should throw an error if the salience is not a number ok 128 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' ok 129 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agendaGroup' ok 130 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in '"' ok 131 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in "'" ok 132 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as true ok 133 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as false ok 134 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as true ok 135 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as false ok 136 nools dsl parser: rule: rules with auto-focus/autoFocus: should throw errors for values other than true or false ok 137 nools dsl parser: rule: should throw an error for invalid when clauses ok 138 nools dsl parser: rule: should throw an error for invalid then clauses ok 139 nools dsl parser: rule: should parse rules with exists clause ok 140 A Parser: should parse valid string expressions ok 141 A Parser: should parse regexps and not be greedy ok 142 A Parser: should parse valid string expressions with functions ok 143 A Parser: should parse valid string expressions with property access ok 144 A Parser: should parse valid string expressions with boolean operators ok 145 A Parser: should handle operator associativity properly ok 146 A Parser: should parse arrays ok 147 A Parser: should parse the in operator ok 148 A Parser: should parse the notIn operator ok 149 A Parser: should parse truthy statements ok 150 Rule: createRule: with strings: should create for string ok 151 Rule: createRule: with strings: should create for String ok 152 Rule: createRule: with strings: should create for number ok 153 Rule: createRule: with strings: should create for Number ok 154 Rule: createRule: with strings: should create for date ok 155 Rule: createRule: with strings: should create for Date ok 156 Rule: createRule: with strings: should create for array ok 157 Rule: createRule: with strings: should create for Array ok 158 Rule: createRule: with strings: should create for boolean ok 159 Rule: createRule: with strings: should create for Boolean ok 160 Rule: createRule: with strings: should create for regexp ok 161 Rule: createRule: with strings: should create for Regexp ok 162 Rule: createRule: with strings: should create for object ok 163 Rule: createRule: with strings: should create for Object ok 164 Rule: createRule: with strings: should create for hash ok 165 Rule: createRule: with strings: should create for Hash ok 166 Rule: createRule: with functions: should create for String function ok 167 Rule: createRule: with functions: should create for Number function ok 168 Rule: createRule: with functions: should create for Date function ok 169 Rule: createRule: with functions: should create for [] ok 170 Rule: createRule: with functions: should create for Array function ok 171 Rule: createRule: with functions: should create for Boolean function ok 172 Rule: createRule: with functions: should create for RegExp function ok 173 Rule: createRule: with functions: should create for Object function ok 174 Rule: createRule: with functions: should create for custom functions ok 175 Rule: createRule: should create a composite rule ok 176 Rule: createRule: should create a not pattern ok 177 Rule: createRule: should create a or pattern ok 178 Rule: createRule: should include reference store in constraints ok 179 Rule: createRule: should should include from constraints ok 180 Rule: createRule: should should include from constraints ok 181 Rule: createRule: should should include exists constraints # tests 181 # pass 181 # fail 0
1..181 ok 1 constraint matcher: match: should check equality ok 2 constraint matcher: match: should check inequality ok 3 constraint matcher: match: should check gt operator ok 4 constraint matcher: match: should check lt operator ok 5 constraint matcher: match: should check gte operator ok 6 constraint matcher: match: should check lte operator ok 7 constraint matcher: match: should check lte operator ok 8 constraint matcher: match: should check like operator ok 9 constraint matcher: match: should check notLike operator ok 10 constraint matcher: match: should check and operator ok 11 constraint matcher: match: should check or operator ok 12 constraint matcher: match: should check with member operator ok 13 constraint matcher: match: should check with in operator ok 14 constraint matcher: match: should check with notIn operator ok 15 constraint matcher: match: should allow properties with in ok 16 constraint matcher: match: should check with boolean associativity ok 17 constraint matcher: match: should check with nested properties ok 18 constraint matcher: match: should check with function ok 19 constraint matcher: match: should check with functions and identifier args ok 20 constraint matcher: match: should check with functions in a deep property chain and identifier args ok 21 constraint matcher: match: should check with functions in a deep property chain that returns an object and identifier args ok 22 constraint matcher: match: should have date helpers ok 23 constraint matcher: match: should create have type helpers ok 24 constraint matcher: match: should check truthy statements ok 25 constraint matcher: toConstraints: should create for expressions ok 26 constraint matcher: toConstraints: should create correct pattern depending on scope ok 27 constraint matcher: toJs: should create js equvalent expression ok 28 constraint matcher: getIdentifiers: should create the correct atoms for and expressions ok 29 constraint matcher: equals: should return true when equal ok 30 constraint matcher: equals: should return false when not equal ok 31 constraint matcher: .getIndexableProperties: should get properties with no functions ok 32 constraint matcher: .getIndexableProperties: should not get non indexable constraints ok 33 constraint matcher: .getIndexableProperties: should not get properties with functions ok 34 agenda-groups: should only fire events in focused group ok 35 agenda-groups: should should treat focus like a stack ok 36 auto-focus: should activate agenda groups in proper order ok 37 async actions: should fire all rules ok 38 events: should emit when facts are asserted ok 39 events: should emit when facts are retracted ok 40 events: should emit when facts are modified ok 41 events: should emit when rules are fired ok 42 exists rule: fact assertion: should only activate once ok 43 exists rule: fact assertion: should not activate once if the fact does not exists ok 44 exists rule: fact retraction: should should handle fact retractions properly ok 45 exists rule: fact modification: should should handle fact modification properly ok 46 exists rule: with from modifier: assert: should should handle fact assertion properly ok 47 exists rule: with from modifier: retract: should should handle fact retraction properly ok 48 exists rule: with from modifier: modify: should should handle fact modification properly ok 49 from condition: with non array properties: should create the proper match contexts ok 50 from condition: with non array properties: should propagate modified facts properly ok 51 from condition: with non array properties: should retract facts properly ok 52 from condition: with js source: should create the proper match contexts ok 53 from condition: with js source: should propagate modified facts properly ok 54 from condition: with array properties: should create all cross product matches ok 55 from condition: with array properties: should retract all cross product matches ok 56 from condition: with not node: should only fullfill if all facts evaluate to false ok 57 from condition: with not node: should only fullfill if all facts evaluate to false ok 58 matchUntilHalt: should match until halt is called ok 59 not rule: with a single fact: should call when a string that does not equal 'hello' ok 60 not rule: with a single fact: should not call when a string that does equal 'hello' ok 61 not rule: with a single fact: should not call when a string that does equal 'hello' and one that does not ok 62 not rule: with multiple facts: should fire rules in order ok 63 not rule: modifying facts: should handle modifications ok 64 or rule: or rule with two conditions of the same type: should should match if one constraints matches ok 65 or rule: or rule with two conditions of the same type: should not call when a a constraint does not match ok 66 or rule: or rule with three conditions: should should match if one constraints matches ok 67 or rule: or rule with three conditions: should not call when none constraints match ok 68 or rule: or rule with different types: should should match if one constraints matches ok 69 or rule: or rule with different types: should not call when none constraints match ok 70 or rule: or with not conditions: should activate for each fact that does not exist ok 71 flowrule: should create a rule ok 72 flowrule: should create a rule with joins properly ok 73 flowrule: should create a rules that are dependent on eachother properly ok 74 salience: should activate in the proper order ok 75 scope option: should call when a string equals 'hello' ok 76 scope option: should call when a string equals 'world' ok 77 scope option: should not call when a string that does equal 'hello' or 'world ok 78 simple rule: should call hello world rule ok 79 Flow compiled: not rule: should call when a string that does not equal 'hello' ok 80 Flow compiled: not rule: should not call when a string that does equal 'hello' ok 81 Flow compiled: not rule: should not call when a string that does equal 'hello' and one that does not ok 82 Flow compiled: or rule: should call when a string equals 'hello' ok 83 Flow compiled: or rule: or rule with not conditions: should activate for each fact that does not exist ok 84 Flow compiled: scoped functions: should call the scoped function ok 85 Flow compiled: events: should emit when facts are asserted ok 86 Flow compiled: events: should emit when facts are retracted ok 87 Flow compiled: events: should emit when facts are modified ok 88 Flow compiled: events: should emit when rules are fired ok 89 Flow compiled: agenda-groups: should only fire events in focused group ok 90 Flow compiled: agenda-groups: should should treat focus like a stack ok 91 Flow compiled: auto-focus: should activate agenda groups in proper order ok 92 Flow compiled: fibonacci nools dsl: should calculate fibonacci 3 ok 93 Flow compiled: fibonacci nools dsl: should calculate fibonacci 4 ok 94 Flow compiled: fibonacci nools dsl: should calculate fibonacci 5 ok 95 Flow compiled: fibonacci nools dsl: should calculate fibonacci 6 ok 96 Flow compiled: diagnosis using dsl: should treat properly ok 97 nools dsl parser: define: should parse a define statement ok 98 nools dsl parser: define: should throw an error when the define block is missing a name ok 99 nools dsl parser: define: should throw an error for invalid define blocks ok 100 nools dsl parser: define: should throw an error when the global statement is missing a name ok 101 nools dsl parser: define: should throw an error when the global statement is missing a ; ok 102 nools dsl parser: global: should parse a require call statement ok 103 nools dsl parser: global: should parse a require with a '.' character that is not a relative path ok 104 nools dsl parser: global: should resolve relative require paths ok 105 nools dsl parser: global: should parse a member look up ok 106 nools dsl parser: global: should parse a strings ok 107 nools dsl parser: global: should parse a boolean ok 108 nools dsl parser: global: should parse numbers ok 109 nools dsl parser: global: should parse a new instantiation ok 110 nools dsl parser: function: should parse a function statement ok 111 nools dsl parser: function: should throw an error when the function block is missing a name ok 112 nools dsl parser: function: should throw an error for invalid define blocks ok 113 nools dsl parser: rule: should parse rules ok 114 nools dsl parser: rule: should throw an error for invalid rule blocks ok 115 nools dsl parser: rule: should throw an error for a missing name ok 116 nools dsl parser: rule: should parse not conditions ok 117 nools dsl parser: rule: should parse or conditions ok 118 nools dsl parser: rule: should parse when clause with hash and constraints in any order ok 119 nools dsl parser: rule: should parse when clause with from ok 120 nools dsl parser: rule: should parse rules with a string name in double quotes ok 121 nools dsl parser: rule: should parse rules with a string name in single quotes ok 122 nools dsl parser: rule: should parse rules with a string name with inner strings ok 123 nools dsl parser: rule: salience/priority: should parse rules with a salience ok 124 nools dsl parser: rule: salience/priority: should parse rules with a priority ok 125 nools dsl parser: rule: salience/priority: should parse rules with a salience with a ; ok 126 nools dsl parser: rule: salience/priority: should parse rules with a priority with a ; ok 127 nools dsl parser: rule: salience/priority: should throw an error if the salience is not a number ok 128 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' ok 129 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agendaGroup' ok 130 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in '"' ok 131 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in "'" ok 132 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as true ok 133 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as false ok 134 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as true ok 135 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as false ok 136 nools dsl parser: rule: rules with auto-focus/autoFocus: should throw errors for values other than true or false ok 137 nools dsl parser: rule: should throw an error for invalid when clauses ok 138 nools dsl parser: rule: should throw an error for invalid then clauses ok 139 nools dsl parser: rule: should parse rules with exists clause ok 140 A Parser: should parse valid string expressions ok 141 A Parser: should parse regexps and not be greedy ok 142 A Parser: should parse valid string expressions with functions ok 143 A Parser: should parse valid string expressions with property access ok 144 A Parser: should parse valid string expressions with boolean operators ok 145 A Parser: should handle operator associativity properly ok 146 A Parser: should parse arrays ok 147 A Parser: should parse the in operator ok 148 A Parser: should parse the notIn operator ok 149 A Parser: should parse truthy statements ok 150 Rule: createRule: with strings: should create for string ok 151 Rule: createRule: with strings: should create for String ok 152 Rule: createRule: with strings: should create for number ok 153 Rule: createRule: with strings: should create for Number ok 154 Rule: createRule: with strings: should create for date ok 155 Rule: createRule: with strings: should create for Date ok 156 Rule: createRule: with strings: should create for array ok 157 Rule: createRule: with strings: should create for Array ok 158 Rule: createRule: with strings: should create for boolean ok 159 Rule: createRule: with strings: should create for Boolean ok 160 Rule: createRule: with strings: should create for regexp ok 161 Rule: createRule: with strings: should create for Regexp ok 162 Rule: createRule: with strings: should create for object ok 163 Rule: createRule: with strings: should create for Object ok 164 Rule: createRule: with strings: should create for hash ok 165 Rule: createRule: with strings: should create for Hash ok 166 Rule: createRule: with functions: should create for String function ok 167 Rule: createRule: with functions: should create for Number function ok 168 Rule: createRule: with functions: should create for Date function ok 169 Rule: createRule: with functions: should create for [] ok 170 Rule: createRule: with functions: should create for Array function ok 171 Rule: createRule: with functions: should create for Boolean function ok 172 Rule: createRule: with functions: should create for RegExp function ok 173 Rule: createRule: with functions: should create for Object function ok 174 Rule: createRule: with functions: should create for custom functions ok 175 Rule: createRule: should create a composite rule ok 176 Rule: createRule: should create a not pattern ok 177 Rule: createRule: should create a or pattern ok 178 Rule: createRule: should include reference store in constraints ok 179 Rule: createRule: should should include from constraints ok 180 Rule: createRule: should should include from constraints ok 181 Rule: createRule: should should include exists constraints # tests 181 # pass 181 # fail 0
1..181 ok 1 constraint matcher: match: should check equality ok 2 constraint matcher: match: should check inequality ok 3 constraint matcher: match: should check gt operator ok 4 constraint matcher: match: should check lt operator ok 5 constraint matcher: match: should check gte operator ok 6 constraint matcher: match: should check lte operator ok 7 constraint matcher: match: should check lte operator ok 8 constraint matcher: match: should check like operator ok 9 constraint matcher: match: should check notLike operator ok 10 constraint matcher: match: should check and operator ok 11 constraint matcher: match: should check or operator ok 12 constraint matcher: match: should check with member operator ok 13 constraint matcher: match: should check with in operator ok 14 constraint matcher: match: should check with notIn operator ok 15 constraint matcher: match: should allow properties with in ok 16 constraint matcher: match: should check with boolean associativity ok 17 constraint matcher: match: should check with nested properties ok 18 constraint matcher: match: should check with function ok 19 constraint matcher: match: should check with functions and identifier args ok 20 constraint matcher: match: should check with functions in a deep property chain and identifier args ok 21 constraint matcher: match: should check with functions in a deep property chain that returns an object and identifier args ok 22 constraint matcher: match: should have date helpers ok 23 constraint matcher: match: should create have type helpers ok 24 constraint matcher: match: should check truthy statements ok 25 constraint matcher: toConstraints: should create for expressions ok 26 constraint matcher: toConstraints: should create correct pattern depending on scope ok 27 constraint matcher: toJs: should create js equvalent expression ok 28 constraint matcher: getIdentifiers: should create the correct atoms for and expressions ok 29 constraint matcher: equals: should return true when equal ok 30 constraint matcher: equals: should return false when not equal ok 31 constraint matcher: .getIndexableProperties: should get properties with no functions ok 32 constraint matcher: .getIndexableProperties: should not get non indexable constraints ok 33 constraint matcher: .getIndexableProperties: should not get properties with functions ok 34 agenda-groups: should only fire events in focused group ok 35 agenda-groups: should should treat focus like a stack ok 36 auto-focus: should activate agenda groups in proper order ok 37 async actions: should fire all rules ok 38 events: should emit when facts are asserted ok 39 events: should emit when facts are retracted ok 40 events: should emit when facts are modified ok 41 events: should emit when rules are fired ok 42 exists rule: fact assertion: should only activate once ok 43 exists rule: fact assertion: should not activate once if the fact does not exists ok 44 exists rule: fact retraction: should should handle fact retractions properly ok 45 exists rule: fact modification: should should handle fact modification properly ok 46 exists rule: with from modifier: assert: should should handle fact assertion properly ok 47 exists rule: with from modifier: retract: should should handle fact retraction properly ok 48 exists rule: with from modifier: modify: should should handle fact modification properly ok 49 from condition: with non array properties: should create the proper match contexts ok 50 from condition: with non array properties: should propagate modified facts properly ok 51 from condition: with non array properties: should retract facts properly ok 52 from condition: with js source: should create the proper match contexts ok 53 from condition: with js source: should propagate modified facts properly ok 54 from condition: with array properties: should create all cross product matches ok 55 from condition: with array properties: should retract all cross product matches ok 56 from condition: with not node: should only fullfill if all facts evaluate to false ok 57 from condition: with not node: should only fullfill if all facts evaluate to false ok 58 matchUntilHalt: should match until halt is called ok 59 not rule: with a single fact: should call when a string that does not equal 'hello' ok 60 not rule: with a single fact: should not call when a string that does equal 'hello' ok 61 not rule: with a single fact: should not call when a string that does equal 'hello' and one that does not ok 62 not rule: with multiple facts: should fire rules in order ok 63 not rule: modifying facts: should handle modifications ok 64 or rule: or rule with two conditions of the same type: should should match if one constraints matches ok 65 or rule: or rule with two conditions of the same type: should not call when a a constraint does not match ok 66 or rule: or rule with three conditions: should should match if one constraints matches ok 67 or rule: or rule with three conditions: should not call when none constraints match ok 68 or rule: or rule with different types: should should match if one constraints matches ok 69 or rule: or rule with different types: should not call when none constraints match ok 70 or rule: or with not conditions: should activate for each fact that does not exist ok 71 flowrule: should create a rule ok 72 flowrule: should create a rule with joins properly ok 73 flowrule: should create a rules that are dependent on eachother properly ok 74 salience: should activate in the proper order ok 75 scope option: should call when a string equals 'hello' ok 76 scope option: should call when a string equals 'world' ok 77 scope option: should not call when a string that does equal 'hello' or 'world ok 78 simple rule: should call hello world rule ok 79 Flow compiled: not rule: should call when a string that does not equal 'hello' ok 80 Flow compiled: not rule: should not call when a string that does equal 'hello' ok 81 Flow compiled: not rule: should not call when a string that does equal 'hello' and one that does not ok 82 Flow compiled: or rule: should call when a string equals 'hello' ok 83 Flow compiled: or rule: or rule with not conditions: should activate for each fact that does not exist ok 84 Flow compiled: scoped functions: should call the scoped function ok 85 Flow compiled: events: should emit when facts are asserted ok 86 Flow compiled: events: should emit when facts are retracted ok 87 Flow compiled: events: should emit when facts are modified ok 88 Flow compiled: events: should emit when rules are fired ok 89 Flow compiled: agenda-groups: should only fire events in focused group ok 90 Flow compiled: agenda-groups: should should treat focus like a stack ok 91 Flow compiled: auto-focus: should activate agenda groups in proper order ok 92 Flow compiled: fibonacci nools dsl: should calculate fibonacci 3 ok 93 Flow compiled: fibonacci nools dsl: should calculate fibonacci 4 ok 94 Flow compiled: fibonacci nools dsl: should calculate fibonacci 5 ok 95 Flow compiled: fibonacci nools dsl: should calculate fibonacci 6 ok 96 Flow compiled: diagnosis using dsl: should treat properly ok 97 nools dsl parser: define: should parse a define statement ok 98 nools dsl parser: define: should throw an error when the define block is missing a name ok 99 nools dsl parser: define: should throw an error for invalid define blocks ok 100 nools dsl parser: define: should throw an error when the global statement is missing a name ok 101 nools dsl parser: define: should throw an error when the global statement is missing a ; ok 102 nools dsl parser: global: should parse a require call statement ok 103 nools dsl parser: global: should parse a require with a '.' character that is not a relative path ok 104 nools dsl parser: global: should resolve relative require paths ok 105 nools dsl parser: global: should parse a member look up ok 106 nools dsl parser: global: should parse a strings ok 107 nools dsl parser: global: should parse a boolean ok 108 nools dsl parser: global: should parse numbers ok 109 nools dsl parser: global: should parse a new instantiation ok 110 nools dsl parser: function: should parse a function statement ok 111 nools dsl parser: function: should throw an error when the function block is missing a name ok 112 nools dsl parser: function: should throw an error for invalid define blocks ok 113 nools dsl parser: rule: should parse rules ok 114 nools dsl parser: rule: should throw an error for invalid rule blocks ok 115 nools dsl parser: rule: should throw an error for a missing name ok 116 nools dsl parser: rule: should parse not conditions ok 117 nools dsl parser: rule: should parse or conditions ok 118 nools dsl parser: rule: should parse when clause with hash and constraints in any order ok 119 nools dsl parser: rule: should parse when clause with from ok 120 nools dsl parser: rule: should parse rules with a string name in double quotes ok 121 nools dsl parser: rule: should parse rules with a string name in single quotes ok 122 nools dsl parser: rule: should parse rules with a string name with inner strings ok 123 nools dsl parser: rule: salience/priority: should parse rules with a salience ok 124 nools dsl parser: rule: salience/priority: should parse rules with a priority ok 125 nools dsl parser: rule: salience/priority: should parse rules with a salience with a ; ok 126 nools dsl parser: rule: salience/priority: should parse rules with a priority with a ; ok 127 nools dsl parser: rule: salience/priority: should throw an error if the salience is not a number ok 128 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' ok 129 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agendaGroup' ok 130 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in '"' ok 131 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in "'" ok 132 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as true ok 133 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as false ok 134 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as true ok 135 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as false ok 136 nools dsl parser: rule: rules with auto-focus/autoFocus: should throw errors for values other than true or false ok 137 nools dsl parser: rule: should throw an error for invalid when clauses ok 138 nools dsl parser: rule: should throw an error for invalid then clauses ok 139 nools dsl parser: rule: should parse rules with exists clause ok 140 A Parser: should parse valid string expressions ok 141 A Parser: should parse regexps and not be greedy ok 142 A Parser: should parse valid string expressions with functions ok 143 A Parser: should parse valid string expressions with property access ok 144 A Parser: should parse valid string expressions with boolean operators ok 145 A Parser: should handle operator associativity properly ok 146 A Parser: should parse arrays ok 147 A Parser: should parse the in operator ok 148 A Parser: should parse the notIn operator ok 149 A Parser: should parse truthy statements ok 150 Rule: createRule: with strings: should create for string ok 151 Rule: createRule: with strings: should create for String ok 152 Rule: createRule: with strings: should create for number ok 153 Rule: createRule: with strings: should create for Number ok 154 Rule: createRule: with strings: should create for date ok 155 Rule: createRule: with strings: should create for Date ok 156 Rule: createRule: with strings: should create for array ok 157 Rule: createRule: with strings: should create for Array ok 158 Rule: createRule: with strings: should create for boolean ok 159 Rule: createRule: with strings: should create for Boolean ok 160 Rule: createRule: with strings: should create for regexp ok 161 Rule: createRule: with strings: should create for Regexp ok 162 Rule: createRule: with strings: should create for object ok 163 Rule: createRule: with strings: should create for Object ok 164 Rule: createRule: with strings: should create for hash ok 165 Rule: createRule: with strings: should create for Hash ok 166 Rule: createRule: with functions: should create for String function ok 167 Rule: createRule: with functions: should create for Number function ok 168 Rule: createRule: with functions: should create for Date function ok 169 Rule: createRule: with functions: should create for [] ok 170 Rule: createRule: with functions: should create for Array function ok 171 Rule: createRule: with functions: should create for Boolean function ok 172 Rule: createRule: with functions: should create for RegExp function ok 173 Rule: createRule: with functions: should create for Object function ok 174 Rule: createRule: with functions: should create for custom functions ok 175 Rule: createRule: should create a composite rule ok 176 Rule: createRule: should create a not pattern ok 177 Rule: createRule: should create a or pattern ok 178 Rule: createRule: should include reference store in constraints ok 179 Rule: createRule: should should include from constraints ok 180 Rule: createRule: should should include from constraints ok 181 Rule: createRule: should should include exists constraints # tests 181 # pass 181 # fail 0
1..181 ok 1 constraint matcher: match: should check equality ok 2 constraint matcher: match: should check inequality ok 3 constraint matcher: match: should check gt operator ok 4 constraint matcher: match: should check lt operator ok 5 constraint matcher: match: should check gte operator ok 6 constraint matcher: match: should check lte operator ok 7 constraint matcher: match: should check lte operator ok 8 constraint matcher: match: should check like operator ok 9 constraint matcher: match: should check notLike operator ok 10 constraint matcher: match: should check and operator ok 11 constraint matcher: match: should check or operator ok 12 constraint matcher: match: should check with member operator ok 13 constraint matcher: match: should check with in operator ok 14 constraint matcher: match: should check with notIn operator ok 15 constraint matcher: match: should allow properties with in ok 16 constraint matcher: match: should check with boolean associativity ok 17 constraint matcher: match: should check with nested properties ok 18 constraint matcher: match: should check with function ok 19 constraint matcher: match: should check with functions and identifier args ok 20 constraint matcher: match: should check with functions in a deep property chain and identifier args ok 21 constraint matcher: match: should check with functions in a deep property chain that returns an object and identifier args ok 22 constraint matcher: match: should have date helpers ok 23 constraint matcher: match: should create have type helpers ok 24 constraint matcher: match: should check truthy statements ok 25 constraint matcher: toConstraints: should create for expressions ok 26 constraint matcher: toConstraints: should create correct pattern depending on scope ok 27 constraint matcher: toJs: should create js equvalent expression ok 28 constraint matcher: getIdentifiers: should create the correct atoms for and expressions ok 29 constraint matcher: equals: should return true when equal ok 30 constraint matcher: equals: should return false when not equal ok 31 constraint matcher: .getIndexableProperties: should get properties with no functions ok 32 constraint matcher: .getIndexableProperties: should not get non indexable constraints ok 33 constraint matcher: .getIndexableProperties: should not get properties with functions ok 34 agenda-groups: should only fire events in focused group ok 35 agenda-groups: should should treat focus like a stack ok 36 auto-focus: should activate agenda groups in proper order ok 37 async actions: should fire all rules ok 38 events: should emit when facts are asserted ok 39 events: should emit when facts are retracted ok 40 events: should emit when facts are modified ok 41 events: should emit when rules are fired ok 42 exists rule: fact assertion: should only activate once ok 43 exists rule: fact assertion: should not activate once if the fact does not exists ok 44 exists rule: fact retraction: should should handle fact retractions properly ok 45 exists rule: fact modification: should should handle fact modification properly ok 46 exists rule: with from modifier: assert: should should handle fact assertion properly ok 47 exists rule: with from modifier: retract: should should handle fact retraction properly ok 48 exists rule: with from modifier: modify: should should handle fact modification properly ok 49 from condition: with non array properties: should create the proper match contexts ok 50 from condition: with non array properties: should propagate modified facts properly ok 51 from condition: with non array properties: should retract facts properly ok 52 from condition: with js source: should create the proper match contexts ok 53 from condition: with js source: should propagate modified facts properly ok 54 from condition: with array properties: should create all cross product matches ok 55 from condition: with array properties: should retract all cross product matches ok 56 from condition: with not node: should only fullfill if all facts evaluate to false ok 57 from condition: with not node: should only fullfill if all facts evaluate to false ok 58 matchUntilHalt: should match until halt is called ok 59 not rule: with a single fact: should call when a string that does not equal 'hello' ok 60 not rule: with a single fact: should not call when a string that does equal 'hello' ok 61 not rule: with a single fact: should not call when a string that does equal 'hello' and one that does not ok 62 not rule: with multiple facts: should fire rules in order ok 63 not rule: modifying facts: should handle modifications ok 64 or rule: or rule with two conditions of the same type: should should match if one constraints matches ok 65 or rule: or rule with two conditions of the same type: should not call when a a constraint does not match ok 66 or rule: or rule with three conditions: should should match if one constraints matches ok 67 or rule: or rule with three conditions: should not call when none constraints match ok 68 or rule: or rule with different types: should should match if one constraints matches ok 69 or rule: or rule with different types: should not call when none constraints match ok 70 or rule: or with not conditions: should activate for each fact that does not exist ok 71 flowrule: should create a rule ok 72 flowrule: should create a rule with joins properly ok 73 flowrule: should create a rules that are dependent on eachother properly ok 74 salience: should activate in the proper order ok 75 scope option: should call when a string equals 'hello' ok 76 scope option: should call when a string equals 'world' ok 77 scope option: should not call when a string that does equal 'hello' or 'world ok 78 simple rule: should call hello world rule ok 79 Flow compiled: not rule: should call when a string that does not equal 'hello' ok 80 Flow compiled: not rule: should not call when a string that does equal 'hello' ok 81 Flow compiled: not rule: should not call when a string that does equal 'hello' and one that does not ok 82 Flow compiled: or rule: should call when a string equals 'hello' ok 83 Flow compiled: or rule: or rule with not conditions: should activate for each fact that does not exist ok 84 Flow compiled: scoped functions: should call the scoped function ok 85 Flow compiled: events: should emit when facts are asserted ok 86 Flow compiled: events: should emit when facts are retracted ok 87 Flow compiled: events: should emit when facts are modified ok 88 Flow compiled: events: should emit when rules are fired ok 89 Flow compiled: agenda-groups: should only fire events in focused group ok 90 Flow compiled: agenda-groups: should should treat focus like a stack ok 91 Flow compiled: auto-focus: should activate agenda groups in proper order ok 92 Flow compiled: fibonacci nools dsl: should calculate fibonacci 3 ok 93 Flow compiled: fibonacci nools dsl: should calculate fibonacci 4 ok 94 Flow compiled: fibonacci nools dsl: should calculate fibonacci 5 ok 95 Flow compiled: fibonacci nools dsl: should calculate fibonacci 6 ok 96 Flow compiled: diagnosis using dsl: should treat properly ok 97 nools dsl parser: define: should parse a define statement ok 98 nools dsl parser: define: should throw an error when the define block is missing a name ok 99 nools dsl parser: define: should throw an error for invalid define blocks ok 100 nools dsl parser: define: should throw an error when the global statement is missing a name ok 101 nools dsl parser: define: should throw an error when the global statement is missing a ; ok 102 nools dsl parser: global: should parse a require call statement ok 103 nools dsl parser: global: should parse a require with a '.' character that is not a relative path ok 104 nools dsl parser: global: should resolve relative require paths ok 105 nools dsl parser: global: should parse a member look up ok 106 nools dsl parser: global: should parse a strings ok 107 nools dsl parser: global: should parse a boolean ok 108 nools dsl parser: global: should parse numbers ok 109 nools dsl parser: global: should parse a new instantiation ok 110 nools dsl parser: function: should parse a function statement ok 111 nools dsl parser: function: should throw an error when the function block is missing a name ok 112 nools dsl parser: function: should throw an error for invalid define blocks ok 113 nools dsl parser: rule: should parse rules ok 114 nools dsl parser: rule: should throw an error for invalid rule blocks ok 115 nools dsl parser: rule: should throw an error for a missing name ok 116 nools dsl parser: rule: should parse not conditions ok 117 nools dsl parser: rule: should parse or conditions ok 118 nools dsl parser: rule: should parse when clause with hash and constraints in any order ok 119 nools dsl parser: rule: should parse when clause with from ok 120 nools dsl parser: rule: should parse rules with a string name in double quotes ok 121 nools dsl parser: rule: should parse rules with a string name in single quotes ok 122 nools dsl parser: rule: should parse rules with a string name with inner strings ok 123 nools dsl parser: rule: salience/priority: should parse rules with a salience ok 124 nools dsl parser: rule: salience/priority: should parse rules with a priority ok 125 nools dsl parser: rule: salience/priority: should parse rules with a salience with a ; ok 126 nools dsl parser: rule: salience/priority: should parse rules with a priority with a ; ok 127 nools dsl parser: rule: salience/priority: should throw an error if the salience is not a number ok 128 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' ok 129 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agendaGroup' ok 130 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in '"' ok 131 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in "'" ok 132 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as true ok 133 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as false ok 134 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as true ok 135 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as false ok 136 nools dsl parser: rule: rules with auto-focus/autoFocus: should throw errors for values other than true or false ok 137 nools dsl parser: rule: should throw an error for invalid when clauses ok 138 nools dsl parser: rule: should throw an error for invalid then clauses ok 139 nools dsl parser: rule: should parse rules with exists clause ok 140 A Parser: should parse valid string expressions ok 141 A Parser: should parse regexps and not be greedy ok 142 A Parser: should parse valid string expressions with functions ok 143 A Parser: should parse valid string expressions with property access ok 144 A Parser: should parse valid string expressions with boolean operators ok 145 A Parser: should handle operator associativity properly ok 146 A Parser: should parse arrays ok 147 A Parser: should parse the in operator ok 148 A Parser: should parse the notIn operator ok 149 A Parser: should parse truthy statements ok 150 Rule: createRule: with strings: should create for string ok 151 Rule: createRule: with strings: should create for String ok 152 Rule: createRule: with strings: should create for number ok 153 Rule: createRule: with strings: should create for Number ok 154 Rule: createRule: with strings: should create for date ok 155 Rule: createRule: with strings: should create for Date ok 156 Rule: createRule: with strings: should create for array ok 157 Rule: createRule: with strings: should create for Array ok 158 Rule: createRule: with strings: should create for boolean ok 159 Rule: createRule: with strings: should create for Boolean ok 160 Rule: createRule: with strings: should create for regexp ok 161 Rule: createRule: with strings: should create for Regexp ok 162 Rule: createRule: with strings: should create for object ok 163 Rule: createRule: with strings: should create for Object ok 164 Rule: createRule: with strings: should create for hash ok 165 Rule: createRule: with strings: should create for Hash ok 166 Rule: createRule: with functions: should create for String function ok 167 Rule: createRule: with functions: should create for Number function ok 168 Rule: createRule: with functions: should create for Date function ok 169 Rule: createRule: with functions: should create for [] ok 170 Rule: createRule: with functions: should create for Array function ok 171 Rule: createRule: with functions: should create for Boolean function ok 172 Rule: createRule: with functions: should create for RegExp function ok 173 Rule: createRule: with functions: should create for Object function ok 174 Rule: createRule: with functions: should create for custom functions ok 175 Rule: createRule: should create a composite rule ok 176 Rule: createRule: should create a not pattern ok 177 Rule: createRule: should create a or pattern ok 178 Rule: createRule: should include reference store in constraints ok 179 Rule: createRule: should should include from constraints ok 180 Rule: createRule: should should include from constraints ok 181 Rule: createRule: should should include exists constraints # tests 181 # pass 181 # fail 0
1..181 ok 1 constraint matcher: match: should check equality ok 2 constraint matcher: match: should check inequality ok 3 constraint matcher: match: should check gt operator ok 4 constraint matcher: match: should check lt operator ok 5 constraint matcher: match: should check gte operator ok 6 constraint matcher: match: should check lte operator ok 7 constraint matcher: match: should check lte operator ok 8 constraint matcher: match: should check like operator ok 9 constraint matcher: match: should check notLike operator ok 10 constraint matcher: match: should check and operator ok 11 constraint matcher: match: should check or operator ok 12 constraint matcher: match: should check with member operator ok 13 constraint matcher: match: should check with in operator ok 14 constraint matcher: match: should check with notIn operator ok 15 constraint matcher: match: should allow properties with in ok 16 constraint matcher: match: should check with boolean associativity ok 17 constraint matcher: match: should check with nested properties ok 18 constraint matcher: match: should check with function ok 19 constraint matcher: match: should check with functions and identifier args ok 20 constraint matcher: match: should check with functions in a deep property chain and identifier args ok 21 constraint matcher: match: should check with functions in a deep property chain that returns an object and identifier args ok 22 constraint matcher: match: should have date helpers ok 23 constraint matcher: match: should create have type helpers ok 24 constraint matcher: match: should check truthy statements ok 25 constraint matcher: toConstraints: should create for expressions ok 26 constraint matcher: toConstraints: should create correct pattern depending on scope ok 27 constraint matcher: toJs: should create js equvalent expression ok 28 constraint matcher: getIdentifiers: should create the correct atoms for and expressions ok 29 constraint matcher: equals: should return true when equal ok 30 constraint matcher: equals: should return false when not equal ok 31 constraint matcher: .getIndexableProperties: should get properties with no functions ok 32 constraint matcher: .getIndexableProperties: should not get non indexable constraints ok 33 constraint matcher: .getIndexableProperties: should not get properties with functions ok 34 agenda-groups: should only fire events in focused group ok 35 agenda-groups: should should treat focus like a stack ok 36 auto-focus: should activate agenda groups in proper order ok 37 async actions: should fire all rules ok 38 events: should emit when facts are asserted ok 39 events: should emit when facts are retracted ok 40 events: should emit when facts are modified ok 41 events: should emit when rules are fired ok 42 exists rule: fact assertion: should only activate once ok 43 exists rule: fact assertion: should not activate once if the fact does not exists ok 44 exists rule: fact retraction: should should handle fact retractions properly ok 45 exists rule: fact modification: should should handle fact modification properly ok 46 exists rule: with from modifier: assert: should should handle fact assertion properly ok 47 exists rule: with from modifier: retract: should should handle fact retraction properly ok 48 exists rule: with from modifier: modify: should should handle fact modification properly ok 49 from condition: with non array properties: should create the proper match contexts ok 50 from condition: with non array properties: should propagate modified facts properly ok 51 from condition: with non array properties: should retract facts properly ok 52 from condition: with js source: should create the proper match contexts ok 53 from condition: with js source: should propagate modified facts properly ok 54 from condition: with array properties: should create all cross product matches ok 55 from condition: with array properties: should retract all cross product matches ok 56 from condition: with not node: should only fullfill if all facts evaluate to false ok 57 from condition: with not node: should only fullfill if all facts evaluate to false ok 58 matchUntilHalt: should match until halt is called ok 59 not rule: with a single fact: should call when a string that does not equal 'hello' ok 60 not rule: with a single fact: should not call when a string that does equal 'hello' ok 61 not rule: with a single fact: should not call when a string that does equal 'hello' and one that does not ok 62 not rule: with multiple facts: should fire rules in order ok 63 not rule: modifying facts: should handle modifications ok 64 or rule: or rule with two conditions of the same type: should should match if one constraints matches ok 65 or rule: or rule with two conditions of the same type: should not call when a a constraint does not match ok 66 or rule: or rule with three conditions: should should match if one constraints matches ok 67 or rule: or rule with three conditions: should not call when none constraints match ok 68 or rule: or rule with different types: should should match if one constraints matches ok 69 or rule: or rule with different types: should not call when none constraints match ok 70 or rule: or with not conditions: should activate for each fact that does not exist ok 71 flowrule: should create a rule ok 72 flowrule: should create a rule with joins properly ok 73 flowrule: should create a rules that are dependent on eachother properly ok 74 salience: should activate in the proper order ok 75 scope option: should call when a string equals 'hello' ok 76 scope option: should call when a string equals 'world' ok 77 scope option: should not call when a string that does equal 'hello' or 'world ok 78 simple rule: should call hello world rule ok 79 Flow compiled: not rule: should call when a string that does not equal 'hello' ok 80 Flow compiled: not rule: should not call when a string that does equal 'hello' ok 81 Flow compiled: not rule: should not call when a string that does equal 'hello' and one that does not ok 82 Flow compiled: or rule: should call when a string equals 'hello' ok 83 Flow compiled: or rule: or rule with not conditions: should activate for each fact that does not exist ok 84 Flow compiled: scoped functions: should call the scoped function ok 85 Flow compiled: events: should emit when facts are asserted ok 86 Flow compiled: events: should emit when facts are retracted ok 87 Flow compiled: events: should emit when facts are modified ok 88 Flow compiled: events: should emit when rules are fired ok 89 Flow compiled: agenda-groups: should only fire events in focused group ok 90 Flow compiled: agenda-groups: should should treat focus like a stack ok 91 Flow compiled: auto-focus: should activate agenda groups in proper order ok 92 Flow compiled: fibonacci nools dsl: should calculate fibonacci 3 ok 93 Flow compiled: fibonacci nools dsl: should calculate fibonacci 4 ok 94 Flow compiled: fibonacci nools dsl: should calculate fibonacci 5 ok 95 Flow compiled: fibonacci nools dsl: should calculate fibonacci 6 ok 96 Flow compiled: diagnosis using dsl: should treat properly ok 97 nools dsl parser: define: should parse a define statement ok 98 nools dsl parser: define: should throw an error when the define block is missing a name ok 99 nools dsl parser: define: should throw an error for invalid define blocks ok 100 nools dsl parser: define: should throw an error when the global statement is missing a name ok 101 nools dsl parser: define: should throw an error when the global statement is missing a ; ok 102 nools dsl parser: global: should parse a require call statement ok 103 nools dsl parser: global: should parse a require with a '.' character that is not a relative path ok 104 nools dsl parser: global: should resolve relative require paths ok 105 nools dsl parser: global: should parse a member look up ok 106 nools dsl parser: global: should parse a strings ok 107 nools dsl parser: global: should parse a boolean ok 108 nools dsl parser: global: should parse numbers ok 109 nools dsl parser: global: should parse a new instantiation ok 110 nools dsl parser: function: should parse a function statement ok 111 nools dsl parser: function: should throw an error when the function block is missing a name ok 112 nools dsl parser: function: should throw an error for invalid define blocks ok 113 nools dsl parser: rule: should parse rules ok 114 nools dsl parser: rule: should throw an error for invalid rule blocks ok 115 nools dsl parser: rule: should throw an error for a missing name ok 116 nools dsl parser: rule: should parse not conditions ok 117 nools dsl parser: rule: should parse or conditions ok 118 nools dsl parser: rule: should parse when clause with hash and constraints in any order ok 119 nools dsl parser: rule: should parse when clause with from ok 120 nools dsl parser: rule: should parse rules with a string name in double quotes ok 121 nools dsl parser: rule: should parse rules with a string name in single quotes ok 122 nools dsl parser: rule: should parse rules with a string name with inner strings ok 123 nools dsl parser: rule: salience/priority: should parse rules with a salience ok 124 nools dsl parser: rule: salience/priority: should parse rules with a priority ok 125 nools dsl parser: rule: salience/priority: should parse rules with a salience with a ; ok 126 nools dsl parser: rule: salience/priority: should parse rules with a priority with a ; ok 127 nools dsl parser: rule: salience/priority: should throw an error if the salience is not a number ok 128 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' ok 129 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agendaGroup' ok 130 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in '"' ok 131 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in "'" ok 132 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as true ok 133 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as false ok 134 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as true ok 135 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as false ok 136 nools dsl parser: rule: rules with auto-focus/autoFocus: should throw errors for values other than true or false ok 137 nools dsl parser: rule: should throw an error for invalid when clauses ok 138 nools dsl parser: rule: should throw an error for invalid then clauses ok 139 nools dsl parser: rule: should parse rules with exists clause ok 140 A Parser: should parse valid string expressions ok 141 A Parser: should parse regexps and not be greedy ok 142 A Parser: should parse valid string expressions with functions ok 143 A Parser: should parse valid string expressions with property access ok 144 A Parser: should parse valid string expressions with boolean operators ok 145 A Parser: should handle operator associativity properly ok 146 A Parser: should parse arrays ok 147 A Parser: should parse the in operator ok 148 A Parser: should parse the notIn operator ok 149 A Parser: should parse truthy statements ok 150 Rule: createRule: with strings: should create for string ok 151 Rule: createRule: with strings: should create for String ok 152 Rule: createRule: with strings: should create for number ok 153 Rule: createRule: with strings: should create for Number ok 154 Rule: createRule: with strings: should create for date ok 155 Rule: createRule: with strings: should create for Date ok 156 Rule: createRule: with strings: should create for array ok 157 Rule: createRule: with strings: should create for Array ok 158 Rule: createRule: with strings: should create for boolean ok 159 Rule: createRule: with strings: should create for Boolean ok 160 Rule: createRule: with strings: should create for regexp ok 161 Rule: createRule: with strings: should create for Regexp ok 162 Rule: createRule: with strings: should create for object ok 163 Rule: createRule: with strings: should create for Object ok 164 Rule: createRule: with strings: should create for hash ok 165 Rule: createRule: with strings: should create for Hash ok 166 Rule: createRule: with functions: should create for String function ok 167 Rule: createRule: with functions: should create for Number function ok 168 Rule: createRule: with functions: should create for Date function ok 169 Rule: createRule: with functions: should create for [] ok 170 Rule: createRule: with functions: should create for Array function ok 171 Rule: createRule: with functions: should create for Boolean function ok 172 Rule: createRule: with functions: should create for RegExp function ok 173 Rule: createRule: with functions: should create for Object function ok 174 Rule: createRule: with functions: should create for custom functions ok 175 Rule: createRule: should create a composite rule ok 176 Rule: createRule: should create a not pattern ok 177 Rule: createRule: should create a or pattern ok 178 Rule: createRule: should include reference store in constraints ok 179 Rule: createRule: should should include from constraints ok 180 Rule: createRule: should should include from constraints ok 181 Rule: createRule: should should include exists constraints # tests 181 # pass 181 # fail 0
1..181 ok 1 constraint matcher: match: should check equality ok 2 constraint matcher: match: should check inequality ok 3 constraint matcher: match: should check gt operator ok 4 constraint matcher: match: should check lt operator ok 5 constraint matcher: match: should check gte operator ok 6 constraint matcher: match: should check lte operator ok 7 constraint matcher: match: should check lte operator ok 8 constraint matcher: match: should check like operator ok 9 constraint matcher: match: should check notLike operator ok 10 constraint matcher: match: should check and operator ok 11 constraint matcher: match: should check or operator ok 12 constraint matcher: match: should check with member operator ok 13 constraint matcher: match: should check with in operator ok 14 constraint matcher: match: should check with notIn operator ok 15 constraint matcher: match: should allow properties with in ok 16 constraint matcher: match: should check with boolean associativity ok 17 constraint matcher: match: should check with nested properties ok 18 constraint matcher: match: should check with function ok 19 constraint matcher: match: should check with functions and identifier args ok 20 constraint matcher: match: should check with functions in a deep property chain and identifier args ok 21 constraint matcher: match: should check with functions in a deep property chain that returns an object and identifier args ok 22 constraint matcher: match: should have date helpers ok 23 constraint matcher: match: should create have type helpers ok 24 constraint matcher: match: should check truthy statements ok 25 constraint matcher: toConstraints: should create for expressions ok 26 constraint matcher: toConstraints: should create correct pattern depending on scope ok 27 constraint matcher: toJs: should create js equvalent expression ok 28 constraint matcher: getIdentifiers: should create the correct atoms for and expressions ok 29 constraint matcher: equals: should return true when equal ok 30 constraint matcher: equals: should return false when not equal ok 31 constraint matcher: .getIndexableProperties: should get properties with no functions ok 32 constraint matcher: .getIndexableProperties: should not get non indexable constraints ok 33 constraint matcher: .getIndexableProperties: should not get properties with functions ok 34 agenda-groups: should only fire events in focused group ok 35 agenda-groups: should should treat focus like a stack ok 36 auto-focus: should activate agenda groups in proper order ok 37 async actions: should fire all rules ok 38 events: should emit when facts are asserted ok 39 events: should emit when facts are retracted ok 40 events: should emit when facts are modified ok 41 events: should emit when rules are fired ok 42 exists rule: fact assertion: should only activate once ok 43 exists rule: fact assertion: should not activate once if the fact does not exists ok 44 exists rule: fact retraction: should should handle fact retractions properly ok 45 exists rule: fact modification: should should handle fact modification properly ok 46 exists rule: with from modifier: assert: should should handle fact assertion properly ok 47 exists rule: with from modifier: retract: should should handle fact retraction properly ok 48 exists rule: with from modifier: modify: should should handle fact modification properly ok 49 from condition: with non array properties: should create the proper match contexts ok 50 from condition: with non array properties: should propagate modified facts properly ok 51 from condition: with non array properties: should retract facts properly ok 52 from condition: with js source: should create the proper match contexts ok 53 from condition: with js source: should propagate modified facts properly ok 54 from condition: with array properties: should create all cross product matches ok 55 from condition: with array properties: should retract all cross product matches ok 56 from condition: with not node: should only fullfill if all facts evaluate to false ok 57 from condition: with not node: should only fullfill if all facts evaluate to false ok 58 matchUntilHalt: should match until halt is called ok 59 not rule: with a single fact: should call when a string that does not equal 'hello' ok 60 not rule: with a single fact: should not call when a string that does equal 'hello' ok 61 not rule: with a single fact: should not call when a string that does equal 'hello' and one that does not ok 62 not rule: with multiple facts: should fire rules in order ok 63 not rule: modifying facts: should handle modifications ok 64 or rule: or rule with two conditions of the same type: should should match if one constraints matches ok 65 or rule: or rule with two conditions of the same type: should not call when a a constraint does not match ok 66 or rule: or rule with three conditions: should should match if one constraints matches ok 67 or rule: or rule with three conditions: should not call when none constraints match ok 68 or rule: or rule with different types: should should match if one constraints matches ok 69 or rule: or rule with different types: should not call when none constraints match ok 70 or rule: or with not conditions: should activate for each fact that does not exist ok 71 flowrule: should create a rule ok 72 flowrule: should create a rule with joins properly ok 73 flowrule: should create a rules that are dependent on eachother properly ok 74 salience: should activate in the proper order ok 75 scope option: should call when a string equals 'hello' ok 76 scope option: should call when a string equals 'world' ok 77 scope option: should not call when a string that does equal 'hello' or 'world ok 78 simple rule: should call hello world rule ok 79 Flow compiled: not rule: should call when a string that does not equal 'hello' ok 80 Flow compiled: not rule: should not call when a string that does equal 'hello' ok 81 Flow compiled: not rule: should not call when a string that does equal 'hello' and one that does not ok 82 Flow compiled: or rule: should call when a string equals 'hello' ok 83 Flow compiled: or rule: or rule with not conditions: should activate for each fact that does not exist ok 84 Flow compiled: scoped functions: should call the scoped function ok 85 Flow compiled: events: should emit when facts are asserted ok 86 Flow compiled: events: should emit when facts are retracted ok 87 Flow compiled: events: should emit when facts are modified ok 88 Flow compiled: events: should emit when rules are fired ok 89 Flow compiled: agenda-groups: should only fire events in focused group ok 90 Flow compiled: agenda-groups: should should treat focus like a stack ok 91 Flow compiled: auto-focus: should activate agenda groups in proper order ok 92 Flow compiled: fibonacci nools dsl: should calculate fibonacci 3 ok 93 Flow compiled: fibonacci nools dsl: should calculate fibonacci 4 ok 94 Flow compiled: fibonacci nools dsl: should calculate fibonacci 5 ok 95 Flow compiled: fibonacci nools dsl: should calculate fibonacci 6 ok 96 Flow compiled: diagnosis using dsl: should treat properly ok 97 nools dsl parser: define: should parse a define statement ok 98 nools dsl parser: define: should throw an error when the define block is missing a name ok 99 nools dsl parser: define: should throw an error for invalid define blocks ok 100 nools dsl parser: define: should throw an error when the global statement is missing a name ok 101 nools dsl parser: define: should throw an error when the global statement is missing a ; ok 102 nools dsl parser: global: should parse a require call statement ok 103 nools dsl parser: global: should parse a require with a '.' character that is not a relative path ok 104 nools dsl parser: global: should resolve relative require paths ok 105 nools dsl parser: global: should parse a member look up ok 106 nools dsl parser: global: should parse a strings ok 107 nools dsl parser: global: should parse a boolean ok 108 nools dsl parser: global: should parse numbers ok 109 nools dsl parser: global: should parse a new instantiation ok 110 nools dsl parser: function: should parse a function statement ok 111 nools dsl parser: function: should throw an error when the function block is missing a name ok 112 nools dsl parser: function: should throw an error for invalid define blocks ok 113 nools dsl parser: rule: should parse rules ok 114 nools dsl parser: rule: should throw an error for invalid rule blocks ok 115 nools dsl parser: rule: should throw an error for a missing name ok 116 nools dsl parser: rule: should parse not conditions ok 117 nools dsl parser: rule: should parse or conditions ok 118 nools dsl parser: rule: should parse when clause with hash and constraints in any order ok 119 nools dsl parser: rule: should parse when clause with from ok 120 nools dsl parser: rule: should parse rules with a string name in double quotes ok 121 nools dsl parser: rule: should parse rules with a string name in single quotes ok 122 nools dsl parser: rule: should parse rules with a string name with inner strings ok 123 nools dsl parser: rule: salience/priority: should parse rules with a salience ok 124 nools dsl parser: rule: salience/priority: should parse rules with a priority ok 125 nools dsl parser: rule: salience/priority: should parse rules with a salience with a ; ok 126 nools dsl parser: rule: salience/priority: should parse rules with a priority with a ; ok 127 nools dsl parser: rule: salience/priority: should throw an error if the salience is not a number ok 128 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' ok 129 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agendaGroup' ok 130 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in '"' ok 131 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in "'" ok 132 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as true ok 133 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as false ok 134 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as true ok 135 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as false ok 136 nools dsl parser: rule: rules with auto-focus/autoFocus: should throw errors for values other than true or false ok 137 nools dsl parser: rule: should throw an error for invalid when clauses ok 138 nools dsl parser: rule: should throw an error for invalid then clauses ok 139 nools dsl parser: rule: should parse rules with exists clause ok 140 A Parser: should parse valid string expressions ok 141 A Parser: should parse regexps and not be greedy ok 142 A Parser: should parse valid string expressions with functions ok 143 A Parser: should parse valid string expressions with property access ok 144 A Parser: should parse valid string expressions with boolean operators ok 145 A Parser: should handle operator associativity properly ok 146 A Parser: should parse arrays ok 147 A Parser: should parse the in operator ok 148 A Parser: should parse the notIn operator ok 149 A Parser: should parse truthy statements ok 150 Rule: createRule: with strings: should create for string ok 151 Rule: createRule: with strings: should create for String ok 152 Rule: createRule: with strings: should create for number ok 153 Rule: createRule: with strings: should create for Number ok 154 Rule: createRule: with strings: should create for date ok 155 Rule: createRule: with strings: should create for Date ok 156 Rule: createRule: with strings: should create for array ok 157 Rule: createRule: with strings: should create for Array ok 158 Rule: createRule: with strings: should create for boolean ok 159 Rule: createRule: with strings: should create for Boolean ok 160 Rule: createRule: with strings: should create for regexp ok 161 Rule: createRule: with strings: should create for Regexp ok 162 Rule: createRule: with strings: should create for object ok 163 Rule: createRule: with strings: should create for Object ok 164 Rule: createRule: with strings: should create for hash ok 165 Rule: createRule: with strings: should create for Hash ok 166 Rule: createRule: with functions: should create for String function ok 167 Rule: createRule: with functions: should create for Number function ok 168 Rule: createRule: with functions: should create for Date function ok 169 Rule: createRule: with functions: should create for [] ok 170 Rule: createRule: with functions: should create for Array function ok 171 Rule: createRule: with functions: should create for Boolean function ok 172 Rule: createRule: with functions: should create for RegExp function ok 173 Rule: createRule: with functions: should create for Object function ok 174 Rule: createRule: with functions: should create for custom functions ok 175 Rule: createRule: should create a composite rule ok 176 Rule: createRule: should create a not pattern ok 177 Rule: createRule: should create a or pattern ok 178 Rule: createRule: should include reference store in constraints ok 179 Rule: createRule: should should include from constraints ok 180 Rule: createRule: should should include from constraints ok 181 Rule: createRule: should should include exists constraints # tests 181 # pass 181 # fail 0
1..181 ok 1 constraint matcher: match: should check equality ok 2 constraint matcher: match: should check inequality ok 3 constraint matcher: match: should check gt operator ok 4 constraint matcher: match: should check lt operator ok 5 constraint matcher: match: should check gte operator ok 6 constraint matcher: match: should check lte operator ok 7 constraint matcher: match: should check lte operator ok 8 constraint matcher: match: should check like operator ok 9 constraint matcher: match: should check notLike operator ok 10 constraint matcher: match: should check and operator ok 11 constraint matcher: match: should check or operator ok 12 constraint matcher: match: should check with member operator ok 13 constraint matcher: match: should check with in operator ok 14 constraint matcher: match: should check with notIn operator ok 15 constraint matcher: match: should allow properties with in ok 16 constraint matcher: match: should check with boolean associativity ok 17 constraint matcher: match: should check with nested properties ok 18 constraint matcher: match: should check with function ok 19 constraint matcher: match: should check with functions and identifier args ok 20 constraint matcher: match: should check with functions in a deep property chain and identifier args ok 21 constraint matcher: match: should check with functions in a deep property chain that returns an object and identifier args ok 22 constraint matcher: match: should have date helpers ok 23 constraint matcher: match: should create have type helpers ok 24 constraint matcher: match: should check truthy statements ok 25 constraint matcher: toConstraints: should create for expressions ok 26 constraint matcher: toConstraints: should create correct pattern depending on scope ok 27 constraint matcher: toJs: should create js equvalent expression ok 28 constraint matcher: getIdentifiers: should create the correct atoms for and expressions ok 29 constraint matcher: equals: should return true when equal ok 30 constraint matcher: equals: should return false when not equal ok 31 constraint matcher: .getIndexableProperties: should get properties with no functions ok 32 constraint matcher: .getIndexableProperties: should not get non indexable constraints ok 33 constraint matcher: .getIndexableProperties: should not get properties with functions ok 34 agenda-groups: should only fire events in focused group ok 35 agenda-groups: should should treat focus like a stack ok 36 auto-focus: should activate agenda groups in proper order ok 37 async actions: should fire all rules ok 38 events: should emit when facts are asserted ok 39 events: should emit when facts are retracted ok 40 events: should emit when facts are modified ok 41 events: should emit when rules are fired ok 42 exists rule: fact assertion: should only activate once ok 43 exists rule: fact assertion: should not activate once if the fact does not exists ok 44 exists rule: fact retraction: should should handle fact retractions properly ok 45 exists rule: fact modification: should should handle fact modification properly ok 46 exists rule: with from modifier: assert: should should handle fact assertion properly ok 47 exists rule: with from modifier: retract: should should handle fact retraction properly ok 48 exists rule: with from modifier: modify: should should handle fact modification properly ok 49 from condition: with non array properties: should create the proper match contexts ok 50 from condition: with non array properties: should propagate modified facts properly ok 51 from condition: with non array properties: should retract facts properly ok 52 from condition: with js source: should create the proper match contexts ok 53 from condition: with js source: should propagate modified facts properly ok 54 from condition: with array properties: should create all cross product matches ok 55 from condition: with array properties: should retract all cross product matches ok 56 from condition: with not node: should only fullfill if all facts evaluate to false ok 57 from condition: with not node: should only fullfill if all facts evaluate to false ok 58 matchUntilHalt: should match until halt is called ok 59 not rule: with a single fact: should call when a string that does not equal 'hello' ok 60 not rule: with a single fact: should not call when a string that does equal 'hello' ok 61 not rule: with a single fact: should not call when a string that does equal 'hello' and one that does not ok 62 not rule: with multiple facts: should fire rules in order ok 63 not rule: modifying facts: should handle modifications ok 64 or rule: or rule with two conditions of the same type: should should match if one constraints matches ok 65 or rule: or rule with two conditions of the same type: should not call when a a constraint does not match ok 66 or rule: or rule with three conditions: should should match if one constraints matches ok 67 or rule: or rule with three conditions: should not call when none constraints match ok 68 or rule: or rule with different types: should should match if one constraints matches ok 69 or rule: or rule with different types: should not call when none constraints match ok 70 or rule: or with not conditions: should activate for each fact that does not exist ok 71 flowrule: should create a rule ok 72 flowrule: should create a rule with joins properly ok 73 flowrule: should create a rules that are dependent on eachother properly ok 74 salience: should activate in the proper order ok 75 scope option: should call when a string equals 'hello' ok 76 scope option: should call when a string equals 'world' ok 77 scope option: should not call when a string that does equal 'hello' or 'world ok 78 simple rule: should call hello world rule ok 79 Flow compiled: not rule: should call when a string that does not equal 'hello' ok 80 Flow compiled: not rule: should not call when a string that does equal 'hello' ok 81 Flow compiled: not rule: should not call when a string that does equal 'hello' and one that does not ok 82 Flow compiled: or rule: should call when a string equals 'hello' ok 83 Flow compiled: or rule: or rule with not conditions: should activate for each fact that does not exist ok 84 Flow compiled: scoped functions: should call the scoped function ok 85 Flow compiled: events: should emit when facts are asserted ok 86 Flow compiled: events: should emit when facts are retracted ok 87 Flow compiled: events: should emit when facts are modified ok 88 Flow compiled: events: should emit when rules are fired ok 89 Flow compiled: agenda-groups: should only fire events in focused group ok 90 Flow compiled: agenda-groups: should should treat focus like a stack ok 91 Flow compiled: auto-focus: should activate agenda groups in proper order ok 92 Flow compiled: fibonacci nools dsl: should calculate fibonacci 3 ok 93 Flow compiled: fibonacci nools dsl: should calculate fibonacci 4 ok 94 Flow compiled: fibonacci nools dsl: should calculate fibonacci 5 ok 95 Flow compiled: fibonacci nools dsl: should calculate fibonacci 6 ok 96 Flow compiled: diagnosis using dsl: should treat properly ok 97 nools dsl parser: define: should parse a define statement ok 98 nools dsl parser: define: should throw an error when the define block is missing a name ok 99 nools dsl parser: define: should throw an error for invalid define blocks ok 100 nools dsl parser: define: should throw an error when the global statement is missing a name ok 101 nools dsl parser: define: should throw an error when the global statement is missing a ; ok 102 nools dsl parser: global: should parse a require call statement ok 103 nools dsl parser: global: should parse a require with a '.' character that is not a relative path ok 104 nools dsl parser: global: should resolve relative require paths ok 105 nools dsl parser: global: should parse a member look up ok 106 nools dsl parser: global: should parse a strings ok 107 nools dsl parser: global: should parse a boolean ok 108 nools dsl parser: global: should parse numbers ok 109 nools dsl parser: global: should parse a new instantiation ok 110 nools dsl parser: function: should parse a function statement ok 111 nools dsl parser: function: should throw an error when the function block is missing a name ok 112 nools dsl parser: function: should throw an error for invalid define blocks ok 113 nools dsl parser: rule: should parse rules ok 114 nools dsl parser: rule: should throw an error for invalid rule blocks ok 115 nools dsl parser: rule: should throw an error for a missing name ok 116 nools dsl parser: rule: should parse not conditions ok 117 nools dsl parser: rule: should parse or conditions ok 118 nools dsl parser: rule: should parse when clause with hash and constraints in any order ok 119 nools dsl parser: rule: should parse when clause with from ok 120 nools dsl parser: rule: should parse rules with a string name in double quotes ok 121 nools dsl parser: rule: should parse rules with a string name in single quotes ok 122 nools dsl parser: rule: should parse rules with a string name with inner strings ok 123 nools dsl parser: rule: salience/priority: should parse rules with a salience ok 124 nools dsl parser: rule: salience/priority: should parse rules with a priority ok 125 nools dsl parser: rule: salience/priority: should parse rules with a salience with a ; ok 126 nools dsl parser: rule: salience/priority: should parse rules with a priority with a ; ok 127 nools dsl parser: rule: salience/priority: should throw an error if the salience is not a number ok 128 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' ok 129 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agendaGroup' ok 130 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in '"' ok 131 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in "'" ok 132 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as true ok 133 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as false ok 134 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as true ok 135 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as false ok 136 nools dsl parser: rule: rules with auto-focus/autoFocus: should throw errors for values other than true or false ok 137 nools dsl parser: rule: should throw an error for invalid when clauses ok 138 nools dsl parser: rule: should throw an error for invalid then clauses ok 139 nools dsl parser: rule: should parse rules with exists clause ok 140 A Parser: should parse valid string expressions ok 141 A Parser: should parse regexps and not be greedy ok 142 A Parser: should parse valid string expressions with functions ok 143 A Parser: should parse valid string expressions with property access ok 144 A Parser: should parse valid string expressions with boolean operators ok 145 A Parser: should handle operator associativity properly ok 146 A Parser: should parse arrays ok 147 A Parser: should parse the in operator ok 148 A Parser: should parse the notIn operator ok 149 A Parser: should parse truthy statements ok 150 Rule: createRule: with strings: should create for string ok 151 Rule: createRule: with strings: should create for String ok 152 Rule: createRule: with strings: should create for number ok 153 Rule: createRule: with strings: should create for Number ok 154 Rule: createRule: with strings: should create for date ok 155 Rule: createRule: with strings: should create for Date ok 156 Rule: createRule: with strings: should create for array ok 157 Rule: createRule: with strings: should create for Array ok 158 Rule: createRule: with strings: should create for boolean ok 159 Rule: createRule: with strings: should create for Boolean ok 160 Rule: createRule: with strings: should create for regexp ok 161 Rule: createRule: with strings: should create for Regexp ok 162 Rule: createRule: with strings: should create for object ok 163 Rule: createRule: with strings: should create for Object ok 164 Rule: createRule: with strings: should create for hash ok 165 Rule: createRule: with strings: should create for Hash ok 166 Rule: createRule: with functions: should create for String function ok 167 Rule: createRule: with functions: should create for Number function ok 168 Rule: createRule: with functions: should create for Date function ok 169 Rule: createRule: with functions: should create for [] ok 170 Rule: createRule: with functions: should create for Array function ok 171 Rule: createRule: with functions: should create for Boolean function ok 172 Rule: createRule: with functions: should create for RegExp function ok 173 Rule: createRule: with functions: should create for Object function ok 174 Rule: createRule: with functions: should create for custom functions ok 175 Rule: createRule: should create a composite rule ok 176 Rule: createRule: should create a not pattern ok 177 Rule: createRule: should create a or pattern ok 178 Rule: createRule: should include reference store in constraints ok 179 Rule: createRule: should should include from constraints ok 180 Rule: createRule: should should include from constraints ok 181 Rule: createRule: should should include exists constraints # tests 181 # pass 181 # fail 0
1..181 ok 1 constraint matcher: match: should check equality ok 2 constraint matcher: match: should check inequality ok 3 constraint matcher: match: should check gt operator ok 4 constraint matcher: match: should check lt operator ok 5 constraint matcher: match: should check gte operator ok 6 constraint matcher: match: should check lte operator ok 7 constraint matcher: match: should check lte operator ok 8 constraint matcher: match: should check like operator ok 9 constraint matcher: match: should check notLike operator ok 10 constraint matcher: match: should check and operator ok 11 constraint matcher: match: should check or operator ok 12 constraint matcher: match: should check with member operator ok 13 constraint matcher: match: should check with in operator ok 14 constraint matcher: match: should check with notIn operator ok 15 constraint matcher: match: should allow properties with in ok 16 constraint matcher: match: should check with boolean associativity ok 17 constraint matcher: match: should check with nested properties ok 18 constraint matcher: match: should check with function ok 19 constraint matcher: match: should check with functions and identifier args ok 20 constraint matcher: match: should check with functions in a deep property chain and identifier args ok 21 constraint matcher: match: should check with functions in a deep property chain that returns an object and identifier args ok 22 constraint matcher: match: should have date helpers ok 23 constraint matcher: match: should create have type helpers ok 24 constraint matcher: match: should check truthy statements ok 25 constraint matcher: toConstraints: should create for expressions ok 26 constraint matcher: toConstraints: should create correct pattern depending on scope ok 27 constraint matcher: toJs: should create js equvalent expression ok 28 constraint matcher: getIdentifiers: should create the correct atoms for and expressions ok 29 constraint matcher: equals: should return true when equal ok 30 constraint matcher: equals: should return false when not equal ok 31 constraint matcher: .getIndexableProperties: should get properties with no functions ok 32 constraint matcher: .getIndexableProperties: should not get non indexable constraints ok 33 constraint matcher: .getIndexableProperties: should not get properties with functions ok 34 agenda-groups: should only fire events in focused group ok 35 agenda-groups: should should treat focus like a stack ok 36 auto-focus: should activate agenda groups in proper order ok 37 async actions: should fire all rules ok 38 events: should emit when facts are asserted ok 39 events: should emit when facts are retracted ok 40 events: should emit when facts are modified ok 41 events: should emit when rules are fired ok 42 exists rule: fact assertion: should only activate once ok 43 exists rule: fact assertion: should not activate once if the fact does not exists ok 44 exists rule: fact retraction: should should handle fact retractions properly ok 45 exists rule: fact modification: should should handle fact modification properly ok 46 exists rule: with from modifier: assert: should should handle fact assertion properly ok 47 exists rule: with from modifier: retract: should should handle fact retraction properly ok 48 exists rule: with from modifier: modify: should should handle fact modification properly ok 49 from condition: with non array properties: should create the proper match contexts ok 50 from condition: with non array properties: should propagate modified facts properly ok 51 from condition: with non array properties: should retract facts properly ok 52 from condition: with js source: should create the proper match contexts ok 53 from condition: with js source: should propagate modified facts properly ok 54 from condition: with array properties: should create all cross product matches ok 55 from condition: with array properties: should retract all cross product matches ok 56 from condition: with not node: should only fullfill if all facts evaluate to false ok 57 from condition: with not node: should only fullfill if all facts evaluate to false ok 58 matchUntilHalt: should match until halt is called ok 59 not rule: with a single fact: should call when a string that does not equal 'hello' ok 60 not rule: with a single fact: should not call when a string that does equal 'hello' ok 61 not rule: with a single fact: should not call when a string that does equal 'hello' and one that does not ok 62 not rule: with multiple facts: should fire rules in order ok 63 not rule: modifying facts: should handle modifications ok 64 or rule: or rule with two conditions of the same type: should should match if one constraints matches ok 65 or rule: or rule with two conditions of the same type: should not call when a a constraint does not match ok 66 or rule: or rule with three conditions: should should match if one constraints matches ok 67 or rule: or rule with three conditions: should not call when none constraints match ok 68 or rule: or rule with different types: should should match if one constraints matches ok 69 or rule: or rule with different types: should not call when none constraints match ok 70 or rule: or with not conditions: should activate for each fact that does not exist ok 71 flowrule: should create a rule ok 72 flowrule: should create a rule with joins properly ok 73 flowrule: should create a rules that are dependent on eachother properly ok 74 salience: should activate in the proper order ok 75 scope option: should call when a string equals 'hello' ok 76 scope option: should call when a string equals 'world' ok 77 scope option: should not call when a string that does equal 'hello' or 'world ok 78 simple rule: should call hello world rule ok 79 Flow compiled: not rule: should call when a string that does not equal 'hello' ok 80 Flow compiled: not rule: should not call when a string that does equal 'hello' ok 81 Flow compiled: not rule: should not call when a string that does equal 'hello' and one that does not ok 82 Flow compiled: or rule: should call when a string equals 'hello' ok 83 Flow compiled: or rule: or rule with not conditions: should activate for each fact that does not exist ok 84 Flow compiled: scoped functions: should call the scoped function ok 85 Flow compiled: events: should emit when facts are asserted ok 86 Flow compiled: events: should emit when facts are retracted ok 87 Flow compiled: events: should emit when facts are modified ok 88 Flow compiled: events: should emit when rules are fired ok 89 Flow compiled: agenda-groups: should only fire events in focused group ok 90 Flow compiled: agenda-groups: should should treat focus like a stack ok 91 Flow compiled: auto-focus: should activate agenda groups in proper order ok 92 Flow compiled: fibonacci nools dsl: should calculate fibonacci 3 ok 93 Flow compiled: fibonacci nools dsl: should calculate fibonacci 4 ok 94 Flow compiled: fibonacci nools dsl: should calculate fibonacci 5 ok 95 Flow compiled: fibonacci nools dsl: should calculate fibonacci 6 ok 96 Flow compiled: diagnosis using dsl: should treat properly ok 97 nools dsl parser: define: should parse a define statement ok 98 nools dsl parser: define: should throw an error when the define block is missing a name ok 99 nools dsl parser: define: should throw an error for invalid define blocks ok 100 nools dsl parser: define: should throw an error when the global statement is missing a name ok 101 nools dsl parser: define: should throw an error when the global statement is missing a ; ok 102 nools dsl parser: global: should parse a require call statement ok 103 nools dsl parser: global: should parse a require with a '.' character that is not a relative path ok 104 nools dsl parser: global: should resolve relative require paths ok 105 nools dsl parser: global: should parse a member look up ok 106 nools dsl parser: global: should parse a strings ok 107 nools dsl parser: global: should parse a boolean ok 108 nools dsl parser: global: should parse numbers ok 109 nools dsl parser: global: should parse a new instantiation ok 110 nools dsl parser: function: should parse a function statement ok 111 nools dsl parser: function: should throw an error when the function block is missing a name ok 112 nools dsl parser: function: should throw an error for invalid define blocks ok 113 nools dsl parser: rule: should parse rules ok 114 nools dsl parser: rule: should throw an error for invalid rule blocks ok 115 nools dsl parser: rule: should throw an error for a missing name ok 116 nools dsl parser: rule: should parse not conditions ok 117 nools dsl parser: rule: should parse or conditions ok 118 nools dsl parser: rule: should parse when clause with hash and constraints in any order ok 119 nools dsl parser: rule: should parse when clause with from ok 120 nools dsl parser: rule: should parse rules with a string name in double quotes ok 121 nools dsl parser: rule: should parse rules with a string name in single quotes ok 122 nools dsl parser: rule: should parse rules with a string name with inner strings ok 123 nools dsl parser: rule: salience/priority: should parse rules with a salience ok 124 nools dsl parser: rule: salience/priority: should parse rules with a priority ok 125 nools dsl parser: rule: salience/priority: should parse rules with a salience with a ; ok 126 nools dsl parser: rule: salience/priority: should parse rules with a priority with a ; ok 127 nools dsl parser: rule: salience/priority: should throw an error if the salience is not a number ok 128 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' ok 129 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agendaGroup' ok 130 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in '"' ok 131 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in "'" ok 132 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as true ok 133 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as false ok 134 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as true ok 135 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as false ok 136 nools dsl parser: rule: rules with auto-focus/autoFocus: should throw errors for values other than true or false ok 137 nools dsl parser: rule: should throw an error for invalid when clauses ok 138 nools dsl parser: rule: should throw an error for invalid then clauses ok 139 nools dsl parser: rule: should parse rules with exists clause ok 140 A Parser: should parse valid string expressions ok 141 A Parser: should parse regexps and not be greedy ok 142 A Parser: should parse valid string expressions with functions ok 143 A Parser: should parse valid string expressions with property access ok 144 A Parser: should parse valid string expressions with boolean operators ok 145 A Parser: should handle operator associativity properly ok 146 A Parser: should parse arrays ok 147 A Parser: should parse the in operator ok 148 A Parser: should parse the notIn operator ok 149 A Parser: should parse truthy statements ok 150 Rule: createRule: with strings: should create for string ok 151 Rule: createRule: with strings: should create for String ok 152 Rule: createRule: with strings: should create for number ok 153 Rule: createRule: with strings: should create for Number ok 154 Rule: createRule: with strings: should create for date ok 155 Rule: createRule: with strings: should create for Date ok 156 Rule: createRule: with strings: should create for array ok 157 Rule: createRule: with strings: should create for Array ok 158 Rule: createRule: with strings: should create for boolean ok 159 Rule: createRule: with strings: should create for Boolean ok 160 Rule: createRule: with strings: should create for regexp ok 161 Rule: createRule: with strings: should create for Regexp ok 162 Rule: createRule: with strings: should create for object ok 163 Rule: createRule: with strings: should create for Object ok 164 Rule: createRule: with strings: should create for hash ok 165 Rule: createRule: with strings: should create for Hash ok 166 Rule: createRule: with functions: should create for String function ok 167 Rule: createRule: with functions: should create for Number function ok 168 Rule: createRule: with functions: should create for Date function ok 169 Rule: createRule: with functions: should create for [] ok 170 Rule: createRule: with functions: should create for Array function ok 171 Rule: createRule: with functions: should create for Boolean function ok 172 Rule: createRule: with functions: should create for RegExp function ok 173 Rule: createRule: with functions: should create for Object function ok 174 Rule: createRule: with functions: should create for custom functions ok 175 Rule: createRule: should create a composite rule ok 176 Rule: createRule: should create a not pattern ok 177 Rule: createRule: should create a or pattern ok 178 Rule: createRule: should include reference store in constraints ok 179 Rule: createRule: should should include from constraints ok 180 Rule: createRule: should should include from constraints ok 181 Rule: createRule: should should include exists constraints # tests 181 # pass 181 # fail 0
1..181 ok 1 constraint matcher: match: should check equality ok 2 constraint matcher: match: should check inequality ok 3 constraint matcher: match: should check gt operator ok 4 constraint matcher: match: should check lt operator ok 5 constraint matcher: match: should check gte operator ok 6 constraint matcher: match: should check lte operator ok 7 constraint matcher: match: should check lte operator ok 8 constraint matcher: match: should check like operator ok 9 constraint matcher: match: should check notLike operator ok 10 constraint matcher: match: should check and operator ok 11 constraint matcher: match: should check or operator ok 12 constraint matcher: match: should check with member operator ok 13 constraint matcher: match: should check with in operator ok 14 constraint matcher: match: should check with notIn operator ok 15 constraint matcher: match: should allow properties with in ok 16 constraint matcher: match: should check with boolean associativity ok 17 constraint matcher: match: should check with nested properties ok 18 constraint matcher: match: should check with function ok 19 constraint matcher: match: should check with functions and identifier args ok 20 constraint matcher: match: should check with functions in a deep property chain and identifier args ok 21 constraint matcher: match: should check with functions in a deep property chain that returns an object and identifier args ok 22 constraint matcher: match: should have date helpers ok 23 constraint matcher: match: should create have type helpers ok 24 constraint matcher: match: should check truthy statements ok 25 constraint matcher: toConstraints: should create for expressions ok 26 constraint matcher: toConstraints: should create correct pattern depending on scope ok 27 constraint matcher: toJs: should create js equvalent expression ok 28 constraint matcher: getIdentifiers: should create the correct atoms for and expressions ok 29 constraint matcher: equals: should return true when equal ok 30 constraint matcher: equals: should return false when not equal ok 31 constraint matcher: .getIndexableProperties: should get properties with no functions ok 32 constraint matcher: .getIndexableProperties: should not get non indexable constraints ok 33 constraint matcher: .getIndexableProperties: should not get properties with functions ok 34 agenda-groups: should only fire events in focused group ok 35 agenda-groups: should should treat focus like a stack ok 36 auto-focus: should activate agenda groups in proper order ok 37 async actions: should fire all rules ok 38 events: should emit when facts are asserted ok 39 events: should emit when facts are retracted ok 40 events: should emit when facts are modified ok 41 events: should emit when rules are fired ok 42 exists rule: fact assertion: should only activate once ok 43 exists rule: fact assertion: should not activate once if the fact does not exists ok 44 exists rule: fact retraction: should should handle fact retractions properly ok 45 exists rule: fact modification: should should handle fact modification properly ok 46 exists rule: with from modifier: assert: should should handle fact assertion properly ok 47 exists rule: with from modifier: retract: should should handle fact retraction properly ok 48 exists rule: with from modifier: modify: should should handle fact modification properly ok 49 from condition: with non array properties: should create the proper match contexts ok 50 from condition: with non array properties: should propagate modified facts properly ok 51 from condition: with non array properties: should retract facts properly ok 52 from condition: with js source: should create the proper match contexts ok 53 from condition: with js source: should propagate modified facts properly ok 54 from condition: with array properties: should create all cross product matches ok 55 from condition: with array properties: should retract all cross product matches ok 56 from condition: with not node: should only fullfill if all facts evaluate to false ok 57 from condition: with not node: should only fullfill if all facts evaluate to false ok 58 matchUntilHalt: should match until halt is called ok 59 not rule: with a single fact: should call when a string that does not equal 'hello' ok 60 not rule: with a single fact: should not call when a string that does equal 'hello' ok 61 not rule: with a single fact: should not call when a string that does equal 'hello' and one that does not ok 62 not rule: with multiple facts: should fire rules in order ok 63 not rule: modifying facts: should handle modifications ok 64 or rule: or rule with two conditions of the same type: should should match if one constraints matches ok 65 or rule: or rule with two conditions of the same type: should not call when a a constraint does not match ok 66 or rule: or rule with three conditions: should should match if one constraints matches ok 67 or rule: or rule with three conditions: should not call when none constraints match ok 68 or rule: or rule with different types: should should match if one constraints matches ok 69 or rule: or rule with different types: should not call when none constraints match ok 70 or rule: or with not conditions: should activate for each fact that does not exist ok 71 flowrule: should create a rule ok 72 flowrule: should create a rule with joins properly ok 73 flowrule: should create a rules that are dependent on eachother properly ok 74 salience: should activate in the proper order ok 75 scope option: should call when a string equals 'hello' ok 76 scope option: should call when a string equals 'world' ok 77 scope option: should not call when a string that does equal 'hello' or 'world ok 78 simple rule: should call hello world rule ok 79 Flow compiled: not rule: should call when a string that does not equal 'hello' ok 80 Flow compiled: not rule: should not call when a string that does equal 'hello' ok 81 Flow compiled: not rule: should not call when a string that does equal 'hello' and one that does not ok 82 Flow compiled: or rule: should call when a string equals 'hello' ok 83 Flow compiled: or rule: or rule with not conditions: should activate for each fact that does not exist ok 84 Flow compiled: scoped functions: should call the scoped function ok 85 Flow compiled: events: should emit when facts are asserted ok 86 Flow compiled: events: should emit when facts are retracted ok 87 Flow compiled: events: should emit when facts are modified ok 88 Flow compiled: events: should emit when rules are fired ok 89 Flow compiled: agenda-groups: should only fire events in focused group ok 90 Flow compiled: agenda-groups: should should treat focus like a stack ok 91 Flow compiled: auto-focus: should activate agenda groups in proper order ok 92 Flow compiled: fibonacci nools dsl: should calculate fibonacci 3 ok 93 Flow compiled: fibonacci nools dsl: should calculate fibonacci 4 ok 94 Flow compiled: fibonacci nools dsl: should calculate fibonacci 5 ok 95 Flow compiled: fibonacci nools dsl: should calculate fibonacci 6 ok 96 Flow compiled: diagnosis using dsl: should treat properly ok 97 nools dsl parser: define: should parse a define statement ok 98 nools dsl parser: define: should throw an error when the define block is missing a name ok 99 nools dsl parser: define: should throw an error for invalid define blocks ok 100 nools dsl parser: define: should throw an error when the global statement is missing a name ok 101 nools dsl parser: define: should throw an error when the global statement is missing a ; ok 102 nools dsl parser: global: should parse a require call statement ok 103 nools dsl parser: global: should parse a require with a '.' character that is not a relative path ok 104 nools dsl parser: global: should resolve relative require paths ok 105 nools dsl parser: global: should parse a member look up ok 106 nools dsl parser: global: should parse a strings ok 107 nools dsl parser: global: should parse a boolean ok 108 nools dsl parser: global: should parse numbers ok 109 nools dsl parser: global: should parse a new instantiation ok 110 nools dsl parser: function: should parse a function statement ok 111 nools dsl parser: function: should throw an error when the function block is missing a name ok 112 nools dsl parser: function: should throw an error for invalid define blocks ok 113 nools dsl parser: rule: should parse rules ok 114 nools dsl parser: rule: should throw an error for invalid rule blocks ok 115 nools dsl parser: rule: should throw an error for a missing name ok 116 nools dsl parser: rule: should parse not conditions ok 117 nools dsl parser: rule: should parse or conditions ok 118 nools dsl parser: rule: should parse when clause with hash and constraints in any order ok 119 nools dsl parser: rule: should parse when clause with from ok 120 nools dsl parser: rule: should parse rules with a string name in double quotes ok 121 nools dsl parser: rule: should parse rules with a string name in single quotes ok 122 nools dsl parser: rule: should parse rules with a string name with inner strings ok 123 nools dsl parser: rule: salience/priority: should parse rules with a salience ok 124 nools dsl parser: rule: salience/priority: should parse rules with a priority ok 125 nools dsl parser: rule: salience/priority: should parse rules with a salience with a ; ok 126 nools dsl parser: rule: salience/priority: should parse rules with a priority with a ; ok 127 nools dsl parser: rule: salience/priority: should throw an error if the salience is not a number ok 128 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' ok 129 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agendaGroup' ok 130 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in '"' ok 131 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in "'" ok 132 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as true ok 133 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as false ok 134 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as true ok 135 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as false ok 136 nools dsl parser: rule: rules with auto-focus/autoFocus: should throw errors for values other than true or false ok 137 nools dsl parser: rule: should throw an error for invalid when clauses ok 138 nools dsl parser: rule: should throw an error for invalid then clauses ok 139 nools dsl parser: rule: should parse rules with exists clause ok 140 A Parser: should parse valid string expressions ok 141 A Parser: should parse regexps and not be greedy ok 142 A Parser: should parse valid string expressions with functions ok 143 A Parser: should parse valid string expressions with property access ok 144 A Parser: should parse valid string expressions with boolean operators ok 145 A Parser: should handle operator associativity properly ok 146 A Parser: should parse arrays ok 147 A Parser: should parse the in operator ok 148 A Parser: should parse the notIn operator ok 149 A Parser: should parse truthy statements ok 150 Rule: createRule: with strings: should create for string ok 151 Rule: createRule: with strings: should create for String ok 152 Rule: createRule: with strings: should create for number ok 153 Rule: createRule: with strings: should create for Number ok 154 Rule: createRule: with strings: should create for date ok 155 Rule: createRule: with strings: should create for Date ok 156 Rule: createRule: with strings: should create for array ok 157 Rule: createRule: with strings: should create for Array ok 158 Rule: createRule: with strings: should create for boolean ok 159 Rule: createRule: with strings: should create for Boolean ok 160 Rule: createRule: with strings: should create for regexp ok 161 Rule: createRule: with strings: should create for Regexp ok 162 Rule: createRule: with strings: should create for object ok 163 Rule: createRule: with strings: should create for Object ok 164 Rule: createRule: with strings: should create for hash ok 165 Rule: createRule: with strings: should create for Hash ok 166 Rule: createRule: with functions: should create for String function ok 167 Rule: createRule: with functions: should create for Number function ok 168 Rule: createRule: with functions: should create for Date function ok 169 Rule: createRule: with functions: should create for [] ok 170 Rule: createRule: with functions: should create for Array function ok 171 Rule: createRule: with functions: should create for Boolean function ok 172 Rule: createRule: with functions: should create for RegExp function ok 173 Rule: createRule: with functions: should create for Object function ok 174 Rule: createRule: with functions: should create for custom functions ok 175 Rule: createRule: should create a composite rule ok 176 Rule: createRule: should create a not pattern ok 177 Rule: createRule: should create a or pattern ok 178 Rule: createRule: should include reference store in constraints ok 179 Rule: createRule: should should include from constraints ok 180 Rule: createRule: should should include from constraints ok 181 Rule: createRule: should should include exists constraints # tests 181 # pass 181 # fail 0
1..181 ok 1 constraint matcher: match: should check equality ok 2 constraint matcher: match: should check inequality ok 3 constraint matcher: match: should check gt operator ok 4 constraint matcher: match: should check lt operator ok 5 constraint matcher: match: should check gte operator ok 6 constraint matcher: match: should check lte operator ok 7 constraint matcher: match: should check lte operator ok 8 constraint matcher: match: should check like operator ok 9 constraint matcher: match: should check notLike operator ok 10 constraint matcher: match: should check and operator ok 11 constraint matcher: match: should check or operator ok 12 constraint matcher: match: should check with member operator ok 13 constraint matcher: match: should check with in operator ok 14 constraint matcher: match: should check with notIn operator ok 15 constraint matcher: match: should allow properties with in ok 16 constraint matcher: match: should check with boolean associativity ok 17 constraint matcher: match: should check with nested properties ok 18 constraint matcher: match: should check with function ok 19 constraint matcher: match: should check with functions and identifier args ok 20 constraint matcher: match: should check with functions in a deep property chain and identifier args ok 21 constraint matcher: match: should check with functions in a deep property chain that returns an object and identifier args ok 22 constraint matcher: match: should have date helpers ok 23 constraint matcher: match: should create have type helpers ok 24 constraint matcher: match: should check truthy statements ok 25 constraint matcher: toConstraints: should create for expressions ok 26 constraint matcher: toConstraints: should create correct pattern depending on scope ok 27 constraint matcher: toJs: should create js equvalent expression ok 28 constraint matcher: getIdentifiers: should create the correct atoms for and expressions ok 29 constraint matcher: equals: should return true when equal ok 30 constraint matcher: equals: should return false when not equal ok 31 constraint matcher: .getIndexableProperties: should get properties with no functions ok 32 constraint matcher: .getIndexableProperties: should not get non indexable constraints ok 33 constraint matcher: .getIndexableProperties: should not get properties with functions ok 34 agenda-groups: should only fire events in focused group ok 35 agenda-groups: should should treat focus like a stack ok 36 auto-focus: should activate agenda groups in proper order ok 37 async actions: should fire all rules ok 38 events: should emit when facts are asserted ok 39 events: should emit when facts are retracted ok 40 events: should emit when facts are modified ok 41 events: should emit when rules are fired ok 42 exists rule: fact assertion: should only activate once ok 43 exists rule: fact assertion: should not activate once if the fact does not exists ok 44 exists rule: fact retraction: should should handle fact retractions properly ok 45 exists rule: fact modification: should should handle fact modification properly ok 46 exists rule: with from modifier: assert: should should handle fact assertion properly ok 47 exists rule: with from modifier: retract: should should handle fact retraction properly ok 48 exists rule: with from modifier: modify: should should handle fact modification properly ok 49 from condition: with non array properties: should create the proper match contexts ok 50 from condition: with non array properties: should propagate modified facts properly ok 51 from condition: with non array properties: should retract facts properly ok 52 from condition: with js source: should create the proper match contexts ok 53 from condition: with js source: should propagate modified facts properly ok 54 from condition: with array properties: should create all cross product matches ok 55 from condition: with array properties: should retract all cross product matches ok 56 from condition: with not node: should only fullfill if all facts evaluate to false ok 57 from condition: with not node: should only fullfill if all facts evaluate to false ok 58 matchUntilHalt: should match until halt is called ok 59 not rule: with a single fact: should call when a string that does not equal 'hello' ok 60 not rule: with a single fact: should not call when a string that does equal 'hello' ok 61 not rule: with a single fact: should not call when a string that does equal 'hello' and one that does not ok 62 not rule: with multiple facts: should fire rules in order ok 63 not rule: modifying facts: should handle modifications ok 64 or rule: or rule with two conditions of the same type: should should match if one constraints matches ok 65 or rule: or rule with two conditions of the same type: should not call when a a constraint does not match ok 66 or rule: or rule with three conditions: should should match if one constraints matches ok 67 or rule: or rule with three conditions: should not call when none constraints match ok 68 or rule: or rule with different types: should should match if one constraints matches ok 69 or rule: or rule with different types: should not call when none constraints match ok 70 or rule: or with not conditions: should activate for each fact that does not exist ok 71 flowrule: should create a rule ok 72 flowrule: should create a rule with joins properly ok 73 flowrule: should create a rules that are dependent on eachother properly ok 74 salience: should activate in the proper order ok 75 scope option: should call when a string equals 'hello' ok 76 scope option: should call when a string equals 'world' ok 77 scope option: should not call when a string that does equal 'hello' or 'world ok 78 simple rule: should call hello world rule ok 79 Flow compiled: not rule: should call when a string that does not equal 'hello' ok 80 Flow compiled: not rule: should not call when a string that does equal 'hello' ok 81 Flow compiled: not rule: should not call when a string that does equal 'hello' and one that does not ok 82 Flow compiled: or rule: should call when a string equals 'hello' ok 83 Flow compiled: or rule: or rule with not conditions: should activate for each fact that does not exist ok 84 Flow compiled: scoped functions: should call the scoped function ok 85 Flow compiled: events: should emit when facts are asserted ok 86 Flow compiled: events: should emit when facts are retracted ok 87 Flow compiled: events: should emit when facts are modified ok 88 Flow compiled: events: should emit when rules are fired ok 89 Flow compiled: agenda-groups: should only fire events in focused group ok 90 Flow compiled: agenda-groups: should should treat focus like a stack ok 91 Flow compiled: auto-focus: should activate agenda groups in proper order ok 92 Flow compiled: fibonacci nools dsl: should calculate fibonacci 3 ok 93 Flow compiled: fibonacci nools dsl: should calculate fibonacci 4 ok 94 Flow compiled: fibonacci nools dsl: should calculate fibonacci 5 ok 95 Flow compiled: fibonacci nools dsl: should calculate fibonacci 6 ok 96 Flow compiled: diagnosis using dsl: should treat properly ok 97 nools dsl parser: define: should parse a define statement ok 98 nools dsl parser: define: should throw an error when the define block is missing a name ok 99 nools dsl parser: define: should throw an error for invalid define blocks ok 100 nools dsl parser: define: should throw an error when the global statement is missing a name ok 101 nools dsl parser: define: should throw an error when the global statement is missing a ; ok 102 nools dsl parser: global: should parse a require call statement ok 103 nools dsl parser: global: should parse a require with a '.' character that is not a relative path ok 104 nools dsl parser: global: should resolve relative require paths ok 105 nools dsl parser: global: should parse a member look up ok 106 nools dsl parser: global: should parse a strings ok 107 nools dsl parser: global: should parse a boolean ok 108 nools dsl parser: global: should parse numbers ok 109 nools dsl parser: global: should parse a new instantiation ok 110 nools dsl parser: function: should parse a function statement ok 111 nools dsl parser: function: should throw an error when the function block is missing a name ok 112 nools dsl parser: function: should throw an error for invalid define blocks ok 113 nools dsl parser: rule: should parse rules ok 114 nools dsl parser: rule: should throw an error for invalid rule blocks ok 115 nools dsl parser: rule: should throw an error for a missing name ok 116 nools dsl parser: rule: should parse not conditions ok 117 nools dsl parser: rule: should parse or conditions ok 118 nools dsl parser: rule: should parse when clause with hash and constraints in any order ok 119 nools dsl parser: rule: should parse when clause with from ok 120 nools dsl parser: rule: should parse rules with a string name in double quotes ok 121 nools dsl parser: rule: should parse rules with a string name in single quotes ok 122 nools dsl parser: rule: should parse rules with a string name with inner strings ok 123 nools dsl parser: rule: salience/priority: should parse rules with a salience ok 124 nools dsl parser: rule: salience/priority: should parse rules with a priority ok 125 nools dsl parser: rule: salience/priority: should parse rules with a salience with a ; ok 126 nools dsl parser: rule: salience/priority: should parse rules with a priority with a ; ok 127 nools dsl parser: rule: salience/priority: should throw an error if the salience is not a number ok 128 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' ok 129 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agendaGroup' ok 130 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in '"' ok 131 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in "'" ok 132 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as true ok 133 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as false ok 134 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as true ok 135 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as false ok 136 nools dsl parser: rule: rules with auto-focus/autoFocus: should throw errors for values other than true or false ok 137 nools dsl parser: rule: should throw an error for invalid when clauses ok 138 nools dsl parser: rule: should throw an error for invalid then clauses ok 139 nools dsl parser: rule: should parse rules with exists clause ok 140 A Parser: should parse valid string expressions ok 141 A Parser: should parse regexps and not be greedy ok 142 A Parser: should parse valid string expressions with functions ok 143 A Parser: should parse valid string expressions with property access ok 144 A Parser: should parse valid string expressions with boolean operators ok 145 A Parser: should handle operator associativity properly ok 146 A Parser: should parse arrays ok 147 A Parser: should parse the in operator ok 148 A Parser: should parse the notIn operator ok 149 A Parser: should parse truthy statements ok 150 Rule: createRule: with strings: should create for string ok 151 Rule: createRule: with strings: should create for String ok 152 Rule: createRule: with strings: should create for number ok 153 Rule: createRule: with strings: should create for Number ok 154 Rule: createRule: with strings: should create for date ok 155 Rule: createRule: with strings: should create for Date ok 156 Rule: createRule: with strings: should create for array ok 157 Rule: createRule: with strings: should create for Array ok 158 Rule: createRule: with strings: should create for boolean ok 159 Rule: createRule: with strings: should create for Boolean ok 160 Rule: createRule: with strings: should create for regexp ok 161 Rule: createRule: with strings: should create for Regexp ok 162 Rule: createRule: with strings: should create for object ok 163 Rule: createRule: with strings: should create for Object ok 164 Rule: createRule: with strings: should create for hash ok 165 Rule: createRule: with strings: should create for Hash ok 166 Rule: createRule: with functions: should create for String function ok 167 Rule: createRule: with functions: should create for Number function ok 168 Rule: createRule: with functions: should create for Date function ok 169 Rule: createRule: with functions: should create for [] ok 170 Rule: createRule: with functions: should create for Array function ok 171 Rule: createRule: with functions: should create for Boolean function ok 172 Rule: createRule: with functions: should create for RegExp function ok 173 Rule: createRule: with functions: should create for Object function ok 174 Rule: createRule: with functions: should create for custom functions ok 175 Rule: createRule: should create a composite rule ok 176 Rule: createRule: should create a not pattern ok 177 Rule: createRule: should create a or pattern ok 178 Rule: createRule: should include reference store in constraints ok 179 Rule: createRule: should should include from constraints ok 180 Rule: createRule: should should include from constraints ok 181 Rule: createRule: should should include exists constraints # tests 181 # pass 181 # fail 0
1..181 ok 1 constraint matcher: match: should check equality ok 2 constraint matcher: match: should check inequality ok 3 constraint matcher: match: should check gt operator ok 4 constraint matcher: match: should check lt operator ok 5 constraint matcher: match: should check gte operator ok 6 constraint matcher: match: should check lte operator ok 7 constraint matcher: match: should check lte operator ok 8 constraint matcher: match: should check like operator ok 9 constraint matcher: match: should check notLike operator ok 10 constraint matcher: match: should check and operator ok 11 constraint matcher: match: should check or operator ok 12 constraint matcher: match: should check with member operator ok 13 constraint matcher: match: should check with in operator ok 14 constraint matcher: match: should check with notIn operator ok 15 constraint matcher: match: should allow properties with in ok 16 constraint matcher: match: should check with boolean associativity ok 17 constraint matcher: match: should check with nested properties ok 18 constraint matcher: match: should check with function ok 19 constraint matcher: match: should check with functions and identifier args ok 20 constraint matcher: match: should check with functions in a deep property chain and identifier args ok 21 constraint matcher: match: should check with functions in a deep property chain that returns an object and identifier args ok 22 constraint matcher: match: should have date helpers ok 23 constraint matcher: match: should create have type helpers ok 24 constraint matcher: match: should check truthy statements ok 25 constraint matcher: toConstraints: should create for expressions ok 26 constraint matcher: toConstraints: should create correct pattern depending on scope ok 27 constraint matcher: toJs: should create js equvalent expression ok 28 constraint matcher: getIdentifiers: should create the correct atoms for and expressions ok 29 constraint matcher: equals: should return true when equal ok 30 constraint matcher: equals: should return false when not equal ok 31 constraint matcher: .getIndexableProperties: should get properties with no functions ok 32 constraint matcher: .getIndexableProperties: should not get non indexable constraints ok 33 constraint matcher: .getIndexableProperties: should not get properties with functions ok 34 agenda-groups: should only fire events in focused group ok 35 agenda-groups: should should treat focus like a stack ok 36 auto-focus: should activate agenda groups in proper order ok 37 async actions: should fire all rules ok 38 events: should emit when facts are asserted ok 39 events: should emit when facts are retracted ok 40 events: should emit when facts are modified ok 41 events: should emit when rules are fired ok 42 exists rule: fact assertion: should only activate once ok 43 exists rule: fact assertion: should not activate once if the fact does not exists ok 44 exists rule: fact retraction: should should handle fact retractions properly ok 45 exists rule: fact modification: should should handle fact modification properly ok 46 exists rule: with from modifier: assert: should should handle fact assertion properly ok 47 exists rule: with from modifier: retract: should should handle fact retraction properly ok 48 exists rule: with from modifier: modify: should should handle fact modification properly ok 49 from condition: with non array properties: should create the proper match contexts ok 50 from condition: with non array properties: should propagate modified facts properly ok 51 from condition: with non array properties: should retract facts properly ok 52 from condition: with js source: should create the proper match contexts ok 53 from condition: with js source: should propagate modified facts properly ok 54 from condition: with array properties: should create all cross product matches ok 55 from condition: with array properties: should retract all cross product matches ok 56 from condition: with not node: should only fullfill if all facts evaluate to false ok 57 from condition: with not node: should only fullfill if all facts evaluate to false ok 58 matchUntilHalt: should match until halt is called ok 59 not rule: with a single fact: should call when a string that does not equal 'hello' ok 60 not rule: with a single fact: should not call when a string that does equal 'hello' ok 61 not rule: with a single fact: should not call when a string that does equal 'hello' and one that does not ok 62 not rule: with multiple facts: should fire rules in order ok 63 not rule: modifying facts: should handle modifications ok 64 or rule: or rule with two conditions of the same type: should should match if one constraints matches ok 65 or rule: or rule with two conditions of the same type: should not call when a a constraint does not match ok 66 or rule: or rule with three conditions: should should match if one constraints matches ok 67 or rule: or rule with three conditions: should not call when none constraints match ok 68 or rule: or rule with different types: should should match if one constraints matches ok 69 or rule: or rule with different types: should not call when none constraints match ok 70 or rule: or with not conditions: should activate for each fact that does not exist ok 71 flowrule: should create a rule ok 72 flowrule: should create a rule with joins properly ok 73 flowrule: should create a rules that are dependent on eachother properly ok 74 salience: should activate in the proper order ok 75 scope option: should call when a string equals 'hello' ok 76 scope option: should call when a string equals 'world' ok 77 scope option: should not call when a string that does equal 'hello' or 'world ok 78 simple rule: should call hello world rule ok 79 Flow compiled: not rule: should call when a string that does not equal 'hello' ok 80 Flow compiled: not rule: should not call when a string that does equal 'hello' ok 81 Flow compiled: not rule: should not call when a string that does equal 'hello' and one that does not ok 82 Flow compiled: or rule: should call when a string equals 'hello' ok 83 Flow compiled: or rule: or rule with not conditions: should activate for each fact that does not exist ok 84 Flow compiled: scoped functions: should call the scoped function ok 85 Flow compiled: events: should emit when facts are asserted ok 86 Flow compiled: events: should emit when facts are retracted ok 87 Flow compiled: events: should emit when facts are modified ok 88 Flow compiled: events: should emit when rules are fired ok 89 Flow compiled: agenda-groups: should only fire events in focused group ok 90 Flow compiled: agenda-groups: should should treat focus like a stack ok 91 Flow compiled: auto-focus: should activate agenda groups in proper order ok 92 Flow compiled: fibonacci nools dsl: should calculate fibonacci 3 ok 93 Flow compiled: fibonacci nools dsl: should calculate fibonacci 4 ok 94 Flow compiled: fibonacci nools dsl: should calculate fibonacci 5 ok 95 Flow compiled: fibonacci nools dsl: should calculate fibonacci 6 ok 96 Flow compiled: diagnosis using dsl: should treat properly ok 97 nools dsl parser: define: should parse a define statement ok 98 nools dsl parser: define: should throw an error when the define block is missing a name ok 99 nools dsl parser: define: should throw an error for invalid define blocks ok 100 nools dsl parser: define: should throw an error when the global statement is missing a name ok 101 nools dsl parser: define: should throw an error when the global statement is missing a ; ok 102 nools dsl parser: global: should parse a require call statement ok 103 nools dsl parser: global: should parse a require with a '.' character that is not a relative path ok 104 nools dsl parser: global: should resolve relative require paths ok 105 nools dsl parser: global: should parse a member look up ok 106 nools dsl parser: global: should parse a strings ok 107 nools dsl parser: global: should parse a boolean ok 108 nools dsl parser: global: should parse numbers ok 109 nools dsl parser: global: should parse a new instantiation ok 110 nools dsl parser: function: should parse a function statement ok 111 nools dsl parser: function: should throw an error when the function block is missing a name ok 112 nools dsl parser: function: should throw an error for invalid define blocks ok 113 nools dsl parser: rule: should parse rules ok 114 nools dsl parser: rule: should throw an error for invalid rule blocks ok 115 nools dsl parser: rule: should throw an error for a missing name ok 116 nools dsl parser: rule: should parse not conditions ok 117 nools dsl parser: rule: should parse or conditions ok 118 nools dsl parser: rule: should parse when clause with hash and constraints in any order ok 119 nools dsl parser: rule: should parse when clause with from ok 120 nools dsl parser: rule: should parse rules with a string name in double quotes ok 121 nools dsl parser: rule: should parse rules with a string name in single quotes ok 122 nools dsl parser: rule: should parse rules with a string name with inner strings ok 123 nools dsl parser: rule: salience/priority: should parse rules with a salience ok 124 nools dsl parser: rule: salience/priority: should parse rules with a priority ok 125 nools dsl parser: rule: salience/priority: should parse rules with a salience with a ; ok 126 nools dsl parser: rule: salience/priority: should parse rules with a priority with a ; ok 127 nools dsl parser: rule: salience/priority: should throw an error if the salience is not a number ok 128 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' ok 129 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agendaGroup' ok 130 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in '"' ok 131 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in "'" ok 132 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as true ok 133 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as false ok 134 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as true ok 135 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as false ok 136 nools dsl parser: rule: rules with auto-focus/autoFocus: should throw errors for values other than true or false ok 137 nools dsl parser: rule: should throw an error for invalid when clauses ok 138 nools dsl parser: rule: should throw an error for invalid then clauses ok 139 nools dsl parser: rule: should parse rules with exists clause ok 140 A Parser: should parse valid string expressions ok 141 A Parser: should parse regexps and not be greedy ok 142 A Parser: should parse valid string expressions with functions ok 143 A Parser: should parse valid string expressions with property access ok 144 A Parser: should parse valid string expressions with boolean operators ok 145 A Parser: should handle operator associativity properly ok 146 A Parser: should parse arrays ok 147 A Parser: should parse the in operator ok 148 A Parser: should parse the notIn operator ok 149 A Parser: should parse truthy statements ok 150 Rule: createRule: with strings: should create for string ok 151 Rule: createRule: with strings: should create for String ok 152 Rule: createRule: with strings: should create for number ok 153 Rule: createRule: with strings: should create for Number ok 154 Rule: createRule: with strings: should create for date ok 155 Rule: createRule: with strings: should create for Date ok 156 Rule: createRule: with strings: should create for array ok 157 Rule: createRule: with strings: should create for Array ok 158 Rule: createRule: with strings: should create for boolean ok 159 Rule: createRule: with strings: should create for Boolean ok 160 Rule: createRule: with strings: should create for regexp ok 161 Rule: createRule: with strings: should create for Regexp ok 162 Rule: createRule: with strings: should create for object ok 163 Rule: createRule: with strings: should create for Object ok 164 Rule: createRule: with strings: should create for hash ok 165 Rule: createRule: with strings: should create for Hash ok 166 Rule: createRule: with functions: should create for String function ok 167 Rule: createRule: with functions: should create for Number function ok 168 Rule: createRule: with functions: should create for Date function ok 169 Rule: createRule: with functions: should create for [] ok 170 Rule: createRule: with functions: should create for Array function ok 171 Rule: createRule: with functions: should create for Boolean function ok 172 Rule: createRule: with functions: should create for RegExp function ok 173 Rule: createRule: with functions: should create for Object function ok 174 Rule: createRule: with functions: should create for custom functions ok 175 Rule: createRule: should create a composite rule ok 176 Rule: createRule: should create a not pattern ok 177 Rule: createRule: should create a or pattern ok 178 Rule: createRule: should include reference store in constraints ok 179 Rule: createRule: should should include from constraints ok 180 Rule: createRule: should should include from constraints ok 181 Rule: createRule: should should include exists constraints # tests 181 # pass 181 # fail 0
1..181 ok 1 constraint matcher: match: should check equality ok 2 constraint matcher: match: should check inequality ok 3 constraint matcher: match: should check gt operator ok 4 constraint matcher: match: should check lt operator ok 5 constraint matcher: match: should check gte operator ok 6 constraint matcher: match: should check lte operator ok 7 constraint matcher: match: should check lte operator ok 8 constraint matcher: match: should check like operator ok 9 constraint matcher: match: should check notLike operator ok 10 constraint matcher: match: should check and operator ok 11 constraint matcher: match: should check or operator ok 12 constraint matcher: match: should check with member operator ok 13 constraint matcher: match: should check with in operator ok 14 constraint matcher: match: should check with notIn operator ok 15 constraint matcher: match: should allow properties with in ok 16 constraint matcher: match: should check with boolean associativity ok 17 constraint matcher: match: should check with nested properties ok 18 constraint matcher: match: should check with function ok 19 constraint matcher: match: should check with functions and identifier args ok 20 constraint matcher: match: should check with functions in a deep property chain and identifier args ok 21 constraint matcher: match: should check with functions in a deep property chain that returns an object and identifier args ok 22 constraint matcher: match: should have date helpers ok 23 constraint matcher: match: should create have type helpers ok 24 constraint matcher: match: should check truthy statements ok 25 constraint matcher: toConstraints: should create for expressions ok 26 constraint matcher: toConstraints: should create correct pattern depending on scope ok 27 constraint matcher: toJs: should create js equvalent expression ok 28 constraint matcher: getIdentifiers: should create the correct atoms for and expressions ok 29 constraint matcher: equals: should return true when equal ok 30 constraint matcher: equals: should return false when not equal ok 31 constraint matcher: .getIndexableProperties: should get properties with no functions ok 32 constraint matcher: .getIndexableProperties: should not get non indexable constraints ok 33 constraint matcher: .getIndexableProperties: should not get properties with functions ok 34 agenda-groups: should only fire events in focused group ok 35 agenda-groups: should should treat focus like a stack ok 36 auto-focus: should activate agenda groups in proper order not ok 37 async actions: should fire all rules Error: Timeout exceeded at http://git.testling.com/work/c2fo/repos/4b515accba130bbbcb04bfdc6967b5206ad8a292.1384990726710/1384990729321.db9d8532.js:15671:37 ok 38 events: should emit when facts are asserted ok 39 events: should emit when facts are retracted ok 40 events: should emit when facts are modified ok 41 events: should emit when rules are fired ok 42 exists rule: fact assertion: should only activate once ok 43 exists rule: fact assertion: should not activate once if the fact does not exists ok 44 exists rule: fact retraction: should should handle fact retractions properly ok 45 exists rule: fact modification: should should handle fact modification properly ok 46 exists rule: with from modifier: assert: should should handle fact assertion properly ok 47 exists rule: with from modifier: retract: should should handle fact retraction properly ok 48 exists rule: with from modifier: modify: should should handle fact modification properly ok 49 from condition: with non array properties: should create the proper match contexts ok 50 from condition: with non array properties: should propagate modified facts properly ok 51 from condition: with non array properties: should retract facts properly ok 52 from condition: with js source: should create the proper match contexts ok 53 from condition: with js source: should propagate modified facts properly ok 54 from condition: with array properties: should create all cross product matches ok 55 from condition: with array properties: should retract all cross product matches ok 56 from condition: with not node: should only fullfill if all facts evaluate to false ok 57 from condition: with not node: should only fullfill if all facts evaluate to false ok 58 matchUntilHalt: should match until halt is called ok 59 not rule: with a single fact: should call when a string that does not equal 'hello' ok 60 not rule: with a single fact: should not call when a string that does equal 'hello' ok 61 not rule: with a single fact: should not call when a string that does equal 'hello' and one that does not ok 62 not rule: with multiple facts: should fire rules in order ok 63 not rule: modifying facts: should handle modifications ok 64 or rule: or rule with two conditions of the same type: should should match if one constraints matches ok 65 or rule: or rule with two conditions of the same type: should not call when a a constraint does not match ok 66 or rule: or rule with three conditions: should should match if one constraints matches ok 67 or rule: or rule with three conditions: should not call when none constraints match ok 68 or rule: or rule with different types: should should match if one constraints matches ok 69 or rule: or rule with different types: should not call when none constraints match ok 70 or rule: or with not conditions: should activate for each fact that does not exist ok 71 flowrule: should create a rule ok 72 flowrule: should create a rule with joins properly ok 73 flowrule: should create a rules that are dependent on eachother properly ok 74 salience: should activate in the proper order ok 75 scope option: should call when a string equals 'hello' ok 76 scope option: should call when a string equals 'world' ok 77 scope option: should not call when a string that does equal 'hello' or 'world ok 78 simple rule: should call hello world rule ok 79 Flow compiled: not rule: should call when a string that does not equal 'hello' ok 80 Flow compiled: not rule: should not call when a string that does equal 'hello' ok 81 Flow compiled: not rule: should not call when a string that does equal 'hello' and one that does not ok 82 Flow compiled: or rule: should call when a string equals 'hello' ok 83 Flow compiled: or rule: or rule with not conditions: should activate for each fact that does not exist ok 84 Flow compiled: scoped functions: should call the scoped function ok 85 Flow compiled: events: should emit when facts are asserted ok 86 Flow compiled: events: should emit when facts are retracted ok 87 Flow compiled: events: should emit when facts are modified ok 88 Flow compiled: events: should emit when rules are fired ok 89 Flow compiled: agenda-groups: should only fire events in focused group ok 90 Flow compiled: agenda-groups: should should treat focus like a stack ok 91 Flow compiled: auto-focus: should activate agenda groups in proper order ok 92 Flow compiled: fibonacci nools dsl: should calculate fibonacci 3 ok 93 Flow compiled: fibonacci nools dsl: should calculate fibonacci 4 ok 94 Flow compiled: fibonacci nools dsl: should calculate fibonacci 5 ok 95 Flow compiled: fibonacci nools dsl: should calculate fibonacci 6 ok 96 Flow compiled: diagnosis using dsl: should treat properly ok 97 nools dsl parser: define: should parse a define statement ok 98 nools dsl parser: define: should throw an error when the define block is missing a name ok 99 nools dsl parser: define: should throw an error for invalid define blocks ok 100 nools dsl parser: define: should throw an error when the global statement is missing a name ok 101 nools dsl parser: define: should throw an error when the global statement is missing a ; ok 102 nools dsl parser: global: should parse a require call statement ok 103 nools dsl parser: global: should parse a require with a '.' character that is not a relative path ok 104 nools dsl parser: global: should resolve relative require paths ok 105 nools dsl parser: global: should parse a member look up ok 106 nools dsl parser: global: should parse a strings ok 107 nools dsl parser: global: should parse a boolean ok 108 nools dsl parser: global: should parse numbers ok 109 nools dsl parser: global: should parse a new instantiation ok 110 nools dsl parser: function: should parse a function statement ok 111 nools dsl parser: function: should throw an error when the function block is missing a name ok 112 nools dsl parser: function: should throw an error for invalid define blocks ok 113 nools dsl parser: rule: should parse rules ok 114 nools dsl parser: rule: should throw an error for invalid rule blocks ok 115 nools dsl parser: rule: should throw an error for a missing name ok 116 nools dsl parser: rule: should parse not conditions ok 117 nools dsl parser: rule: should parse or conditions ok 118 nools dsl parser: rule: should parse when clause with hash and constraints in any order ok 119 nools dsl parser: rule: should parse when clause with from ok 120 nools dsl parser: rule: should parse rules with a string name in double quotes ok 121 nools dsl parser: rule: should parse rules with a string name in single quotes ok 122 nools dsl parser: rule: should parse rules with a string name with inner strings ok 123 nools dsl parser: rule: salience/priority: should parse rules with a salience ok 124 nools dsl parser: rule: salience/priority: should parse rules with a priority ok 125 nools dsl parser: rule: salience/priority: should parse rules with a salience with a ; ok 126 nools dsl parser: rule: salience/priority: should parse rules with a priority with a ; ok 127 nools dsl parser: rule: salience/priority: should throw an error if the salience is not a number ok 128 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' ok 129 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agendaGroup' ok 130 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in '"' ok 131 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in "'" ok 132 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as true ok 133 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as false ok 134 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as true ok 135 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as false ok 136 nools dsl parser: rule: rules with auto-focus/autoFocus: should throw errors for values other than true or false ok 137 nools dsl parser: rule: should throw an error for invalid when clauses ok 138 nools dsl parser: rule: should throw an error for invalid then clauses ok 139 nools dsl parser: rule: should parse rules with exists clause ok 140 A Parser: should parse valid string expressions ok 141 A Parser: should parse regexps and not be greedy ok 142 A Parser: should parse valid string expressions with functions ok 143 A Parser: should parse valid string expressions with property access ok 144 A Parser: should parse valid string expressions with boolean operators ok 145 A Parser: should handle operator associativity properly ok 146 A Parser: should parse arrays ok 147 A Parser: should parse the in operator ok 148 A Parser: should parse the notIn operator ok 149 A Parser: should parse truthy statements ok 150 Rule: createRule: with strings: should create for string ok 151 Rule: createRule: with strings: should create for String ok 152 Rule: createRule: with strings: should create for number ok 153 Rule: createRule: with strings: should create for Number ok 154 Rule: createRule: with strings: should create for date ok 155 Rule: createRule: with strings: should create for Date ok 156 Rule: createRule: with strings: should create for array ok 157 Rule: createRule: with strings: should create for Array ok 158 Rule: createRule: with strings: should create for boolean ok 159 Rule: createRule: with strings: should create for Boolean ok 160 Rule: createRule: with strings: should create for regexp ok 161 Rule: createRule: with strings: should create for Regexp ok 162 Rule: createRule: with strings: should create for object ok 163 Rule: createRule: with strings: should create for Object ok 164 Rule: createRule: with strings: should create for hash ok 165 Rule: createRule: with strings: should create for Hash ok 166 Rule: createRule: with functions: should create for String function ok 167 Rule: createRule: with functions: should create for Number function ok 168 Rule: createRule: with functions: should create for Date function ok 169 Rule: createRule: with functions: should create for [] ok 170 Rule: createRule: with functions: should create for Array function ok 171 Rule: createRule: with functions: should create for Boolean function ok 172 Rule: createRule: with functions: should create for RegExp function ok 173 Rule: createRule: with functions: should create for Object function ok 174 Rule: createRule: with functions: should create for custom functions ok 175 Rule: createRule: should create a composite rule ok 176 Rule: createRule: should create a not pattern ok 177 Rule: createRule: should create a or pattern ok 178 Rule: createRule: should include reference store in constraints ok 179 Rule: createRule: should should include from constraints ok 180 Rule: createRule: should should include from constraints ok 181 Rule: createRule: should should include exists constraints # tests 181 # pass 180 # fail 1
1..181 ok 1 constraint matcher: match: should check equality ok 2 constraint matcher: match: should check inequality ok 3 constraint matcher: match: should check gt operator ok 4 constraint matcher: match: should check lt operator ok 5 constraint matcher: match: should check gte operator ok 6 constraint matcher: match: should check lte operator ok 7 constraint matcher: match: should check lte operator ok 8 constraint matcher: match: should check like operator ok 9 constraint matcher: match: should check notLike operator ok 10 constraint matcher: match: should check and operator ok 11 constraint matcher: match: should check or operator ok 12 constraint matcher: match: should check with member operator ok 13 constraint matcher: match: should check with in operator ok 14 constraint matcher: match: should check with notIn operator ok 15 constraint matcher: match: should allow properties with in ok 16 constraint matcher: match: should check with boolean associativity ok 17 constraint matcher: match: should check with nested properties ok 18 constraint matcher: match: should check with function ok 19 constraint matcher: match: should check with functions and identifier args ok 20 constraint matcher: match: should check with functions in a deep property chain and identifier args ok 21 constraint matcher: match: should check with functions in a deep property chain that returns an object and identifier args ok 22 constraint matcher: match: should have date helpers ok 23 constraint matcher: match: should create have type helpers ok 24 constraint matcher: match: should check truthy statements ok 25 constraint matcher: toConstraints: should create for expressions ok 26 constraint matcher: toConstraints: should create correct pattern depending on scope ok 27 constraint matcher: toJs: should create js equvalent expression ok 28 constraint matcher: getIdentifiers: should create the correct atoms for and expressions ok 29 constraint matcher: equals: should return true when equal ok 30 constraint matcher: equals: should return false when not equal ok 31 constraint matcher: .getIndexableProperties: should get properties with no functions ok 32 constraint matcher: .getIndexableProperties: should not get non indexable constraints ok 33 constraint matcher: .getIndexableProperties: should not get properties with functions ok 34 agenda-groups: should only fire events in focused group ok 35 agenda-groups: should should treat focus like a stack ok 36 auto-focus: should activate agenda groups in proper order ok 37 async actions: should fire all rules ok 38 events: should emit when facts are asserted ok 39 events: should emit when facts are retracted ok 40 events: should emit when facts are modified ok 41 events: should emit when rules are fired ok 42 exists rule: fact assertion: should only activate once ok 43 exists rule: fact assertion: should not activate once if the fact does not exists ok 44 exists rule: fact retraction: should should handle fact retractions properly ok 45 exists rule: fact modification: should should handle fact modification properly ok 46 exists rule: with from modifier: assert: should should handle fact assertion properly ok 47 exists rule: with from modifier: retract: should should handle fact retraction properly ok 48 exists rule: with from modifier: modify: should should handle fact modification properly ok 49 from condition: with non array properties: should create the proper match contexts ok 50 from condition: with non array properties: should propagate modified facts properly ok 51 from condition: with non array properties: should retract facts properly ok 52 from condition: with js source: should create the proper match contexts ok 53 from condition: with js source: should propagate modified facts properly ok 54 from condition: with array properties: should create all cross product matches ok 55 from condition: with array properties: should retract all cross product matches ok 56 from condition: with not node: should only fullfill if all facts evaluate to false ok 57 from condition: with not node: should only fullfill if all facts evaluate to false ok 58 matchUntilHalt: should match until halt is called ok 59 not rule: with a single fact: should call when a string that does not equal 'hello' ok 60 not rule: with a single fact: should not call when a string that does equal 'hello' ok 61 not rule: with a single fact: should not call when a string that does equal 'hello' and one that does not ok 62 not rule: with multiple facts: should fire rules in order ok 63 not rule: modifying facts: should handle modifications ok 64 or rule: or rule with two conditions of the same type: should should match if one constraints matches ok 65 or rule: or rule with two conditions of the same type: should not call when a a constraint does not match ok 66 or rule: or rule with three conditions: should should match if one constraints matches ok 67 or rule: or rule with three conditions: should not call when none constraints match ok 68 or rule: or rule with different types: should should match if one constraints matches ok 69 or rule: or rule with different types: should not call when none constraints match ok 70 or rule: or with not conditions: should activate for each fact that does not exist ok 71 flowrule: should create a rule ok 72 flowrule: should create a rule with joins properly ok 73 flowrule: should create a rules that are dependent on eachother properly ok 74 salience: should activate in the proper order ok 75 scope option: should call when a string equals 'hello' ok 76 scope option: should call when a string equals 'world' ok 77 scope option: should not call when a string that does equal 'hello' or 'world ok 78 simple rule: should call hello world rule ok 79 Flow compiled: not rule: should call when a string that does not equal 'hello' ok 80 Flow compiled: not rule: should not call when a string that does equal 'hello' ok 81 Flow compiled: not rule: should not call when a string that does equal 'hello' and one that does not ok 82 Flow compiled: or rule: should call when a string equals 'hello' ok 83 Flow compiled: or rule: or rule with not conditions: should activate for each fact that does not exist ok 84 Flow compiled: scoped functions: should call the scoped function ok 85 Flow compiled: events: should emit when facts are asserted ok 86 Flow compiled: events: should emit when facts are retracted ok 87 Flow compiled: events: should emit when facts are modified ok 88 Flow compiled: events: should emit when rules are fired ok 89 Flow compiled: agenda-groups: should only fire events in focused group ok 90 Flow compiled: agenda-groups: should should treat focus like a stack ok 91 Flow compiled: auto-focus: should activate agenda groups in proper order ok 92 Flow compiled: fibonacci nools dsl: should calculate fibonacci 3 ok 93 Flow compiled: fibonacci nools dsl: should calculate fibonacci 4 ok 94 Flow compiled: fibonacci nools dsl: should calculate fibonacci 5 ok 95 Flow compiled: fibonacci nools dsl: should calculate fibonacci 6 ok 96 Flow compiled: diagnosis using dsl: should treat properly ok 97 nools dsl parser: define: should parse a define statement ok 98 nools dsl parser: define: should throw an error when the define block is missing a name ok 99 nools dsl parser: define: should throw an error for invalid define blocks ok 100 nools dsl parser: define: should throw an error when the global statement is missing a name ok 101 nools dsl parser: define: should throw an error when the global statement is missing a ; ok 102 nools dsl parser: global: should parse a require call statement ok 103 nools dsl parser: global: should parse a require with a '.' character that is not a relative path ok 104 nools dsl parser: global: should resolve relative require paths ok 105 nools dsl parser: global: should parse a member look up ok 106 nools dsl parser: global: should parse a strings ok 107 nools dsl parser: global: should parse a boolean ok 108 nools dsl parser: global: should parse numbers ok 109 nools dsl parser: global: should parse a new instantiation ok 110 nools dsl parser: function: should parse a function statement ok 111 nools dsl parser: function: should throw an error when the function block is missing a name ok 112 nools dsl parser: function: should throw an error for invalid define blocks ok 113 nools dsl parser: rule: should parse rules ok 114 nools dsl parser: rule: should throw an error for invalid rule blocks ok 115 nools dsl parser: rule: should throw an error for a missing name ok 116 nools dsl parser: rule: should parse not conditions ok 117 nools dsl parser: rule: should parse or conditions ok 118 nools dsl parser: rule: should parse when clause with hash and constraints in any order ok 119 nools dsl parser: rule: should parse when clause with from ok 120 nools dsl parser: rule: should parse rules with a string name in double quotes ok 121 nools dsl parser: rule: should parse rules with a string name in single quotes ok 122 nools dsl parser: rule: should parse rules with a string name with inner strings ok 123 nools dsl parser: rule: salience/priority: should parse rules with a salience ok 124 nools dsl parser: rule: salience/priority: should parse rules with a priority ok 125 nools dsl parser: rule: salience/priority: should parse rules with a salience with a ; ok 126 nools dsl parser: rule: salience/priority: should parse rules with a priority with a ; ok 127 nools dsl parser: rule: salience/priority: should throw an error if the salience is not a number ok 128 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' ok 129 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agendaGroup' ok 130 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in '"' ok 131 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in "'" ok 132 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as true ok 133 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as false ok 134 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as true ok 135 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as false ok 136 nools dsl parser: rule: rules with auto-focus/autoFocus: should throw errors for values other than true or false ok 137 nools dsl parser: rule: should throw an error for invalid when clauses ok 138 nools dsl parser: rule: should throw an error for invalid then clauses ok 139 nools dsl parser: rule: should parse rules with exists clause ok 140 A Parser: should parse valid string expressions ok 141 A Parser: should parse regexps and not be greedy ok 142 A Parser: should parse valid string expressions with functions ok 143 A Parser: should parse valid string expressions with property access ok 144 A Parser: should parse valid string expressions with boolean operators ok 145 A Parser: should handle operator associativity properly ok 146 A Parser: should parse arrays ok 147 A Parser: should parse the in operator ok 148 A Parser: should parse the notIn operator ok 149 A Parser: should parse truthy statements ok 150 Rule: createRule: with strings: should create for string ok 151 Rule: createRule: with strings: should create for String ok 152 Rule: createRule: with strings: should create for number ok 153 Rule: createRule: with strings: should create for Number ok 154 Rule: createRule: with strings: should create for date ok 155 Rule: createRule: with strings: should create for Date ok 156 Rule: createRule: with strings: should create for array ok 157 Rule: createRule: with strings: should create for Array ok 158 Rule: createRule: with strings: should create for boolean ok 159 Rule: createRule: with strings: should create for Boolean ok 160 Rule: createRule: with strings: should create for regexp ok 161 Rule: createRule: with strings: should create for Regexp ok 162 Rule: createRule: with strings: should create for object ok 163 Rule: createRule: with strings: should create for Object ok 164 Rule: createRule: with strings: should create for hash ok 165 Rule: createRule: with strings: should create for Hash ok 166 Rule: createRule: with functions: should create for String function ok 167 Rule: createRule: with functions: should create for Number function ok 168 Rule: createRule: with functions: should create for Date function ok 169 Rule: createRule: with functions: should create for [] ok 170 Rule: createRule: with functions: should create for Array function ok 171 Rule: createRule: with functions: should create for Boolean function ok 172 Rule: createRule: with functions: should create for RegExp function ok 173 Rule: createRule: with functions: should create for Object function ok 174 Rule: createRule: with functions: should create for custom functions ok 175 Rule: createRule: should create a composite rule ok 176 Rule: createRule: should create a not pattern ok 177 Rule: createRule: should create a or pattern ok 178 Rule: createRule: should include reference store in constraints ok 179 Rule: createRule: should should include from constraints ok 180 Rule: createRule: should should include from constraints ok 181 Rule: createRule: should should include exists constraints # tests 181 # pass 181 # fail 0
1..181 ok 1 constraint matcher: match: should check equality ok 2 constraint matcher: match: should check inequality ok 3 constraint matcher: match: should check gt operator ok 4 constraint matcher: match: should check lt operator ok 5 constraint matcher: match: should check gte operator ok 6 constraint matcher: match: should check lte operator ok 7 constraint matcher: match: should check lte operator ok 8 constraint matcher: match: should check like operator ok 9 constraint matcher: match: should check notLike operator ok 10 constraint matcher: match: should check and operator ok 11 constraint matcher: match: should check or operator ok 12 constraint matcher: match: should check with member operator ok 13 constraint matcher: match: should check with in operator ok 14 constraint matcher: match: should check with notIn operator ok 15 constraint matcher: match: should allow properties with in ok 16 constraint matcher: match: should check with boolean associativity ok 17 constraint matcher: match: should check with nested properties ok 18 constraint matcher: match: should check with function ok 19 constraint matcher: match: should check with functions and identifier args ok 20 constraint matcher: match: should check with functions in a deep property chain and identifier args ok 21 constraint matcher: match: should check with functions in a deep property chain that returns an object and identifier args ok 22 constraint matcher: match: should have date helpers ok 23 constraint matcher: match: should create have type helpers ok 24 constraint matcher: match: should check truthy statements ok 25 constraint matcher: toConstraints: should create for expressions ok 26 constraint matcher: toConstraints: should create correct pattern depending on scope ok 27 constraint matcher: toJs: should create js equvalent expression ok 28 constraint matcher: getIdentifiers: should create the correct atoms for and expressions ok 29 constraint matcher: equals: should return true when equal ok 30 constraint matcher: equals: should return false when not equal ok 31 constraint matcher: .getIndexableProperties: should get properties with no functions ok 32 constraint matcher: .getIndexableProperties: should not get non indexable constraints ok 33 constraint matcher: .getIndexableProperties: should not get properties with functions ok 34 agenda-groups: should only fire events in focused group ok 35 agenda-groups: should should treat focus like a stack ok 36 auto-focus: should activate agenda groups in proper order ok 37 async actions: should fire all rules ok 38 events: should emit when facts are asserted ok 39 events: should emit when facts are retracted ok 40 events: should emit when facts are modified ok 41 events: should emit when rules are fired ok 42 exists rule: fact assertion: should only activate once ok 43 exists rule: fact assertion: should not activate once if the fact does not exists ok 44 exists rule: fact retraction: should should handle fact retractions properly ok 45 exists rule: fact modification: should should handle fact modification properly ok 46 exists rule: with from modifier: assert: should should handle fact assertion properly ok 47 exists rule: with from modifier: retract: should should handle fact retraction properly ok 48 exists rule: with from modifier: modify: should should handle fact modification properly ok 49 from condition: with non array properties: should create the proper match contexts ok 50 from condition: with non array properties: should propagate modified facts properly ok 51 from condition: with non array properties: should retract facts properly ok 52 from condition: with js source: should create the proper match contexts ok 53 from condition: with js source: should propagate modified facts properly ok 54 from condition: with array properties: should create all cross product matches ok 55 from condition: with array properties: should retract all cross product matches ok 56 from condition: with not node: should only fullfill if all facts evaluate to false ok 57 from condition: with not node: should only fullfill if all facts evaluate to false ok 58 matchUntilHalt: should match until halt is called ok 59 not rule: with a single fact: should call when a string that does not equal 'hello' ok 60 not rule: with a single fact: should not call when a string that does equal 'hello' ok 61 not rule: with a single fact: should not call when a string that does equal 'hello' and one that does not ok 62 not rule: with multiple facts: should fire rules in order ok 63 not rule: modifying facts: should handle modifications ok 64 or rule: or rule with two conditions of the same type: should should match if one constraints matches ok 65 or rule: or rule with two conditions of the same type: should not call when a a constraint does not match ok 66 or rule: or rule with three conditions: should should match if one constraints matches ok 67 or rule: or rule with three conditions: should not call when none constraints match ok 68 or rule: or rule with different types: should should match if one constraints matches ok 69 or rule: or rule with different types: should not call when none constraints match ok 70 or rule: or with not conditions: should activate for each fact that does not exist ok 71 flowrule: should create a rule ok 72 flowrule: should create a rule with joins properly ok 73 flowrule: should create a rules that are dependent on eachother properly ok 74 salience: should activate in the proper order ok 75 scope option: should call when a string equals 'hello' ok 76 scope option: should call when a string equals 'world' ok 77 scope option: should not call when a string that does equal 'hello' or 'world ok 78 simple rule: should call hello world rule ok 79 Flow compiled: not rule: should call when a string that does not equal 'hello' ok 80 Flow compiled: not rule: should not call when a string that does equal 'hello' ok 81 Flow compiled: not rule: should not call when a string that does equal 'hello' and one that does not ok 82 Flow compiled: or rule: should call when a string equals 'hello' ok 83 Flow compiled: or rule: or rule with not conditions: should activate for each fact that does not exist ok 84 Flow compiled: scoped functions: should call the scoped function ok 85 Flow compiled: events: should emit when facts are asserted ok 86 Flow compiled: events: should emit when facts are retracted ok 87 Flow compiled: events: should emit when facts are modified ok 88 Flow compiled: events: should emit when rules are fired ok 89 Flow compiled: agenda-groups: should only fire events in focused group ok 90 Flow compiled: agenda-groups: should should treat focus like a stack ok 91 Flow compiled: auto-focus: should activate agenda groups in proper order ok 92 Flow compiled: fibonacci nools dsl: should calculate fibonacci 3 ok 93 Flow compiled: fibonacci nools dsl: should calculate fibonacci 4 ok 94 Flow compiled: fibonacci nools dsl: should calculate fibonacci 5 ok 95 Flow compiled: fibonacci nools dsl: should calculate fibonacci 6 ok 96 Flow compiled: diagnosis using dsl: should treat properly ok 97 nools dsl parser: define: should parse a define statement ok 98 nools dsl parser: define: should throw an error when the define block is missing a name ok 99 nools dsl parser: define: should throw an error for invalid define blocks ok 100 nools dsl parser: define: should throw an error when the global statement is missing a name ok 101 nools dsl parser: define: should throw an error when the global statement is missing a ; ok 102 nools dsl parser: global: should parse a require call statement ok 103 nools dsl parser: global: should parse a require with a '.' character that is not a relative path ok 104 nools dsl parser: global: should resolve relative require paths ok 105 nools dsl parser: global: should parse a member look up ok 106 nools dsl parser: global: should parse a strings ok 107 nools dsl parser: global: should parse a boolean ok 108 nools dsl parser: global: should parse numbers ok 109 nools dsl parser: global: should parse a new instantiation ok 110 nools dsl parser: function: should parse a function statement ok 111 nools dsl parser: function: should throw an error when the function block is missing a name ok 112 nools dsl parser: function: should throw an error for invalid define blocks ok 113 nools dsl parser: rule: should parse rules ok 114 nools dsl parser: rule: should throw an error for invalid rule blocks ok 115 nools dsl parser: rule: should throw an error for a missing name ok 116 nools dsl parser: rule: should parse not conditions ok 117 nools dsl parser: rule: should parse or conditions ok 118 nools dsl parser: rule: should parse when clause with hash and constraints in any order ok 119 nools dsl parser: rule: should parse when clause with from ok 120 nools dsl parser: rule: should parse rules with a string name in double quotes ok 121 nools dsl parser: rule: should parse rules with a string name in single quotes ok 122 nools dsl parser: rule: should parse rules with a string name with inner strings ok 123 nools dsl parser: rule: salience/priority: should parse rules with a salience ok 124 nools dsl parser: rule: salience/priority: should parse rules with a priority ok 125 nools dsl parser: rule: salience/priority: should parse rules with a salience with a ; ok 126 nools dsl parser: rule: salience/priority: should parse rules with a priority with a ; ok 127 nools dsl parser: rule: salience/priority: should throw an error if the salience is not a number ok 128 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' ok 129 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agendaGroup' ok 130 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in '"' ok 131 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in "'" ok 132 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as true ok 133 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as false ok 134 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as true ok 135 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as false ok 136 nools dsl parser: rule: rules with auto-focus/autoFocus: should throw errors for values other than true or false ok 137 nools dsl parser: rule: should throw an error for invalid when clauses ok 138 nools dsl parser: rule: should throw an error for invalid then clauses ok 139 nools dsl parser: rule: should parse rules with exists clause ok 140 A Parser: should parse valid string expressions ok 141 A Parser: should parse regexps and not be greedy ok 142 A Parser: should parse valid string expressions with functions ok 143 A Parser: should parse valid string expressions with property access ok 144 A Parser: should parse valid string expressions with boolean operators ok 145 A Parser: should handle operator associativity properly ok 146 A Parser: should parse arrays ok 147 A Parser: should parse the in operator ok 148 A Parser: should parse the notIn operator ok 149 A Parser: should parse truthy statements ok 150 Rule: createRule: with strings: should create for string ok 151 Rule: createRule: with strings: should create for String ok 152 Rule: createRule: with strings: should create for number ok 153 Rule: createRule: with strings: should create for Number ok 154 Rule: createRule: with strings: should create for date ok 155 Rule: createRule: with strings: should create for Date ok 156 Rule: createRule: with strings: should create for array ok 157 Rule: createRule: with strings: should create for Array ok 158 Rule: createRule: with strings: should create for boolean ok 159 Rule: createRule: with strings: should create for Boolean ok 160 Rule: createRule: with strings: should create for regexp ok 161 Rule: createRule: with strings: should create for Regexp ok 162 Rule: createRule: with strings: should create for object ok 163 Rule: createRule: with strings: should create for Object ok 164 Rule: createRule: with strings: should create for hash ok 165 Rule: createRule: with strings: should create for Hash ok 166 Rule: createRule: with functions: should create for String function ok 167 Rule: createRule: with functions: should create for Number function ok 168 Rule: createRule: with functions: should create for Date function ok 169 Rule: createRule: with functions: should create for [] ok 170 Rule: createRule: with functions: should create for Array function ok 171 Rule: createRule: with functions: should create for Boolean function ok 172 Rule: createRule: with functions: should create for RegExp function ok 173 Rule: createRule: with functions: should create for Object function ok 174 Rule: createRule: with functions: should create for custom functions ok 175 Rule: createRule: should create a composite rule ok 176 Rule: createRule: should create a not pattern ok 177 Rule: createRule: should create a or pattern ok 178 Rule: createRule: should include reference store in constraints ok 179 Rule: createRule: should should include from constraints ok 180 Rule: createRule: should should include from constraints ok 181 Rule: createRule: should should include exists constraints # tests 181 # pass 181 # fail 0
1..181 ok 1 constraint matcher: match: should check equality ok 2 constraint matcher: match: should check inequality ok 3 constraint matcher: match: should check gt operator ok 4 constraint matcher: match: should check lt operator ok 5 constraint matcher: match: should check gte operator ok 6 constraint matcher: match: should check lte operator ok 7 constraint matcher: match: should check lte operator ok 8 constraint matcher: match: should check like operator ok 9 constraint matcher: match: should check notLike operator ok 10 constraint matcher: match: should check and operator ok 11 constraint matcher: match: should check or operator ok 12 constraint matcher: match: should check with member operator ok 13 constraint matcher: match: should check with in operator ok 14 constraint matcher: match: should check with notIn operator ok 15 constraint matcher: match: should allow properties with in ok 16 constraint matcher: match: should check with boolean associativity ok 17 constraint matcher: match: should check with nested properties ok 18 constraint matcher: match: should check with function ok 19 constraint matcher: match: should check with functions and identifier args ok 20 constraint matcher: match: should check with functions in a deep property chain and identifier args ok 21 constraint matcher: match: should check with functions in a deep property chain that returns an object and identifier args ok 22 constraint matcher: match: should have date helpers ok 23 constraint matcher: match: should create have type helpers ok 24 constraint matcher: match: should check truthy statements ok 25 constraint matcher: toConstraints: should create for expressions ok 26 constraint matcher: toConstraints: should create correct pattern depending on scope ok 27 constraint matcher: toJs: should create js equvalent expression ok 28 constraint matcher: getIdentifiers: should create the correct atoms for and expressions ok 29 constraint matcher: equals: should return true when equal ok 30 constraint matcher: equals: should return false when not equal ok 31 constraint matcher: .getIndexableProperties: should get properties with no functions ok 32 constraint matcher: .getIndexableProperties: should not get non indexable constraints ok 33 constraint matcher: .getIndexableProperties: should not get properties with functions ok 34 agenda-groups: should only fire events in focused group ok 35 agenda-groups: should should treat focus like a stack ok 36 auto-focus: should activate agenda groups in proper order ok 37 async actions: should fire all rules ok 38 events: should emit when facts are asserted ok 39 events: should emit when facts are retracted ok 40 events: should emit when facts are modified ok 41 events: should emit when rules are fired ok 42 exists rule: fact assertion: should only activate once ok 43 exists rule: fact assertion: should not activate once if the fact does not exists ok 44 exists rule: fact retraction: should should handle fact retractions properly ok 45 exists rule: fact modification: should should handle fact modification properly ok 46 exists rule: with from modifier: assert: should should handle fact assertion properly ok 47 exists rule: with from modifier: retract: should should handle fact retraction properly ok 48 exists rule: with from modifier: modify: should should handle fact modification properly ok 49 from condition: with non array properties: should create the proper match contexts ok 50 from condition: with non array properties: should propagate modified facts properly ok 51 from condition: with non array properties: should retract facts properly ok 52 from condition: with js source: should create the proper match contexts ok 53 from condition: with js source: should propagate modified facts properly ok 54 from condition: with array properties: should create all cross product matches ok 55 from condition: with array properties: should retract all cross product matches ok 56 from condition: with not node: should only fullfill if all facts evaluate to false ok 57 from condition: with not node: should only fullfill if all facts evaluate to false ok 58 matchUntilHalt: should match until halt is called ok 59 not rule: with a single fact: should call when a string that does not equal 'hello' ok 60 not rule: with a single fact: should not call when a string that does equal 'hello' ok 61 not rule: with a single fact: should not call when a string that does equal 'hello' and one that does not ok 62 not rule: with multiple facts: should fire rules in order ok 63 not rule: modifying facts: should handle modifications ok 64 or rule: or rule with two conditions of the same type: should should match if one constraints matches ok 65 or rule: or rule with two conditions of the same type: should not call when a a constraint does not match ok 66 or rule: or rule with three conditions: should should match if one constraints matches ok 67 or rule: or rule with three conditions: should not call when none constraints match ok 68 or rule: or rule with different types: should should match if one constraints matches ok 69 or rule: or rule with different types: should not call when none constraints match ok 70 or rule: or with not conditions: should activate for each fact that does not exist ok 71 flowrule: should create a rule ok 72 flowrule: should create a rule with joins properly ok 73 flowrule: should create a rules that are dependent on eachother properly ok 74 salience: should activate in the proper order ok 75 scope option: should call when a string equals 'hello' ok 76 scope option: should call when a string equals 'world' ok 77 scope option: should not call when a string that does equal 'hello' or 'world ok 78 simple rule: should call hello world rule ok 79 Flow compiled: not rule: should call when a string that does not equal 'hello' ok 80 Flow compiled: not rule: should not call when a string that does equal 'hello' ok 81 Flow compiled: not rule: should not call when a string that does equal 'hello' and one that does not ok 82 Flow compiled: or rule: should call when a string equals 'hello' ok 83 Flow compiled: or rule: or rule with not conditions: should activate for each fact that does not exist ok 84 Flow compiled: scoped functions: should call the scoped function ok 85 Flow compiled: events: should emit when facts are asserted ok 86 Flow compiled: events: should emit when facts are retracted ok 87 Flow compiled: events: should emit when facts are modified ok 88 Flow compiled: events: should emit when rules are fired ok 89 Flow compiled: agenda-groups: should only fire events in focused group ok 90 Flow compiled: agenda-groups: should should treat focus like a stack ok 91 Flow compiled: auto-focus: should activate agenda groups in proper order ok 92 Flow compiled: fibonacci nools dsl: should calculate fibonacci 3 ok 93 Flow compiled: fibonacci nools dsl: should calculate fibonacci 4 ok 94 Flow compiled: fibonacci nools dsl: should calculate fibonacci 5 ok 95 Flow compiled: fibonacci nools dsl: should calculate fibonacci 6 ok 96 Flow compiled: diagnosis using dsl: should treat properly ok 97 nools dsl parser: define: should parse a define statement ok 98 nools dsl parser: define: should throw an error when the define block is missing a name ok 99 nools dsl parser: define: should throw an error for invalid define blocks ok 100 nools dsl parser: define: should throw an error when the global statement is missing a name ok 101 nools dsl parser: define: should throw an error when the global statement is missing a ; ok 102 nools dsl parser: global: should parse a require call statement ok 103 nools dsl parser: global: should parse a require with a '.' character that is not a relative path ok 104 nools dsl parser: global: should resolve relative require paths ok 105 nools dsl parser: global: should parse a member look up ok 106 nools dsl parser: global: should parse a strings ok 107 nools dsl parser: global: should parse a boolean ok 108 nools dsl parser: global: should parse numbers ok 109 nools dsl parser: global: should parse a new instantiation ok 110 nools dsl parser: function: should parse a function statement ok 111 nools dsl parser: function: should throw an error when the function block is missing a name ok 112 nools dsl parser: function: should throw an error for invalid define blocks ok 113 nools dsl parser: rule: should parse rules ok 114 nools dsl parser: rule: should throw an error for invalid rule blocks ok 115 nools dsl parser: rule: should throw an error for a missing name ok 116 nools dsl parser: rule: should parse not conditions ok 117 nools dsl parser: rule: should parse or conditions ok 118 nools dsl parser: rule: should parse when clause with hash and constraints in any order ok 119 nools dsl parser: rule: should parse when clause with from ok 120 nools dsl parser: rule: should parse rules with a string name in double quotes ok 121 nools dsl parser: rule: should parse rules with a string name in single quotes ok 122 nools dsl parser: rule: should parse rules with a string name with inner strings ok 123 nools dsl parser: rule: salience/priority: should parse rules with a salience ok 124 nools dsl parser: rule: salience/priority: should parse rules with a priority ok 125 nools dsl parser: rule: salience/priority: should parse rules with a salience with a ; ok 126 nools dsl parser: rule: salience/priority: should parse rules with a priority with a ; ok 127 nools dsl parser: rule: salience/priority: should throw an error if the salience is not a number ok 128 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' ok 129 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agendaGroup' ok 130 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in '"' ok 131 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in "'" ok 132 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as true ok 133 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as false ok 134 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as true ok 135 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as false ok 136 nools dsl parser: rule: rules with auto-focus/autoFocus: should throw errors for values other than true or false ok 137 nools dsl parser: rule: should throw an error for invalid when clauses ok 138 nools dsl parser: rule: should throw an error for invalid then clauses ok 139 nools dsl parser: rule: should parse rules with exists clause ok 140 A Parser: should parse valid string expressions ok 141 A Parser: should parse regexps and not be greedy ok 142 A Parser: should parse valid string expressions with functions ok 143 A Parser: should parse valid string expressions with property access ok 144 A Parser: should parse valid string expressions with boolean operators ok 145 A Parser: should handle operator associativity properly ok 146 A Parser: should parse arrays ok 147 A Parser: should parse the in operator ok 148 A Parser: should parse the notIn operator ok 149 A Parser: should parse truthy statements ok 150 Rule: createRule: with strings: should create for string ok 151 Rule: createRule: with strings: should create for String ok 152 Rule: createRule: with strings: should create for number ok 153 Rule: createRule: with strings: should create for Number ok 154 Rule: createRule: with strings: should create for date ok 155 Rule: createRule: with strings: should create for Date ok 156 Rule: createRule: with strings: should create for array ok 157 Rule: createRule: with strings: should create for Array ok 158 Rule: createRule: with strings: should create for boolean ok 159 Rule: createRule: with strings: should create for Boolean ok 160 Rule: createRule: with strings: should create for regexp ok 161 Rule: createRule: with strings: should create for Regexp ok 162 Rule: createRule: with strings: should create for object ok 163 Rule: createRule: with strings: should create for Object ok 164 Rule: createRule: with strings: should create for hash ok 165 Rule: createRule: with strings: should create for Hash ok 166 Rule: createRule: with functions: should create for String function ok 167 Rule: createRule: with functions: should create for Number function ok 168 Rule: createRule: with functions: should create for Date function ok 169 Rule: createRule: with functions: should create for [] ok 170 Rule: createRule: with functions: should create for Array function ok 171 Rule: createRule: with functions: should create for Boolean function ok 172 Rule: createRule: with functions: should create for RegExp function ok 173 Rule: createRule: with functions: should create for Object function ok 174 Rule: createRule: with functions: should create for custom functions ok 175 Rule: createRule: should create a composite rule ok 176 Rule: createRule: should create a not pattern ok 177 Rule: createRule: should create a or pattern ok 178 Rule: createRule: should include reference store in constraints ok 179 Rule: createRule: should should include from constraints ok 180 Rule: createRule: should should include from constraints ok 181 Rule: createRule: should should include exists constraints # tests 181 # pass 181 # fail 0
1..181 ok 1 constraint matcher: match: should check equality ok 2 constraint matcher: match: should check inequality ok 3 constraint matcher: match: should check gt operator ok 4 constraint matcher: match: should check lt operator ok 5 constraint matcher: match: should check gte operator ok 6 constraint matcher: match: should check lte operator ok 7 constraint matcher: match: should check lte operator ok 8 constraint matcher: match: should check like operator ok 9 constraint matcher: match: should check notLike operator ok 10 constraint matcher: match: should check and operator ok 11 constraint matcher: match: should check or operator ok 12 constraint matcher: match: should check with member operator ok 13 constraint matcher: match: should check with in operator ok 14 constraint matcher: match: should check with notIn operator ok 15 constraint matcher: match: should allow properties with in ok 16 constraint matcher: match: should check with boolean associativity ok 17 constraint matcher: match: should check with nested properties ok 18 constraint matcher: match: should check with function ok 19 constraint matcher: match: should check with functions and identifier args ok 20 constraint matcher: match: should check with functions in a deep property chain and identifier args ok 21 constraint matcher: match: should check with functions in a deep property chain that returns an object and identifier args ok 22 constraint matcher: match: should have date helpers ok 23 constraint matcher: match: should create have type helpers ok 24 constraint matcher: match: should check truthy statements ok 25 constraint matcher: toConstraints: should create for expressions ok 26 constraint matcher: toConstraints: should create correct pattern depending on scope ok 27 constraint matcher: toJs: should create js equvalent expression ok 28 constraint matcher: getIdentifiers: should create the correct atoms for and expressions ok 29 constraint matcher: equals: should return true when equal ok 30 constraint matcher: equals: should return false when not equal ok 31 constraint matcher: .getIndexableProperties: should get properties with no functions ok 32 constraint matcher: .getIndexableProperties: should not get non indexable constraints ok 33 constraint matcher: .getIndexableProperties: should not get properties with functions ok 34 agenda-groups: should only fire events in focused group ok 35 agenda-groups: should should treat focus like a stack ok 36 auto-focus: should activate agenda groups in proper order ok 37 async actions: should fire all rules ok 38 events: should emit when facts are asserted ok 39 events: should emit when facts are retracted ok 40 events: should emit when facts are modified ok 41 events: should emit when rules are fired ok 42 exists rule: fact assertion: should only activate once ok 43 exists rule: fact assertion: should not activate once if the fact does not exists ok 44 exists rule: fact retraction: should should handle fact retractions properly ok 45 exists rule: fact modification: should should handle fact modification properly ok 46 exists rule: with from modifier: assert: should should handle fact assertion properly ok 47 exists rule: with from modifier: retract: should should handle fact retraction properly ok 48 exists rule: with from modifier: modify: should should handle fact modification properly ok 49 from condition: with non array properties: should create the proper match contexts ok 50 from condition: with non array properties: should propagate modified facts properly ok 51 from condition: with non array properties: should retract facts properly ok 52 from condition: with js source: should create the proper match contexts ok 53 from condition: with js source: should propagate modified facts properly ok 54 from condition: with array properties: should create all cross product matches ok 55 from condition: with array properties: should retract all cross product matches ok 56 from condition: with not node: should only fullfill if all facts evaluate to false ok 57 from condition: with not node: should only fullfill if all facts evaluate to false ok 58 matchUntilHalt: should match until halt is called ok 59 not rule: with a single fact: should call when a string that does not equal 'hello' ok 60 not rule: with a single fact: should not call when a string that does equal 'hello' ok 61 not rule: with a single fact: should not call when a string that does equal 'hello' and one that does not ok 62 not rule: with multiple facts: should fire rules in order ok 63 not rule: modifying facts: should handle modifications ok 64 or rule: or rule with two conditions of the same type: should should match if one constraints matches ok 65 or rule: or rule with two conditions of the same type: should not call when a a constraint does not match ok 66 or rule: or rule with three conditions: should should match if one constraints matches ok 67 or rule: or rule with three conditions: should not call when none constraints match ok 68 or rule: or rule with different types: should should match if one constraints matches ok 69 or rule: or rule with different types: should not call when none constraints match ok 70 or rule: or with not conditions: should activate for each fact that does not exist ok 71 flowrule: should create a rule ok 72 flowrule: should create a rule with joins properly ok 73 flowrule: should create a rules that are dependent on eachother properly ok 74 salience: should activate in the proper order ok 75 scope option: should call when a string equals 'hello' ok 76 scope option: should call when a string equals 'world' ok 77 scope option: should not call when a string that does equal 'hello' or 'world ok 78 simple rule: should call hello world rule ok 79 Flow compiled: not rule: should call when a string that does not equal 'hello' ok 80 Flow compiled: not rule: should not call when a string that does equal 'hello' ok 81 Flow compiled: not rule: should not call when a string that does equal 'hello' and one that does not ok 82 Flow compiled: or rule: should call when a string equals 'hello' ok 83 Flow compiled: or rule: or rule with not conditions: should activate for each fact that does not exist ok 84 Flow compiled: scoped functions: should call the scoped function ok 85 Flow compiled: events: should emit when facts are asserted ok 86 Flow compiled: events: should emit when facts are retracted ok 87 Flow compiled: events: should emit when facts are modified ok 88 Flow compiled: events: should emit when rules are fired ok 89 Flow compiled: agenda-groups: should only fire events in focused group ok 90 Flow compiled: agenda-groups: should should treat focus like a stack ok 91 Flow compiled: auto-focus: should activate agenda groups in proper order ok 92 Flow compiled: fibonacci nools dsl: should calculate fibonacci 3 ok 93 Flow compiled: fibonacci nools dsl: should calculate fibonacci 4 ok 94 Flow compiled: fibonacci nools dsl: should calculate fibonacci 5 ok 95 Flow compiled: fibonacci nools dsl: should calculate fibonacci 6 ok 96 Flow compiled: diagnosis using dsl: should treat properly ok 97 nools dsl parser: define: should parse a define statement ok 98 nools dsl parser: define: should throw an error when the define block is missing a name ok 99 nools dsl parser: define: should throw an error for invalid define blocks ok 100 nools dsl parser: define: should throw an error when the global statement is missing a name ok 101 nools dsl parser: define: should throw an error when the global statement is missing a ; ok 102 nools dsl parser: global: should parse a require call statement ok 103 nools dsl parser: global: should parse a require with a '.' character that is not a relative path ok 104 nools dsl parser: global: should resolve relative require paths ok 105 nools dsl parser: global: should parse a member look up ok 106 nools dsl parser: global: should parse a strings ok 107 nools dsl parser: global: should parse a boolean ok 108 nools dsl parser: global: should parse numbers ok 109 nools dsl parser: global: should parse a new instantiation ok 110 nools dsl parser: function: should parse a function statement ok 111 nools dsl parser: function: should throw an error when the function block is missing a name ok 112 nools dsl parser: function: should throw an error for invalid define blocks ok 113 nools dsl parser: rule: should parse rules ok 114 nools dsl parser: rule: should throw an error for invalid rule blocks ok 115 nools dsl parser: rule: should throw an error for a missing name ok 116 nools dsl parser: rule: should parse not conditions ok 117 nools dsl parser: rule: should parse or conditions ok 118 nools dsl parser: rule: should parse when clause with hash and constraints in any order ok 119 nools dsl parser: rule: should parse when clause with from ok 120 nools dsl parser: rule: should parse rules with a string name in double quotes ok 121 nools dsl parser: rule: should parse rules with a string name in single quotes ok 122 nools dsl parser: rule: should parse rules with a string name with inner strings ok 123 nools dsl parser: rule: salience/priority: should parse rules with a salience ok 124 nools dsl parser: rule: salience/priority: should parse rules with a priority ok 125 nools dsl parser: rule: salience/priority: should parse rules with a salience with a ; ok 126 nools dsl parser: rule: salience/priority: should parse rules with a priority with a ; ok 127 nools dsl parser: rule: salience/priority: should throw an error if the salience is not a number ok 128 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' ok 129 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agendaGroup' ok 130 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in '"' ok 131 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in "'" ok 132 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as true ok 133 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as false ok 134 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as true ok 135 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as false ok 136 nools dsl parser: rule: rules with auto-focus/autoFocus: should throw errors for values other than true or false ok 137 nools dsl parser: rule: should throw an error for invalid when clauses ok 138 nools dsl parser: rule: should throw an error for invalid then clauses ok 139 nools dsl parser: rule: should parse rules with exists clause ok 140 A Parser: should parse valid string expressions ok 141 A Parser: should parse regexps and not be greedy ok 142 A Parser: should parse valid string expressions with functions ok 143 A Parser: should parse valid string expressions with property access ok 144 A Parser: should parse valid string expressions with boolean operators ok 145 A Parser: should handle operator associativity properly ok 146 A Parser: should parse arrays ok 147 A Parser: should parse the in operator ok 148 A Parser: should parse the notIn operator ok 149 A Parser: should parse truthy statements ok 150 Rule: createRule: with strings: should create for string ok 151 Rule: createRule: with strings: should create for String ok 152 Rule: createRule: with strings: should create for number ok 153 Rule: createRule: with strings: should create for Number ok 154 Rule: createRule: with strings: should create for date ok 155 Rule: createRule: with strings: should create for Date ok 156 Rule: createRule: with strings: should create for array ok 157 Rule: createRule: with strings: should create for Array ok 158 Rule: createRule: with strings: should create for boolean ok 159 Rule: createRule: with strings: should create for Boolean ok 160 Rule: createRule: with strings: should create for regexp ok 161 Rule: createRule: with strings: should create for Regexp ok 162 Rule: createRule: with strings: should create for object ok 163 Rule: createRule: with strings: should create for Object ok 164 Rule: createRule: with strings: should create for hash ok 165 Rule: createRule: with strings: should create for Hash ok 166 Rule: createRule: with functions: should create for String function ok 167 Rule: createRule: with functions: should create for Number function ok 168 Rule: createRule: with functions: should create for Date function ok 169 Rule: createRule: with functions: should create for [] ok 170 Rule: createRule: with functions: should create for Array function ok 171 Rule: createRule: with functions: should create for Boolean function ok 172 Rule: createRule: with functions: should create for RegExp function ok 173 Rule: createRule: with functions: should create for Object function ok 174 Rule: createRule: with functions: should create for custom functions ok 175 Rule: createRule: should create a composite rule ok 176 Rule: createRule: should create a not pattern ok 177 Rule: createRule: should create a or pattern ok 178 Rule: createRule: should include reference store in constraints ok 179 Rule: createRule: should should include from constraints ok 180 Rule: createRule: should should include from constraints ok 181 Rule: createRule: should should include exists constraints # tests 181 # pass 181 # fail 0
1..181 ok 1 constraint matcher: match: should check equality ok 2 constraint matcher: match: should check inequality ok 3 constraint matcher: match: should check gt operator ok 4 constraint matcher: match: should check lt operator ok 5 constraint matcher: match: should check gte operator ok 6 constraint matcher: match: should check lte operator ok 7 constraint matcher: match: should check lte operator ok 8 constraint matcher: match: should check like operator ok 9 constraint matcher: match: should check notLike operator ok 10 constraint matcher: match: should check and operator ok 11 constraint matcher: match: should check or operator ok 12 constraint matcher: match: should check with member operator ok 13 constraint matcher: match: should check with in operator ok 14 constraint matcher: match: should check with notIn operator ok 15 constraint matcher: match: should allow properties with in ok 16 constraint matcher: match: should check with boolean associativity ok 17 constraint matcher: match: should check with nested properties ok 18 constraint matcher: match: should check with function ok 19 constraint matcher: match: should check with functions and identifier args ok 20 constraint matcher: match: should check with functions in a deep property chain and identifier args ok 21 constraint matcher: match: should check with functions in a deep property chain that returns an object and identifier args ok 22 constraint matcher: match: should have date helpers ok 23 constraint matcher: match: should create have type helpers ok 24 constraint matcher: match: should check truthy statements ok 25 constraint matcher: toConstraints: should create for expressions ok 26 constraint matcher: toConstraints: should create correct pattern depending on scope ok 27 constraint matcher: toJs: should create js equvalent expression ok 28 constraint matcher: getIdentifiers: should create the correct atoms for and expressions ok 29 constraint matcher: equals: should return true when equal ok 30 constraint matcher: equals: should return false when not equal ok 31 constraint matcher: .getIndexableProperties: should get properties with no functions ok 32 constraint matcher: .getIndexableProperties: should not get non indexable constraints ok 33 constraint matcher: .getIndexableProperties: should not get properties with functions ok 34 agenda-groups: should only fire events in focused group ok 35 agenda-groups: should should treat focus like a stack ok 36 auto-focus: should activate agenda groups in proper order ok 37 async actions: should fire all rules ok 38 events: should emit when facts are asserted ok 39 events: should emit when facts are retracted ok 40 events: should emit when facts are modified ok 41 events: should emit when rules are fired ok 42 exists rule: fact assertion: should only activate once ok 43 exists rule: fact assertion: should not activate once if the fact does not exists ok 44 exists rule: fact retraction: should should handle fact retractions properly ok 45 exists rule: fact modification: should should handle fact modification properly ok 46 exists rule: with from modifier: assert: should should handle fact assertion properly ok 47 exists rule: with from modifier: retract: should should handle fact retraction properly ok 48 exists rule: with from modifier: modify: should should handle fact modification properly ok 49 from condition: with non array properties: should create the proper match contexts ok 50 from condition: with non array properties: should propagate modified facts properly ok 51 from condition: with non array properties: should retract facts properly ok 52 from condition: with js source: should create the proper match contexts ok 53 from condition: with js source: should propagate modified facts properly ok 54 from condition: with array properties: should create all cross product matches ok 55 from condition: with array properties: should retract all cross product matches ok 56 from condition: with not node: should only fullfill if all facts evaluate to false ok 57 from condition: with not node: should only fullfill if all facts evaluate to false ok 58 matchUntilHalt: should match until halt is called ok 59 not rule: with a single fact: should call when a string that does not equal 'hello' ok 60 not rule: with a single fact: should not call when a string that does equal 'hello' ok 61 not rule: with a single fact: should not call when a string that does equal 'hello' and one that does not ok 62 not rule: with multiple facts: should fire rules in order ok 63 not rule: modifying facts: should handle modifications ok 64 or rule: or rule with two conditions of the same type: should should match if one constraints matches ok 65 or rule: or rule with two conditions of the same type: should not call when a a constraint does not match ok 66 or rule: or rule with three conditions: should should match if one constraints matches ok 67 or rule: or rule with three conditions: should not call when none constraints match ok 68 or rule: or rule with different types: should should match if one constraints matches ok 69 or rule: or rule with different types: should not call when none constraints match ok 70 or rule: or with not conditions: should activate for each fact that does not exist ok 71 flowrule: should create a rule ok 72 flowrule: should create a rule with joins properly ok 73 flowrule: should create a rules that are dependent on eachother properly ok 74 salience: should activate in the proper order ok 75 scope option: should call when a string equals 'hello' ok 76 scope option: should call when a string equals 'world' ok 77 scope option: should not call when a string that does equal 'hello' or 'world ok 78 simple rule: should call hello world rule ok 79 Flow compiled: not rule: should call when a string that does not equal 'hello' ok 80 Flow compiled: not rule: should not call when a string that does equal 'hello' ok 81 Flow compiled: not rule: should not call when a string that does equal 'hello' and one that does not ok 82 Flow compiled: or rule: should call when a string equals 'hello' ok 83 Flow compiled: or rule: or rule with not conditions: should activate for each fact that does not exist ok 84 Flow compiled: scoped functions: should call the scoped function ok 85 Flow compiled: events: should emit when facts are asserted ok 86 Flow compiled: events: should emit when facts are retracted ok 87 Flow compiled: events: should emit when facts are modified ok 88 Flow compiled: events: should emit when rules are fired ok 89 Flow compiled: agenda-groups: should only fire events in focused group ok 90 Flow compiled: agenda-groups: should should treat focus like a stack ok 91 Flow compiled: auto-focus: should activate agenda groups in proper order ok 92 Flow compiled: fibonacci nools dsl: should calculate fibonacci 3 ok 93 Flow compiled: fibonacci nools dsl: should calculate fibonacci 4 ok 94 Flow compiled: fibonacci nools dsl: should calculate fibonacci 5 ok 95 Flow compiled: fibonacci nools dsl: should calculate fibonacci 6 ok 96 Flow compiled: diagnosis using dsl: should treat properly ok 97 nools dsl parser: define: should parse a define statement ok 98 nools dsl parser: define: should throw an error when the define block is missing a name ok 99 nools dsl parser: define: should throw an error for invalid define blocks ok 100 nools dsl parser: define: should throw an error when the global statement is missing a name ok 101 nools dsl parser: define: should throw an error when the global statement is missing a ; ok 102 nools dsl parser: global: should parse a require call statement ok 103 nools dsl parser: global: should parse a require with a '.' character that is not a relative path ok 104 nools dsl parser: global: should resolve relative require paths ok 105 nools dsl parser: global: should parse a member look up ok 106 nools dsl parser: global: should parse a strings ok 107 nools dsl parser: global: should parse a boolean ok 108 nools dsl parser: global: should parse numbers ok 109 nools dsl parser: global: should parse a new instantiation ok 110 nools dsl parser: function: should parse a function statement ok 111 nools dsl parser: function: should throw an error when the function block is missing a name ok 112 nools dsl parser: function: should throw an error for invalid define blocks ok 113 nools dsl parser: rule: should parse rules ok 114 nools dsl parser: rule: should throw an error for invalid rule blocks ok 115 nools dsl parser: rule: should throw an error for a missing name ok 116 nools dsl parser: rule: should parse not conditions ok 117 nools dsl parser: rule: should parse or conditions ok 118 nools dsl parser: rule: should parse when clause with hash and constraints in any order ok 119 nools dsl parser: rule: should parse when clause with from ok 120 nools dsl parser: rule: should parse rules with a string name in double quotes ok 121 nools dsl parser: rule: should parse rules with a string name in single quotes ok 122 nools dsl parser: rule: should parse rules with a string name with inner strings ok 123 nools dsl parser: rule: salience/priority: should parse rules with a salience ok 124 nools dsl parser: rule: salience/priority: should parse rules with a priority ok 125 nools dsl parser: rule: salience/priority: should parse rules with a salience with a ; ok 126 nools dsl parser: rule: salience/priority: should parse rules with a priority with a ; ok 127 nools dsl parser: rule: salience/priority: should throw an error if the salience is not a number ok 128 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' ok 129 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agendaGroup' ok 130 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in '"' ok 131 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in "'" ok 132 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as true ok 133 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as false ok 134 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as true ok 135 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as false ok 136 nools dsl parser: rule: rules with auto-focus/autoFocus: should throw errors for values other than true or false ok 137 nools dsl parser: rule: should throw an error for invalid when clauses ok 138 nools dsl parser: rule: should throw an error for invalid then clauses ok 139 nools dsl parser: rule: should parse rules with exists clause ok 140 A Parser: should parse valid string expressions ok 141 A Parser: should parse regexps and not be greedy ok 142 A Parser: should parse valid string expressions with functions ok 143 A Parser: should parse valid string expressions with property access ok 144 A Parser: should parse valid string expressions with boolean operators ok 145 A Parser: should handle operator associativity properly ok 146 A Parser: should parse arrays ok 147 A Parser: should parse the in operator ok 148 A Parser: should parse the notIn operator ok 149 A Parser: should parse truthy statements ok 150 Rule: createRule: with strings: should create for string ok 151 Rule: createRule: with strings: should create for String ok 152 Rule: createRule: with strings: should create for number ok 153 Rule: createRule: with strings: should create for Number ok 154 Rule: createRule: with strings: should create for date ok 155 Rule: createRule: with strings: should create for Date ok 156 Rule: createRule: with strings: should create for array ok 157 Rule: createRule: with strings: should create for Array ok 158 Rule: createRule: with strings: should create for boolean ok 159 Rule: createRule: with strings: should create for Boolean ok 160 Rule: createRule: with strings: should create for regexp ok 161 Rule: createRule: with strings: should create for Regexp ok 162 Rule: createRule: with strings: should create for object ok 163 Rule: createRule: with strings: should create for Object ok 164 Rule: createRule: with strings: should create for hash ok 165 Rule: createRule: with strings: should create for Hash ok 166 Rule: createRule: with functions: should create for String function ok 167 Rule: createRule: with functions: should create for Number function ok 168 Rule: createRule: with functions: should create for Date function ok 169 Rule: createRule: with functions: should create for [] ok 170 Rule: createRule: with functions: should create for Array function ok 171 Rule: createRule: with functions: should create for Boolean function ok 172 Rule: createRule: with functions: should create for RegExp function ok 173 Rule: createRule: with functions: should create for Object function ok 174 Rule: createRule: with functions: should create for custom functions ok 175 Rule: createRule: should create a composite rule ok 176 Rule: createRule: should create a not pattern ok 177 Rule: createRule: should create a or pattern ok 178 Rule: createRule: should include reference store in constraints ok 179 Rule: createRule: should should include from constraints ok 180 Rule: createRule: should should include from constraints ok 181 Rule: createRule: should should include exists constraints # tests 181 # pass 181 # fail 0
idle timeout: 30 seconds with no output
2013-11-08 21:27:12
2013-11-09 00:04:34
8.0
✓10.0
9.0
20.0
21.0
22.0
23.0
24.0
25.0
26.0
27.0
28.0
29.0
14.0
15.0
16.0
17.0
18.0
19.0
20.0
21.0
22.0
23.0
24.0
6.0
6.0
6.0
1..180 ok 1 constraint matcher: match: should check equality ok 2 constraint matcher: match: should check inequality ok 3 constraint matcher: match: should check gt operator ok 4 constraint matcher: match: should check lt operator ok 5 constraint matcher: match: should check gte operator ok 6 constraint matcher: match: should check lte operator ok 7 constraint matcher: match: should check lte operator ok 8 constraint matcher: match: should check like operator ok 9 constraint matcher: match: should check notLike operator ok 10 constraint matcher: match: should check and operator ok 11 constraint matcher: match: should check or operator ok 12 constraint matcher: match: should check with member operator ok 13 constraint matcher: match: should check with in operator ok 14 constraint matcher: match: should check with notIn operator ok 15 constraint matcher: match: should allow properties with in ok 16 constraint matcher: match: should check with boolean associativity ok 17 constraint matcher: match: should check with nested properties ok 18 constraint matcher: match: should check with function ok 19 constraint matcher: match: should check with functions and identifier args ok 20 constraint matcher: match: should check with functions in a deep property chain and identifier args ok 21 constraint matcher: match: should check with functions in a deep property chain that returns an object and identifier args ok 22 constraint matcher: match: should have date helpers ok 23 constraint matcher: match: should create have type helpers ok 24 constraint matcher: match: should check truthy statements ok 25 constraint matcher: toConstraints: should create for expressions ok 26 constraint matcher: toConstraints: should create correct pattern depending on scope ok 27 constraint matcher: toJs: should create js equvalent expression ok 28 constraint matcher: getIdentifiers: should create the correct atoms for and expressions ok 29 constraint matcher: equals: should return true when equal ok 30 constraint matcher: equals: should return false when not equal ok 31 nools: .flow: should create a flow ok 32 nools: .deleteFlow: should delete a flow by name ok 33 nools: .deleteFlow: should delete a flow using a Flow instance ok 34 nools: .hasFlow: should return true if the flow exists ok 35 nools: .hasFlow: should return false if the flow does not exists ok 36 nools: .deleteFlows: should deleteAllFlows ok 37 Flow: rule: should create a rule ok 38 Flow: rule: should create a rule with joins properly ok 39 Flow: rule: should create a rules that are dependent on eachother properly ok 40 Flow: simple rule: should call hello world rule ok 41 Flow: not rule: with a single fact: should call when a string that does not equal 'hello' ok 42 Flow: not rule: with a single fact: should not call when a string that does equal 'hello' ok 43 Flow: not rule: with a single fact: should not call when a string that does equal 'hello' and one that does not ok 44 Flow: not rule: with multiple facts: should fire rules in order ok 45 Flow: not rule: modifying facts: should handle modifications ok 46 Flow: or rule: or rule with two conditions of the same type: should should match if one constraints matches ok 47 Flow: or rule: or rule with two conditions of the same type: should not call when a a constraint does not match ok 48 Flow: or rule: or rule with three conditions: should should match if one constraints matches ok 49 Flow: or rule: or rule with three conditions: should not call when none constraints match ok 50 Flow: or rule: or rule with different types: should should match if one constraints matches ok 51 Flow: or rule: or rule with different types: should not call when none constraints match ok 52 Flow: or rule: or with not conditions: should activate for each fact that does not exist ok 53 Flow: rule with from: with non array properties: should create the proper match contexts ok 54 Flow: rule with from: with non array properties: should propagate modified facts properly ok 55 Flow: rule with from: with non array properties: should retract facts properly ok 56 Flow: rule with from: with js source: should create the proper match contexts ok 57 Flow: rule with from: with js source: should propagate modified facts properly ok 58 Flow: rule with from: with array properties: should create all cross product matches ok 59 Flow: rule with from: with array properties: should retract all cross product matches ok 60 Flow: rule with from: with not node: should only fullfill if all facts evaluate to false ok 61 Flow: rule with from: with not node: should only fullfill if all facts evaluate to false ok 62 Flow: scope option: should call when a string equals 'hello' ok 63 Flow: scope option: should call when a string equals 'world' ok 64 Flow: scope option: should not call when a string that does equal 'hello' or 'world ok 65 Flow: events: should emit when facts are asserted ok 66 Flow: events: should emit when facts are retracted ok 67 Flow: events: should emit when facts are modified ok 68 Flow: events: should emit when rules are fired ok 69 Flow: agenda-groups: should only fire events in focused group ok 70 Flow: agenda-groups: should should treat focus like a stack ok 71 Flow: auto-focus: should activate agenda groups in proper order ok 72 Flow: salience: should activate in the proper order ok 73 Flow: async actions: should fire all rules ok 74 Flow: matchUntilHalt: should match until halt is called ok 75 Flow: fibonacci: should calculate fibonacci 3 ok 76 Flow: fibonacci: should calculate fibonacci 4 ok 77 Flow: fibonacci: should calculate fibonacci 5 ok 78 Flow: fibonacci: should calculate fibonacci 6 ok 79 Flow: diagnosis: should treat properly ok 80 Flow compiled: not rule: should call when a string that does not equal 'hello' ok 81 Flow compiled: not rule: should not call when a string that does equal 'hello' ok 82 Flow compiled: not rule: should not call when a string that does equal 'hello' and one that does not ok 83 Flow compiled: or rule: should call when a string equals 'hello' ok 84 Flow compiled: or rule: or rule with not conditions: should activate for each fact that does not exist ok 85 Flow compiled: scoped functions: should call the scoped function ok 86 Flow compiled: events: should emit when facts are asserted ok 87 Flow compiled: events: should emit when facts are retracted ok 88 Flow compiled: events: should emit when facts are modified ok 89 Flow compiled: events: should emit when rules are fired ok 90 Flow compiled: agenda-groups: should only fire events in focused group ok 91 Flow compiled: agenda-groups: should should treat focus like a stack ok 92 Flow compiled: auto-focus: should activate agenda groups in proper order ok 93 Flow compiled: fibonacci nools dsl: should calculate fibonacci 3 ok 94 Flow compiled: fibonacci nools dsl: should calculate fibonacci 4 ok 95 Flow compiled: fibonacci nools dsl: should calculate fibonacci 5 ok 96 Flow compiled: fibonacci nools dsl: should calculate fibonacci 6 ok 97 Flow compiled: diagnosis using dsl: should treat properly ok 98 nools dsl parser: define: should parse a define statement ok 99 nools dsl parser: define: should throw an error when the define block is missing a name ok 100 nools dsl parser: define: should throw an error for invalid define blocks ok 101 nools dsl parser: define: should throw an error when the global statement is missing a name ok 102 nools dsl parser: define: should throw an error when the global statement is missing a ; ok 103 nools dsl parser: global: should parse a require call statement ok 104 nools dsl parser: global: should parse a require with a '.' character that is not a relative path ok 105 nools dsl parser: global: should resolve relative require paths ok 106 nools dsl parser: global: should parse a member look up ok 107 nools dsl parser: global: should parse a strings ok 108 nools dsl parser: global: should parse a boolean ok 109 nools dsl parser: global: should parse numbers ok 110 nools dsl parser: global: should parse a new instantiation ok 111 nools dsl parser: function: should parse a function statement ok 112 nools dsl parser: function: should throw an error when the function block is missing a name ok 113 nools dsl parser: function: should throw an error for invalid define blocks ok 114 nools dsl parser: rule: should parse rules ok 115 nools dsl parser: rule: should throw an error for invalid rule blocks ok 116 nools dsl parser: rule: should throw an error for a missing name ok 117 nools dsl parser: rule: should parse not conditions ok 118 nools dsl parser: rule: should parse or conditions ok 119 nools dsl parser: rule: should parse when clause with hash and constraints in any order ok 120 nools dsl parser: rule: should parse when clause with from ok 121 nools dsl parser: rule: should parse rules with a string name in double quotes ok 122 nools dsl parser: rule: should parse rules with a string name in single quotes ok 123 nools dsl parser: rule: should parse rules with a string name with inner strings ok 124 nools dsl parser: rule: salience/priority: should parse rules with a salience ok 125 nools dsl parser: rule: salience/priority: should parse rules with a priority ok 126 nools dsl parser: rule: salience/priority: should parse rules with a salience with a ; ok 127 nools dsl parser: rule: salience/priority: should parse rules with a priority with a ; ok 128 nools dsl parser: rule: salience/priority: should throw an error if the salience is not a number ok 129 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' ok 130 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agendaGroup' ok 131 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in '"' ok 132 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in "'" ok 133 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as true ok 134 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as false ok 135 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as true ok 136 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as false ok 137 nools dsl parser: rule: rules with auto-focus/autoFocus: should throw errors for values other than true or false ok 138 nools dsl parser: rule: should throw an error for invalid when clauses ok 139 nools dsl parser: rule: should throw an error for invalid then clauses ok 140 A Parser: should parse valid string expressions ok 141 A Parser: should parse regexps and not be greedy ok 142 A Parser: should parse valid string expressions with functions ok 143 A Parser: should parse valid string expressions with property access ok 144 A Parser: should parse valid string expressions with boolean operators ok 145 A Parser: should handle operator associativity properly ok 146 A Parser: should parse arrays ok 147 A Parser: should parse the in operator ok 148 A Parser: should parse the notIn operator ok 149 A Parser: should parse truthy statements ok 150 Rule: createRule: with strings: should create for string ok 151 Rule: createRule: with strings: should create for String ok 152 Rule: createRule: with strings: should create for number ok 153 Rule: createRule: with strings: should create for Number ok 154 Rule: createRule: with strings: should create for date ok 155 Rule: createRule: with strings: should create for Date ok 156 Rule: createRule: with strings: should create for array ok 157 Rule: createRule: with strings: should create for Array ok 158 Rule: createRule: with strings: should create for boolean ok 159 Rule: createRule: with strings: should create for Boolean ok 160 Rule: createRule: with strings: should create for regexp ok 161 Rule: createRule: with strings: should create for Regexp ok 162 Rule: createRule: with strings: should create for object ok 163 Rule: createRule: with strings: should create for Object ok 164 Rule: createRule: with strings: should create for hash ok 165 Rule: createRule: with strings: should create for Hash ok 166 Rule: createRule: with functions: should create for String function ok 167 Rule: createRule: with functions: should create for Number function ok 168 Rule: createRule: with functions: should create for Date function ok 169 Rule: createRule: with functions: should create for [] ok 170 Rule: createRule: with functions: should create for Array function ok 171 Rule: createRule: with functions: should create for Boolean function ok 172 Rule: createRule: with functions: should create for RegExp function ok 173 Rule: createRule: with functions: should create for Object function ok 174 Rule: createRule: with functions: should create for custom functions ok 175 Rule: createRule: should create a composite rule ok 176 Rule: createRule: should create a not pattern ok 177 Rule: createRule: should create a or pattern ok 178 Rule: createRule: should include reference store in constraints ok 179 Rule: createRule: should should include from constraints ok 180 Rule: createRule: should should include from constraints # tests 180 # pass 180 # fail 0
idle timeout: 30 seconds with no output
2013-10-14 23:35:18
2013-10-15 00:09:37
8.0
9.0
10.0
✓20.0
✓21.0
✓22.0
✓23.0
✓24.0
✓25.0
✓26.0
✓27.0
✓28.0
✓29.0
✓14.0
✓15.0
✓16.0
✓17.0
✓18.0
✓19.0
✓20.0
✓21.0
✓22.0
✓23.0
✓24.0
✓6.0
✓6.0
✓6.0
1..175 ok 1 constraint matcher: match: should check equality ok 2 constraint matcher: match: should check inequality ok 3 constraint matcher: match: should check gt operator ok 4 constraint matcher: match: should check lt operator ok 5 constraint matcher: match: should check gte operator ok 6 constraint matcher: match: should check lte operator ok 7 constraint matcher: match: should check lte operator ok 8 constraint matcher: match: should check like operator ok 9 constraint matcher: match: should check notLike operator ok 10 constraint matcher: match: should check and operator ok 11 constraint matcher: match: should check or operator ok 12 constraint matcher: match: should check with member operator ok 13 constraint matcher: match: should check with in operator ok 14 constraint matcher: match: should check with notIn operator ok 15 constraint matcher: match: should allow properties with in ok 16 constraint matcher: match: should check with boolean associativity ok 17 constraint matcher: match: should check with nested properties ok 18 constraint matcher: match: should check with function ok 19 constraint matcher: match: should check with functions and identifier args ok 20 constraint matcher: match: should check with functions in a deep property chain and identifier args ok 21 constraint matcher: match: should check with functions in a deep property chain that returns an object and identifier args ok 22 constraint matcher: match: should have date helpers ok 23 constraint matcher: match: should create have type helpers ok 24 constraint matcher: match: should check truthy statements ok 25 constraint matcher: toConstraints: should create for expressions ok 26 constraint matcher: toConstraints: should create correct pattern depending on scope ok 27 constraint matcher: toJs: should create js equvalent expression ok 28 constraint matcher: getIdentifiers: should create the correct atoms for and expressions ok 29 constraint matcher: equals: should return true when equal ok 30 constraint matcher: equals: should return false when not equal ok 31 nools: .flow: should create a flow ok 32 nools: .deleteFlow: should delete a flow by name ok 33 nools: .deleteFlow: should delete a flow using a Flow instance ok 34 nools: .hasFlow: should return true if the flow exists ok 35 nools: .hasFlow: should return false if the flow does not exists ok 36 nools: .deleteFlows: should deleteAllFlows ok 37 Flow: rule: should create a rule ok 38 Flow: rule: should create a rule with joins properly ok 39 Flow: rule: should create a rules that are dependent on eachother properly ok 40 Flow: simple rule: should call hello world rule ok 41 Flow: not rule: with a single fact: should call when a string that does not equal 'hello' ok 42 Flow: not rule: with a single fact: should not call when a string that does equal 'hello' ok 43 Flow: not rule: with a single fact: should not call when a string that does equal 'hello' and one that does not ok 44 Flow: not rule: with multiple facts: should fire rules in order ok 45 Flow: not rule: modifying facts: should handle modifications ok 46 Flow: or rule: or rule with two conditions of the same type: should should match if one constraints matches ok 47 Flow: or rule: or rule with two conditions of the same type: should not call when a a constraint does not match ok 48 Flow: or rule: or rule with three conditions: should should match if one constraints matches ok 49 Flow: or rule: or rule with three conditions: should not call when none constraints match ok 50 Flow: or rule: or rule with different types: should should match if one constraints matches ok 51 Flow: or rule: or rule with different types: should not call when none constraints match ok 52 Flow: rule with from: with non array properties: should create the proper match contexts ok 53 Flow: rule with from: with non array properties: should propagate modified facts properly ok 54 Flow: rule with from: with non array properties: should retract facts properly ok 55 Flow: rule with from: with array properties: should create all cross product matches ok 56 Flow: rule with from: with array properties: should retract all cross product matches ok 57 Flow: rule with from: with not node: should only fullfill if all facts evaluate to false ok 58 Flow: rule with from: with not node: should only fullfill if all facts evaluate to false ok 59 Flow: scope option: should call when a string equals 'hello' ok 60 Flow: scope option: should call when a string equals 'world' ok 61 Flow: scope option: should not call when a string that does equal 'hello' or 'world ok 62 Flow: events: should emit when facts are asserted ok 63 Flow: events: should emit when facts are retracted ok 64 Flow: events: should emit when facts are modified ok 65 Flow: events: should emit when rules are fired ok 66 Flow: agenda-groups: should only fire events in focused group ok 67 Flow: agenda-groups: should should treat focus like a stack ok 68 Flow: auto-focus: should activate agenda groups in proper order ok 69 Flow: salience: should activate in the proper order ok 70 Flow: async actions: should fire all rules ok 71 Flow: matchUntilHalt: should match until halt is called ok 72 Flow: fibonacci: should calculate fibonacci 3 ok 73 Flow: fibonacci: should calculate fibonacci 4 ok 74 Flow: fibonacci: should calculate fibonacci 5 ok 75 Flow: fibonacci: should calculate fibonacci 6 ok 76 Flow: diagnosis: should treat properly ok 77 Flow compiled: not rule: should call when a string that does not equal 'hello' ok 78 Flow compiled: not rule: should not call when a string that does equal 'hello' ok 79 Flow compiled: not rule: should not call when a string that does equal 'hello' and one that does not ok 80 Flow compiled: or rule: should call when a string equals 'hello' ok 81 Flow compiled: scoped functions: should call the scoped function ok 82 Flow compiled: events: should emit when facts are asserted ok 83 Flow compiled: events: should emit when facts are retracted ok 84 Flow compiled: events: should emit when facts are modified ok 85 Flow compiled: events: should emit when rules are fired ok 86 Flow compiled: agenda-groups: should only fire events in focused group ok 87 Flow compiled: agenda-groups: should should treat focus like a stack ok 88 Flow compiled: auto-focus: should activate agenda groups in proper order ok 89 Flow compiled: fibonacci nools dsl: should calculate fibonacci 3 ok 90 Flow compiled: fibonacci nools dsl: should calculate fibonacci 4 ok 91 Flow compiled: fibonacci nools dsl: should calculate fibonacci 5 ok 92 Flow compiled: fibonacci nools dsl: should calculate fibonacci 6 ok 93 Flow compiled: diagnosis using dsl: should treat properly ok 94 nools dsl parser: define: should parse a define statement ok 95 nools dsl parser: define: should throw an error when the define block is missing a name ok 96 nools dsl parser: define: should throw an error for invalid define blocks ok 97 nools dsl parser: define: should throw an error when the global statement is missing a name ok 98 nools dsl parser: define: should throw an error when the global statement is missing a ; ok 99 nools dsl parser: global: should parse a require call statement ok 100 nools dsl parser: global: should parse a require with a '.' character that is not a relative path ok 101 nools dsl parser: global: should resolve relative require paths ok 102 nools dsl parser: global: should parse a member look up ok 103 nools dsl parser: global: should parse a strings ok 104 nools dsl parser: global: should parse a boolean ok 105 nools dsl parser: global: should parse numbers ok 106 nools dsl parser: global: should parse a new instantiation ok 107 nools dsl parser: function: should parse a function statement ok 108 nools dsl parser: function: should throw an error when the function block is missing a name ok 109 nools dsl parser: function: should throw an error for invalid define blocks ok 110 nools dsl parser: rule: should parse rules ok 111 nools dsl parser: rule: should throw an error for invalid rule blocks ok 112 nools dsl parser: rule: should throw an error for a missing name ok 113 nools dsl parser: rule: should parse not conditions ok 114 nools dsl parser: rule: should parse or conditions ok 115 nools dsl parser: rule: should parse when clause with hash and constraints in any order ok 116 nools dsl parser: rule: should parse when clause with from ok 117 nools dsl parser: rule: should parse rules with a string name in double quotes ok 118 nools dsl parser: rule: should parse rules with a string name in single quotes ok 119 nools dsl parser: rule: should parse rules with a string name with inner strings ok 120 nools dsl parser: rule: salience/priority: should parse rules with a salience ok 121 nools dsl parser: rule: salience/priority: should parse rules with a priority ok 122 nools dsl parser: rule: salience/priority: should parse rules with a salience with a ; ok 123 nools dsl parser: rule: salience/priority: should parse rules with a priority with a ; ok 124 nools dsl parser: rule: salience/priority: should throw an error if the salience is not a number ok 125 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' ok 126 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agendaGroup' ok 127 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in '"' ok 128 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in "'" ok 129 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as true ok 130 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as false ok 131 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as true ok 132 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as false ok 133 nools dsl parser: rule: rules with auto-focus/autoFocus: should throw errors for values other than true or false ok 134 nools dsl parser: rule: should throw an error for invalid when clauses ok 135 nools dsl parser: rule: should throw an error for invalid then clauses ok 136 A Parser: should parse valid string expressions ok 137 A Parser: should parse regexps and not be greedy ok 138 A Parser: should parse valid string expressions with functions ok 139 A Parser: should parse valid string expressions with property access ok 140 A Parser: should parse valid string expressions with boolean operators ok 141 A Parser: should handle operator associativity properly ok 142 A Parser: should parse arrays ok 143 A Parser: should parse the in operator ok 144 A Parser: should parse the notIn operator ok 145 A Parser: should parse truthy statements ok 146 Rule: createRule: with strings: should create for string ok 147 Rule: createRule: with strings: should create for String ok 148 Rule: createRule: with strings: should create for number ok 149 Rule: createRule: with strings: should create for Number ok 150 Rule: createRule: with strings: should create for date ok 151 Rule: createRule: with strings: should create for Date ok 152 Rule: createRule: with strings: should create for array ok 153 Rule: createRule: with strings: should create for Array ok 154 Rule: createRule: with strings: should create for boolean ok 155 Rule: createRule: with strings: should create for Boolean ok 156 Rule: createRule: with strings: should create for regexp ok 157 Rule: createRule: with strings: should create for Regexp ok 158 Rule: createRule: with strings: should create for object ok 159 Rule: createRule: with strings: should create for Object ok 160 Rule: createRule: with strings: should create for hash ok 161 Rule: createRule: with strings: should create for Hash ok 162 Rule: createRule: with functions: should create for String function ok 163 Rule: createRule: with functions: should create for Number function ok 164 Rule: createRule: with functions: should create for Date function ok 165 Rule: createRule: with functions: should create for [] ok 166 Rule: createRule: with functions: should create for Array function ok 167 Rule: createRule: with functions: should create for Boolean function ok 168 Rule: createRule: with functions: should create for RegExp function ok 169 Rule: createRule: with functions: should create for Object function ok 170 Rule: createRule: with functions: should create for custom functions ok 171 Rule: createRule: should create a composite rule ok 172 Rule: createRule: should create a not pattern ok 173 Rule: createRule: should create a or pattern ok 174 Rule: createRule: should include reference store in constraints ok 175 Rule: createRule: should should include from constraints # tests 175 # pass 175 # fail 0
1..175 ok 1 constraint matcher: match: should check equality ok 2 constraint matcher: match: should check inequality ok 3 constraint matcher: match: should check gt operator ok 4 constraint matcher: match: should check lt operator ok 5 constraint matcher: match: should check gte operator ok 6 constraint matcher: match: should check lte operator ok 7 constraint matcher: match: should check lte operator ok 8 constraint matcher: match: should check like operator ok 9 constraint matcher: match: should check notLike operator ok 10 constraint matcher: match: should check and operator ok 11 constraint matcher: match: should check or operator ok 12 constraint matcher: match: should check with member operator ok 13 constraint matcher: match: should check with in operator ok 14 constraint matcher: match: should check with notIn operator ok 15 constraint matcher: match: should allow properties with in ok 16 constraint matcher: match: should check with boolean associativity ok 17 constraint matcher: match: should check with nested properties ok 18 constraint matcher: match: should check with function ok 19 constraint matcher: match: should check with functions and identifier args ok 20 constraint matcher: match: should check with functions in a deep property chain and identifier args ok 21 constraint matcher: match: should check with functions in a deep property chain that returns an object and identifier args ok 22 constraint matcher: match: should have date helpers ok 23 constraint matcher: match: should create have type helpers ok 24 constraint matcher: match: should check truthy statements ok 25 constraint matcher: toConstraints: should create for expressions ok 26 constraint matcher: toConstraints: should create correct pattern depending on scope ok 27 constraint matcher: toJs: should create js equvalent expression ok 28 constraint matcher: getIdentifiers: should create the correct atoms for and expressions ok 29 constraint matcher: equals: should return true when equal ok 30 constraint matcher: equals: should return false when not equal ok 31 nools: .flow: should create a flow ok 32 nools: .deleteFlow: should delete a flow by name ok 33 nools: .deleteFlow: should delete a flow using a Flow instance ok 34 nools: .hasFlow: should return true if the flow exists ok 35 nools: .hasFlow: should return false if the flow does not exists ok 36 nools: .deleteFlows: should deleteAllFlows ok 37 Flow: rule: should create a rule ok 38 Flow: rule: should create a rule with joins properly ok 39 Flow: rule: should create a rules that are dependent on eachother properly ok 40 Flow: simple rule: should call hello world rule ok 41 Flow: not rule: with a single fact: should call when a string that does not equal 'hello' ok 42 Flow: not rule: with a single fact: should not call when a string that does equal 'hello' ok 43 Flow: not rule: with a single fact: should not call when a string that does equal 'hello' and one that does not ok 44 Flow: not rule: with multiple facts: should fire rules in order ok 45 Flow: not rule: modifying facts: should handle modifications ok 46 Flow: or rule: or rule with two conditions of the same type: should should match if one constraints matches ok 47 Flow: or rule: or rule with two conditions of the same type: should not call when a a constraint does not match ok 48 Flow: or rule: or rule with three conditions: should should match if one constraints matches ok 49 Flow: or rule: or rule with three conditions: should not call when none constraints match ok 50 Flow: or rule: or rule with different types: should should match if one constraints matches ok 51 Flow: or rule: or rule with different types: should not call when none constraints match ok 52 Flow: rule with from: with non array properties: should create the proper match contexts ok 53 Flow: rule with from: with non array properties: should propagate modified facts properly ok 54 Flow: rule with from: with non array properties: should retract facts properly ok 55 Flow: rule with from: with array properties: should create all cross product matches ok 56 Flow: rule with from: with array properties: should retract all cross product matches ok 57 Flow: rule with from: with not node: should only fullfill if all facts evaluate to false ok 58 Flow: rule with from: with not node: should only fullfill if all facts evaluate to false ok 59 Flow: scope option: should call when a string equals 'hello' ok 60 Flow: scope option: should call when a string equals 'world' ok 61 Flow: scope option: should not call when a string that does equal 'hello' or 'world ok 62 Flow: events: should emit when facts are asserted ok 63 Flow: events: should emit when facts are retracted ok 64 Flow: events: should emit when facts are modified ok 65 Flow: events: should emit when rules are fired ok 66 Flow: agenda-groups: should only fire events in focused group ok 67 Flow: agenda-groups: should should treat focus like a stack ok 68 Flow: auto-focus: should activate agenda groups in proper order ok 69 Flow: salience: should activate in the proper order ok 70 Flow: async actions: should fire all rules ok 71 Flow: matchUntilHalt: should match until halt is called ok 72 Flow: fibonacci: should calculate fibonacci 3 ok 73 Flow: fibonacci: should calculate fibonacci 4 ok 74 Flow: fibonacci: should calculate fibonacci 5 ok 75 Flow: fibonacci: should calculate fibonacci 6 ok 76 Flow: diagnosis: should treat properly ok 77 Flow compiled: not rule: should call when a string that does not equal 'hello' ok 78 Flow compiled: not rule: should not call when a string that does equal 'hello' ok 79 Flow compiled: not rule: should not call when a string that does equal 'hello' and one that does not ok 80 Flow compiled: or rule: should call when a string equals 'hello' ok 81 Flow compiled: scoped functions: should call the scoped function ok 82 Flow compiled: events: should emit when facts are asserted ok 83 Flow compiled: events: should emit when facts are retracted ok 84 Flow compiled: events: should emit when facts are modified ok 85 Flow compiled: events: should emit when rules are fired ok 86 Flow compiled: agenda-groups: should only fire events in focused group ok 87 Flow compiled: agenda-groups: should should treat focus like a stack ok 88 Flow compiled: auto-focus: should activate agenda groups in proper order ok 89 Flow compiled: fibonacci nools dsl: should calculate fibonacci 3 ok 90 Flow compiled: fibonacci nools dsl: should calculate fibonacci 4 ok 91 Flow compiled: fibonacci nools dsl: should calculate fibonacci 5 ok 92 Flow compiled: fibonacci nools dsl: should calculate fibonacci 6 ok 93 Flow compiled: diagnosis using dsl: should treat properly ok 94 nools dsl parser: define: should parse a define statement ok 95 nools dsl parser: define: should throw an error when the define block is missing a name ok 96 nools dsl parser: define: should throw an error for invalid define blocks ok 97 nools dsl parser: define: should throw an error when the global statement is missing a name ok 98 nools dsl parser: define: should throw an error when the global statement is missing a ; ok 99 nools dsl parser: global: should parse a require call statement ok 100 nools dsl parser: global: should parse a require with a '.' character that is not a relative path ok 101 nools dsl parser: global: should resolve relative require paths ok 102 nools dsl parser: global: should parse a member look up ok 103 nools dsl parser: global: should parse a strings ok 104 nools dsl parser: global: should parse a boolean ok 105 nools dsl parser: global: should parse numbers ok 106 nools dsl parser: global: should parse a new instantiation ok 107 nools dsl parser: function: should parse a function statement ok 108 nools dsl parser: function: should throw an error when the function block is missing a name ok 109 nools dsl parser: function: should throw an error for invalid define blocks ok 110 nools dsl parser: rule: should parse rules ok 111 nools dsl parser: rule: should throw an error for invalid rule blocks ok 112 nools dsl parser: rule: should throw an error for a missing name ok 113 nools dsl parser: rule: should parse not conditions ok 114 nools dsl parser: rule: should parse or conditions ok 115 nools dsl parser: rule: should parse when clause with hash and constraints in any order ok 116 nools dsl parser: rule: should parse when clause with from ok 117 nools dsl parser: rule: should parse rules with a string name in double quotes ok 118 nools dsl parser: rule: should parse rules with a string name in single quotes ok 119 nools dsl parser: rule: should parse rules with a string name with inner strings ok 120 nools dsl parser: rule: salience/priority: should parse rules with a salience ok 121 nools dsl parser: rule: salience/priority: should parse rules with a priority ok 122 nools dsl parser: rule: salience/priority: should parse rules with a salience with a ; ok 123 nools dsl parser: rule: salience/priority: should parse rules with a priority with a ; ok 124 nools dsl parser: rule: salience/priority: should throw an error if the salience is not a number ok 125 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' ok 126 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agendaGroup' ok 127 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in '"' ok 128 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in "'" ok 129 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as true ok 130 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as false ok 131 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as true ok 132 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as false ok 133 nools dsl parser: rule: rules with auto-focus/autoFocus: should throw errors for values other than true or false ok 134 nools dsl parser: rule: should throw an error for invalid when clauses ok 135 nools dsl parser: rule: should throw an error for invalid then clauses ok 136 A Parser: should parse valid string expressions ok 137 A Parser: should parse regexps and not be greedy ok 138 A Parser: should parse valid string expressions with functions ok 139 A Parser: should parse valid string expressions with property access ok 140 A Parser: should parse valid string expressions with boolean operators ok 141 A Parser: should handle operator associativity properly ok 142 A Parser: should parse arrays ok 143 A Parser: should parse the in operator ok 144 A Parser: should parse the notIn operator ok 145 A Parser: should parse truthy statements ok 146 Rule: createRule: with strings: should create for string ok 147 Rule: createRule: with strings: should create for String ok 148 Rule: createRule: with strings: should create for number ok 149 Rule: createRule: with strings: should create for Number ok 150 Rule: createRule: with strings: should create for date ok 151 Rule: createRule: with strings: should create for Date ok 152 Rule: createRule: with strings: should create for array ok 153 Rule: createRule: with strings: should create for Array ok 154 Rule: createRule: with strings: should create for boolean ok 155 Rule: createRule: with strings: should create for Boolean ok 156 Rule: createRule: with strings: should create for regexp ok 157 Rule: createRule: with strings: should create for Regexp ok 158 Rule: createRule: with strings: should create for object ok 159 Rule: createRule: with strings: should create for Object ok 160 Rule: createRule: with strings: should create for hash ok 161 Rule: createRule: with strings: should create for Hash ok 162 Rule: createRule: with functions: should create for String function ok 163 Rule: createRule: with functions: should create for Number function ok 164 Rule: createRule: with functions: should create for Date function ok 165 Rule: createRule: with functions: should create for [] ok 166 Rule: createRule: with functions: should create for Array function ok 167 Rule: createRule: with functions: should create for Boolean function ok 168 Rule: createRule: with functions: should create for RegExp function ok 169 Rule: createRule: with functions: should create for Object function ok 170 Rule: createRule: with functions: should create for custom functions ok 171 Rule: createRule: should create a composite rule ok 172 Rule: createRule: should create a not pattern ok 173 Rule: createRule: should create a or pattern ok 174 Rule: createRule: should include reference store in constraints ok 175 Rule: createRule: should should include from constraints # tests 175 # pass 175 # fail 0
1..175 ok 1 constraint matcher: match: should check equality ok 2 constraint matcher: match: should check inequality ok 3 constraint matcher: match: should check gt operator ok 4 constraint matcher: match: should check lt operator ok 5 constraint matcher: match: should check gte operator ok 6 constraint matcher: match: should check lte operator ok 7 constraint matcher: match: should check lte operator ok 8 constraint matcher: match: should check like operator ok 9 constraint matcher: match: should check notLike operator ok 10 constraint matcher: match: should check and operator ok 11 constraint matcher: match: should check or operator ok 12 constraint matcher: match: should check with member operator ok 13 constraint matcher: match: should check with in operator ok 14 constraint matcher: match: should check with notIn operator ok 15 constraint matcher: match: should allow properties with in ok 16 constraint matcher: match: should check with boolean associativity ok 17 constraint matcher: match: should check with nested properties ok 18 constraint matcher: match: should check with function ok 19 constraint matcher: match: should check with functions and identifier args ok 20 constraint matcher: match: should check with functions in a deep property chain and identifier args ok 21 constraint matcher: match: should check with functions in a deep property chain that returns an object and identifier args ok 22 constraint matcher: match: should have date helpers ok 23 constraint matcher: match: should create have type helpers ok 24 constraint matcher: match: should check truthy statements ok 25 constraint matcher: toConstraints: should create for expressions ok 26 constraint matcher: toConstraints: should create correct pattern depending on scope ok 27 constraint matcher: toJs: should create js equvalent expression ok 28 constraint matcher: getIdentifiers: should create the correct atoms for and expressions ok 29 constraint matcher: equals: should return true when equal ok 30 constraint matcher: equals: should return false when not equal ok 31 nools: .flow: should create a flow ok 32 nools: .deleteFlow: should delete a flow by name ok 33 nools: .deleteFlow: should delete a flow using a Flow instance ok 34 nools: .hasFlow: should return true if the flow exists ok 35 nools: .hasFlow: should return false if the flow does not exists ok 36 nools: .deleteFlows: should deleteAllFlows ok 37 Flow: rule: should create a rule ok 38 Flow: rule: should create a rule with joins properly ok 39 Flow: rule: should create a rules that are dependent on eachother properly ok 40 Flow: simple rule: should call hello world rule ok 41 Flow: not rule: with a single fact: should call when a string that does not equal 'hello' ok 42 Flow: not rule: with a single fact: should not call when a string that does equal 'hello' ok 43 Flow: not rule: with a single fact: should not call when a string that does equal 'hello' and one that does not ok 44 Flow: not rule: with multiple facts: should fire rules in order ok 45 Flow: not rule: modifying facts: should handle modifications ok 46 Flow: or rule: or rule with two conditions of the same type: should should match if one constraints matches ok 47 Flow: or rule: or rule with two conditions of the same type: should not call when a a constraint does not match ok 48 Flow: or rule: or rule with three conditions: should should match if one constraints matches ok 49 Flow: or rule: or rule with three conditions: should not call when none constraints match ok 50 Flow: or rule: or rule with different types: should should match if one constraints matches ok 51 Flow: or rule: or rule with different types: should not call when none constraints match ok 52 Flow: rule with from: with non array properties: should create the proper match contexts ok 53 Flow: rule with from: with non array properties: should propagate modified facts properly ok 54 Flow: rule with from: with non array properties: should retract facts properly ok 55 Flow: rule with from: with array properties: should create all cross product matches ok 56 Flow: rule with from: with array properties: should retract all cross product matches ok 57 Flow: rule with from: with not node: should only fullfill if all facts evaluate to false ok 58 Flow: rule with from: with not node: should only fullfill if all facts evaluate to false ok 59 Flow: scope option: should call when a string equals 'hello' ok 60 Flow: scope option: should call when a string equals 'world' ok 61 Flow: scope option: should not call when a string that does equal 'hello' or 'world ok 62 Flow: events: should emit when facts are asserted ok 63 Flow: events: should emit when facts are retracted ok 64 Flow: events: should emit when facts are modified ok 65 Flow: events: should emit when rules are fired ok 66 Flow: agenda-groups: should only fire events in focused group ok 67 Flow: agenda-groups: should should treat focus like a stack ok 68 Flow: auto-focus: should activate agenda groups in proper order ok 69 Flow: salience: should activate in the proper order ok 70 Flow: async actions: should fire all rules ok 71 Flow: matchUntilHalt: should match until halt is called ok 72 Flow: fibonacci: should calculate fibonacci 3 ok 73 Flow: fibonacci: should calculate fibonacci 4 ok 74 Flow: fibonacci: should calculate fibonacci 5 ok 75 Flow: fibonacci: should calculate fibonacci 6 ok 76 Flow: diagnosis: should treat properly ok 77 Flow compiled: not rule: should call when a string that does not equal 'hello' ok 78 Flow compiled: not rule: should not call when a string that does equal 'hello' ok 79 Flow compiled: not rule: should not call when a string that does equal 'hello' and one that does not ok 80 Flow compiled: or rule: should call when a string equals 'hello' ok 81 Flow compiled: scoped functions: should call the scoped function ok 82 Flow compiled: events: should emit when facts are asserted ok 83 Flow compiled: events: should emit when facts are retracted ok 84 Flow compiled: events: should emit when facts are modified ok 85 Flow compiled: events: should emit when rules are fired ok 86 Flow compiled: agenda-groups: should only fire events in focused group ok 87 Flow compiled: agenda-groups: should should treat focus like a stack ok 88 Flow compiled: auto-focus: should activate agenda groups in proper order ok 89 Flow compiled: fibonacci nools dsl: should calculate fibonacci 3 ok 90 Flow compiled: fibonacci nools dsl: should calculate fibonacci 4 ok 91 Flow compiled: fibonacci nools dsl: should calculate fibonacci 5 ok 92 Flow compiled: fibonacci nools dsl: should calculate fibonacci 6 ok 93 Flow compiled: diagnosis using dsl: should treat properly ok 94 nools dsl parser: define: should parse a define statement ok 95 nools dsl parser: define: should throw an error when the define block is missing a name ok 96 nools dsl parser: define: should throw an error for invalid define blocks ok 97 nools dsl parser: define: should throw an error when the global statement is missing a name ok 98 nools dsl parser: define: should throw an error when the global statement is missing a ; ok 99 nools dsl parser: global: should parse a require call statement ok 100 nools dsl parser: global: should parse a require with a '.' character that is not a relative path ok 101 nools dsl parser: global: should resolve relative require paths ok 102 nools dsl parser: global: should parse a member look up ok 103 nools dsl parser: global: should parse a strings ok 104 nools dsl parser: global: should parse a boolean ok 105 nools dsl parser: global: should parse numbers ok 106 nools dsl parser: global: should parse a new instantiation ok 107 nools dsl parser: function: should parse a function statement ok 108 nools dsl parser: function: should throw an error when the function block is missing a name ok 109 nools dsl parser: function: should throw an error for invalid define blocks ok 110 nools dsl parser: rule: should parse rules ok 111 nools dsl parser: rule: should throw an error for invalid rule blocks ok 112 nools dsl parser: rule: should throw an error for a missing name ok 113 nools dsl parser: rule: should parse not conditions ok 114 nools dsl parser: rule: should parse or conditions ok 115 nools dsl parser: rule: should parse when clause with hash and constraints in any order ok 116 nools dsl parser: rule: should parse when clause with from ok 117 nools dsl parser: rule: should parse rules with a string name in double quotes ok 118 nools dsl parser: rule: should parse rules with a string name in single quotes ok 119 nools dsl parser: rule: should parse rules with a string name with inner strings ok 120 nools dsl parser: rule: salience/priority: should parse rules with a salience ok 121 nools dsl parser: rule: salience/priority: should parse rules with a priority ok 122 nools dsl parser: rule: salience/priority: should parse rules with a salience with a ; ok 123 nools dsl parser: rule: salience/priority: should parse rules with a priority with a ; ok 124 nools dsl parser: rule: salience/priority: should throw an error if the salience is not a number ok 125 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' ok 126 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agendaGroup' ok 127 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in '"' ok 128 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in "'" ok 129 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as true ok 130 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as false ok 131 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as true ok 132 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as false ok 133 nools dsl parser: rule: rules with auto-focus/autoFocus: should throw errors for values other than true or false ok 134 nools dsl parser: rule: should throw an error for invalid when clauses ok 135 nools dsl parser: rule: should throw an error for invalid then clauses ok 136 A Parser: should parse valid string expressions ok 137 A Parser: should parse regexps and not be greedy ok 138 A Parser: should parse valid string expressions with functions ok 139 A Parser: should parse valid string expressions with property access ok 140 A Parser: should parse valid string expressions with boolean operators ok 141 A Parser: should handle operator associativity properly ok 142 A Parser: should parse arrays ok 143 A Parser: should parse the in operator ok 144 A Parser: should parse the notIn operator ok 145 A Parser: should parse truthy statements ok 146 Rule: createRule: with strings: should create for string ok 147 Rule: createRule: with strings: should create for String ok 148 Rule: createRule: with strings: should create for number ok 149 Rule: createRule: with strings: should create for Number ok 150 Rule: createRule: with strings: should create for date ok 151 Rule: createRule: with strings: should create for Date ok 152 Rule: createRule: with strings: should create for array ok 153 Rule: createRule: with strings: should create for Array ok 154 Rule: createRule: with strings: should create for boolean ok 155 Rule: createRule: with strings: should create for Boolean ok 156 Rule: createRule: with strings: should create for regexp ok 157 Rule: createRule: with strings: should create for Regexp ok 158 Rule: createRule: with strings: should create for object ok 159 Rule: createRule: with strings: should create for Object ok 160 Rule: createRule: with strings: should create for hash ok 161 Rule: createRule: with strings: should create for Hash ok 162 Rule: createRule: with functions: should create for String function ok 163 Rule: createRule: with functions: should create for Number function ok 164 Rule: createRule: with functions: should create for Date function ok 165 Rule: createRule: with functions: should create for [] ok 166 Rule: createRule: with functions: should create for Array function ok 167 Rule: createRule: with functions: should create for Boolean function ok 168 Rule: createRule: with functions: should create for RegExp function ok 169 Rule: createRule: with functions: should create for Object function ok 170 Rule: createRule: with functions: should create for custom functions ok 171 Rule: createRule: should create a composite rule ok 172 Rule: createRule: should create a not pattern ok 173 Rule: createRule: should create a or pattern ok 174 Rule: createRule: should include reference store in constraints ok 175 Rule: createRule: should should include from constraints # tests 175 # pass 175 # fail 0
1..175 ok 1 constraint matcher: match: should check equality ok 2 constraint matcher: match: should check inequality ok 3 constraint matcher: match: should check gt operator ok 4 constraint matcher: match: should check lt operator ok 5 constraint matcher: match: should check gte operator ok 6 constraint matcher: match: should check lte operator ok 7 constraint matcher: match: should check lte operator ok 8 constraint matcher: match: should check like operator ok 9 constraint matcher: match: should check notLike operator ok 10 constraint matcher: match: should check and operator ok 11 constraint matcher: match: should check or operator ok 12 constraint matcher: match: should check with member operator ok 13 constraint matcher: match: should check with in operator ok 14 constraint matcher: match: should check with notIn operator ok 15 constraint matcher: match: should allow properties with in ok 16 constraint matcher: match: should check with boolean associativity ok 17 constraint matcher: match: should check with nested properties ok 18 constraint matcher: match: should check with function ok 19 constraint matcher: match: should check with functions and identifier args ok 20 constraint matcher: match: should check with functions in a deep property chain and identifier args ok 21 constraint matcher: match: should check with functions in a deep property chain that returns an object and identifier args ok 22 constraint matcher: match: should have date helpers ok 23 constraint matcher: match: should create have type helpers ok 24 constraint matcher: match: should check truthy statements ok 25 constraint matcher: toConstraints: should create for expressions ok 26 constraint matcher: toConstraints: should create correct pattern depending on scope ok 27 constraint matcher: toJs: should create js equvalent expression ok 28 constraint matcher: getIdentifiers: should create the correct atoms for and expressions ok 29 constraint matcher: equals: should return true when equal ok 30 constraint matcher: equals: should return false when not equal ok 31 nools: .flow: should create a flow ok 32 nools: .deleteFlow: should delete a flow by name ok 33 nools: .deleteFlow: should delete a flow using a Flow instance ok 34 nools: .hasFlow: should return true if the flow exists ok 35 nools: .hasFlow: should return false if the flow does not exists ok 36 nools: .deleteFlows: should deleteAllFlows ok 37 Flow: rule: should create a rule ok 38 Flow: rule: should create a rule with joins properly ok 39 Flow: rule: should create a rules that are dependent on eachother properly ok 40 Flow: simple rule: should call hello world rule ok 41 Flow: not rule: with a single fact: should call when a string that does not equal 'hello' ok 42 Flow: not rule: with a single fact: should not call when a string that does equal 'hello' ok 43 Flow: not rule: with a single fact: should not call when a string that does equal 'hello' and one that does not ok 44 Flow: not rule: with multiple facts: should fire rules in order ok 45 Flow: not rule: modifying facts: should handle modifications ok 46 Flow: or rule: or rule with two conditions of the same type: should should match if one constraints matches ok 47 Flow: or rule: or rule with two conditions of the same type: should not call when a a constraint does not match ok 48 Flow: or rule: or rule with three conditions: should should match if one constraints matches ok 49 Flow: or rule: or rule with three conditions: should not call when none constraints match ok 50 Flow: or rule: or rule with different types: should should match if one constraints matches ok 51 Flow: or rule: or rule with different types: should not call when none constraints match ok 52 Flow: rule with from: with non array properties: should create the proper match contexts ok 53 Flow: rule with from: with non array properties: should propagate modified facts properly ok 54 Flow: rule with from: with non array properties: should retract facts properly ok 55 Flow: rule with from: with array properties: should create all cross product matches ok 56 Flow: rule with from: with array properties: should retract all cross product matches ok 57 Flow: rule with from: with not node: should only fullfill if all facts evaluate to false ok 58 Flow: rule with from: with not node: should only fullfill if all facts evaluate to false ok 59 Flow: scope option: should call when a string equals 'hello' ok 60 Flow: scope option: should call when a string equals 'world' ok 61 Flow: scope option: should not call when a string that does equal 'hello' or 'world ok 62 Flow: events: should emit when facts are asserted ok 63 Flow: events: should emit when facts are retracted ok 64 Flow: events: should emit when facts are modified ok 65 Flow: events: should emit when rules are fired ok 66 Flow: agenda-groups: should only fire events in focused group ok 67 Flow: agenda-groups: should should treat focus like a stack ok 68 Flow: auto-focus: should activate agenda groups in proper order ok 69 Flow: salience: should activate in the proper order ok 70 Flow: async actions: should fire all rules ok 71 Flow: matchUntilHalt: should match until halt is called ok 72 Flow: fibonacci: should calculate fibonacci 3 ok 73 Flow: fibonacci: should calculate fibonacci 4 ok 74 Flow: fibonacci: should calculate fibonacci 5 ok 75 Flow: fibonacci: should calculate fibonacci 6 ok 76 Flow: diagnosis: should treat properly ok 77 Flow compiled: not rule: should call when a string that does not equal 'hello' ok 78 Flow compiled: not rule: should not call when a string that does equal 'hello' ok 79 Flow compiled: not rule: should not call when a string that does equal 'hello' and one that does not ok 80 Flow compiled: or rule: should call when a string equals 'hello' ok 81 Flow compiled: scoped functions: should call the scoped function ok 82 Flow compiled: events: should emit when facts are asserted ok 83 Flow compiled: events: should emit when facts are retracted ok 84 Flow compiled: events: should emit when facts are modified ok 85 Flow compiled: events: should emit when rules are fired ok 86 Flow compiled: agenda-groups: should only fire events in focused group ok 87 Flow compiled: agenda-groups: should should treat focus like a stack ok 88 Flow compiled: auto-focus: should activate agenda groups in proper order ok 89 Flow compiled: fibonacci nools dsl: should calculate fibonacci 3 ok 90 Flow compiled: fibonacci nools dsl: should calculate fibonacci 4 ok 91 Flow compiled: fibonacci nools dsl: should calculate fibonacci 5 ok 92 Flow compiled: fibonacci nools dsl: should calculate fibonacci 6 ok 93 Flow compiled: diagnosis using dsl: should treat properly ok 94 nools dsl parser: define: should parse a define statement ok 95 nools dsl parser: define: should throw an error when the define block is missing a name ok 96 nools dsl parser: define: should throw an error for invalid define blocks ok 97 nools dsl parser: define: should throw an error when the global statement is missing a name ok 98 nools dsl parser: define: should throw an error when the global statement is missing a ; ok 99 nools dsl parser: global: should parse a require call statement ok 100 nools dsl parser: global: should parse a require with a '.' character that is not a relative path ok 101 nools dsl parser: global: should resolve relative require paths ok 102 nools dsl parser: global: should parse a member look up ok 103 nools dsl parser: global: should parse a strings ok 104 nools dsl parser: global: should parse a boolean ok 105 nools dsl parser: global: should parse numbers ok 106 nools dsl parser: global: should parse a new instantiation ok 107 nools dsl parser: function: should parse a function statement ok 108 nools dsl parser: function: should throw an error when the function block is missing a name ok 109 nools dsl parser: function: should throw an error for invalid define blocks ok 110 nools dsl parser: rule: should parse rules ok 111 nools dsl parser: rule: should throw an error for invalid rule blocks ok 112 nools dsl parser: rule: should throw an error for a missing name ok 113 nools dsl parser: rule: should parse not conditions ok 114 nools dsl parser: rule: should parse or conditions ok 115 nools dsl parser: rule: should parse when clause with hash and constraints in any order ok 116 nools dsl parser: rule: should parse when clause with from ok 117 nools dsl parser: rule: should parse rules with a string name in double quotes ok 118 nools dsl parser: rule: should parse rules with a string name in single quotes ok 119 nools dsl parser: rule: should parse rules with a string name with inner strings ok 120 nools dsl parser: rule: salience/priority: should parse rules with a salience ok 121 nools dsl parser: rule: salience/priority: should parse rules with a priority ok 122 nools dsl parser: rule: salience/priority: should parse rules with a salience with a ; ok 123 nools dsl parser: rule: salience/priority: should parse rules with a priority with a ; ok 124 nools dsl parser: rule: salience/priority: should throw an error if the salience is not a number ok 125 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' ok 126 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agendaGroup' ok 127 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in '"' ok 128 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in "'" ok 129 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as true ok 130 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as false ok 131 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as true ok 132 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as false ok 133 nools dsl parser: rule: rules with auto-focus/autoFocus: should throw errors for values other than true or false ok 134 nools dsl parser: rule: should throw an error for invalid when clauses ok 135 nools dsl parser: rule: should throw an error for invalid then clauses ok 136 A Parser: should parse valid string expressions ok 137 A Parser: should parse regexps and not be greedy ok 138 A Parser: should parse valid string expressions with functions ok 139 A Parser: should parse valid string expressions with property access ok 140 A Parser: should parse valid string expressions with boolean operators ok 141 A Parser: should handle operator associativity properly ok 142 A Parser: should parse arrays ok 143 A Parser: should parse the in operator ok 144 A Parser: should parse the notIn operator ok 145 A Parser: should parse truthy statements ok 146 Rule: createRule: with strings: should create for string ok 147 Rule: createRule: with strings: should create for String ok 148 Rule: createRule: with strings: should create for number ok 149 Rule: createRule: with strings: should create for Number ok 150 Rule: createRule: with strings: should create for date ok 151 Rule: createRule: with strings: should create for Date ok 152 Rule: createRule: with strings: should create for array ok 153 Rule: createRule: with strings: should create for Array ok 154 Rule: createRule: with strings: should create for boolean ok 155 Rule: createRule: with strings: should create for Boolean ok 156 Rule: createRule: with strings: should create for regexp ok 157 Rule: createRule: with strings: should create for Regexp ok 158 Rule: createRule: with strings: should create for object ok 159 Rule: createRule: with strings: should create for Object ok 160 Rule: createRule: with strings: should create for hash ok 161 Rule: createRule: with strings: should create for Hash ok 162 Rule: createRule: with functions: should create for String function ok 163 Rule: createRule: with functions: should create for Number function ok 164 Rule: createRule: with functions: should create for Date function ok 165 Rule: createRule: with functions: should create for [] ok 166 Rule: createRule: with functions: should create for Array function ok 167 Rule: createRule: with functions: should create for Boolean function ok 168 Rule: createRule: with functions: should create for RegExp function ok 169 Rule: createRule: with functions: should create for Object function ok 170 Rule: createRule: with functions: should create for custom functions ok 171 Rule: createRule: should create a composite rule ok 172 Rule: createRule: should create a not pattern ok 173 Rule: createRule: should create a or pattern ok 174 Rule: createRule: should include reference store in constraints ok 175 Rule: createRule: should should include from constraints # tests 175 # pass 175 # fail 0
1..175 ok 1 constraint matcher: match: should check equality ok 2 constraint matcher: match: should check inequality ok 3 constraint matcher: match: should check gt operator ok 4 constraint matcher: match: should check lt operator ok 5 constraint matcher: match: should check gte operator ok 6 constraint matcher: match: should check lte operator ok 7 constraint matcher: match: should check lte operator ok 8 constraint matcher: match: should check like operator ok 9 constraint matcher: match: should check notLike operator ok 10 constraint matcher: match: should check and operator ok 11 constraint matcher: match: should check or operator ok 12 constraint matcher: match: should check with member operator ok 13 constraint matcher: match: should check with in operator ok 14 constraint matcher: match: should check with notIn operator ok 15 constraint matcher: match: should allow properties with in ok 16 constraint matcher: match: should check with boolean associativity ok 17 constraint matcher: match: should check with nested properties ok 18 constraint matcher: match: should check with function ok 19 constraint matcher: match: should check with functions and identifier args ok 20 constraint matcher: match: should check with functions in a deep property chain and identifier args ok 21 constraint matcher: match: should check with functions in a deep property chain that returns an object and identifier args ok 22 constraint matcher: match: should have date helpers ok 23 constraint matcher: match: should create have type helpers ok 24 constraint matcher: match: should check truthy statements ok 25 constraint matcher: toConstraints: should create for expressions ok 26 constraint matcher: toConstraints: should create correct pattern depending on scope ok 27 constraint matcher: toJs: should create js equvalent expression ok 28 constraint matcher: getIdentifiers: should create the correct atoms for and expressions ok 29 constraint matcher: equals: should return true when equal ok 30 constraint matcher: equals: should return false when not equal ok 31 nools: .flow: should create a flow ok 32 nools: .deleteFlow: should delete a flow by name ok 33 nools: .deleteFlow: should delete a flow using a Flow instance ok 34 nools: .hasFlow: should return true if the flow exists ok 35 nools: .hasFlow: should return false if the flow does not exists ok 36 nools: .deleteFlows: should deleteAllFlows ok 37 Flow: rule: should create a rule ok 38 Flow: rule: should create a rule with joins properly ok 39 Flow: rule: should create a rules that are dependent on eachother properly ok 40 Flow: simple rule: should call hello world rule ok 41 Flow: not rule: with a single fact: should call when a string that does not equal 'hello' ok 42 Flow: not rule: with a single fact: should not call when a string that does equal 'hello' ok 43 Flow: not rule: with a single fact: should not call when a string that does equal 'hello' and one that does not ok 44 Flow: not rule: with multiple facts: should fire rules in order ok 45 Flow: not rule: modifying facts: should handle modifications ok 46 Flow: or rule: or rule with two conditions of the same type: should should match if one constraints matches ok 47 Flow: or rule: or rule with two conditions of the same type: should not call when a a constraint does not match ok 48 Flow: or rule: or rule with three conditions: should should match if one constraints matches ok 49 Flow: or rule: or rule with three conditions: should not call when none constraints match ok 50 Flow: or rule: or rule with different types: should should match if one constraints matches ok 51 Flow: or rule: or rule with different types: should not call when none constraints match ok 52 Flow: rule with from: with non array properties: should create the proper match contexts ok 53 Flow: rule with from: with non array properties: should propagate modified facts properly ok 54 Flow: rule with from: with non array properties: should retract facts properly ok 55 Flow: rule with from: with array properties: should create all cross product matches ok 56 Flow: rule with from: with array properties: should retract all cross product matches ok 57 Flow: rule with from: with not node: should only fullfill if all facts evaluate to false ok 58 Flow: rule with from: with not node: should only fullfill if all facts evaluate to false ok 59 Flow: scope option: should call when a string equals 'hello' ok 60 Flow: scope option: should call when a string equals 'world' ok 61 Flow: scope option: should not call when a string that does equal 'hello' or 'world ok 62 Flow: events: should emit when facts are asserted ok 63 Flow: events: should emit when facts are retracted ok 64 Flow: events: should emit when facts are modified ok 65 Flow: events: should emit when rules are fired ok 66 Flow: agenda-groups: should only fire events in focused group ok 67 Flow: agenda-groups: should should treat focus like a stack ok 68 Flow: auto-focus: should activate agenda groups in proper order ok 69 Flow: salience: should activate in the proper order ok 70 Flow: async actions: should fire all rules ok 71 Flow: matchUntilHalt: should match until halt is called ok 72 Flow: fibonacci: should calculate fibonacci 3 ok 73 Flow: fibonacci: should calculate fibonacci 4 ok 74 Flow: fibonacci: should calculate fibonacci 5 ok 75 Flow: fibonacci: should calculate fibonacci 6 ok 76 Flow: diagnosis: should treat properly ok 77 Flow compiled: not rule: should call when a string that does not equal 'hello' ok 78 Flow compiled: not rule: should not call when a string that does equal 'hello' ok 79 Flow compiled: not rule: should not call when a string that does equal 'hello' and one that does not ok 80 Flow compiled: or rule: should call when a string equals 'hello' ok 81 Flow compiled: scoped functions: should call the scoped function ok 82 Flow compiled: events: should emit when facts are asserted ok 83 Flow compiled: events: should emit when facts are retracted ok 84 Flow compiled: events: should emit when facts are modified ok 85 Flow compiled: events: should emit when rules are fired ok 86 Flow compiled: agenda-groups: should only fire events in focused group ok 87 Flow compiled: agenda-groups: should should treat focus like a stack ok 88 Flow compiled: auto-focus: should activate agenda groups in proper order ok 89 Flow compiled: fibonacci nools dsl: should calculate fibonacci 3 ok 90 Flow compiled: fibonacci nools dsl: should calculate fibonacci 4 ok 91 Flow compiled: fibonacci nools dsl: should calculate fibonacci 5 ok 92 Flow compiled: fibonacci nools dsl: should calculate fibonacci 6 ok 93 Flow compiled: diagnosis using dsl: should treat properly ok 94 nools dsl parser: define: should parse a define statement ok 95 nools dsl parser: define: should throw an error when the define block is missing a name ok 96 nools dsl parser: define: should throw an error for invalid define blocks ok 97 nools dsl parser: define: should throw an error when the global statement is missing a name ok 98 nools dsl parser: define: should throw an error when the global statement is missing a ; ok 99 nools dsl parser: global: should parse a require call statement ok 100 nools dsl parser: global: should parse a require with a '.' character that is not a relative path ok 101 nools dsl parser: global: should resolve relative require paths ok 102 nools dsl parser: global: should parse a member look up ok 103 nools dsl parser: global: should parse a strings ok 104 nools dsl parser: global: should parse a boolean ok 105 nools dsl parser: global: should parse numbers ok 106 nools dsl parser: global: should parse a new instantiation ok 107 nools dsl parser: function: should parse a function statement ok 108 nools dsl parser: function: should throw an error when the function block is missing a name ok 109 nools dsl parser: function: should throw an error for invalid define blocks ok 110 nools dsl parser: rule: should parse rules ok 111 nools dsl parser: rule: should throw an error for invalid rule blocks ok 112 nools dsl parser: rule: should throw an error for a missing name ok 113 nools dsl parser: rule: should parse not conditions ok 114 nools dsl parser: rule: should parse or conditions ok 115 nools dsl parser: rule: should parse when clause with hash and constraints in any order ok 116 nools dsl parser: rule: should parse when clause with from ok 117 nools dsl parser: rule: should parse rules with a string name in double quotes ok 118 nools dsl parser: rule: should parse rules with a string name in single quotes ok 119 nools dsl parser: rule: should parse rules with a string name with inner strings ok 120 nools dsl parser: rule: salience/priority: should parse rules with a salience ok 121 nools dsl parser: rule: salience/priority: should parse rules with a priority ok 122 nools dsl parser: rule: salience/priority: should parse rules with a salience with a ; ok 123 nools dsl parser: rule: salience/priority: should parse rules with a priority with a ; ok 124 nools dsl parser: rule: salience/priority: should throw an error if the salience is not a number ok 125 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' ok 126 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agendaGroup' ok 127 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in '"' ok 128 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in "'" ok 129 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as true ok 130 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as false ok 131 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as true ok 132 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as false ok 133 nools dsl parser: rule: rules with auto-focus/autoFocus: should throw errors for values other than true or false ok 134 nools dsl parser: rule: should throw an error for invalid when clauses ok 135 nools dsl parser: rule: should throw an error for invalid then clauses ok 136 A Parser: should parse valid string expressions ok 137 A Parser: should parse regexps and not be greedy ok 138 A Parser: should parse valid string expressions with functions ok 139 A Parser: should parse valid string expressions with property access ok 140 A Parser: should parse valid string expressions with boolean operators ok 141 A Parser: should handle operator associativity properly ok 142 A Parser: should parse arrays ok 143 A Parser: should parse the in operator ok 144 A Parser: should parse the notIn operator ok 145 A Parser: should parse truthy statements ok 146 Rule: createRule: with strings: should create for string ok 147 Rule: createRule: with strings: should create for String ok 148 Rule: createRule: with strings: should create for number ok 149 Rule: createRule: with strings: should create for Number ok 150 Rule: createRule: with strings: should create for date ok 151 Rule: createRule: with strings: should create for Date ok 152 Rule: createRule: with strings: should create for array ok 153 Rule: createRule: with strings: should create for Array ok 154 Rule: createRule: with strings: should create for boolean ok 155 Rule: createRule: with strings: should create for Boolean ok 156 Rule: createRule: with strings: should create for regexp ok 157 Rule: createRule: with strings: should create for Regexp ok 158 Rule: createRule: with strings: should create for object ok 159 Rule: createRule: with strings: should create for Object ok 160 Rule: createRule: with strings: should create for hash ok 161 Rule: createRule: with strings: should create for Hash ok 162 Rule: createRule: with functions: should create for String function ok 163 Rule: createRule: with functions: should create for Number function ok 164 Rule: createRule: with functions: should create for Date function ok 165 Rule: createRule: with functions: should create for [] ok 166 Rule: createRule: with functions: should create for Array function ok 167 Rule: createRule: with functions: should create for Boolean function ok 168 Rule: createRule: with functions: should create for RegExp function ok 169 Rule: createRule: with functions: should create for Object function ok 170 Rule: createRule: with functions: should create for custom functions ok 171 Rule: createRule: should create a composite rule ok 172 Rule: createRule: should create a not pattern ok 173 Rule: createRule: should create a or pattern ok 174 Rule: createRule: should include reference store in constraints ok 175 Rule: createRule: should should include from constraints # tests 175 # pass 175 # fail 0
1..175 ok 1 constraint matcher: match: should check equality ok 2 constraint matcher: match: should check inequality ok 3 constraint matcher: match: should check gt operator ok 4 constraint matcher: match: should check lt operator ok 5 constraint matcher: match: should check gte operator ok 6 constraint matcher: match: should check lte operator ok 7 constraint matcher: match: should check lte operator ok 8 constraint matcher: match: should check like operator ok 9 constraint matcher: match: should check notLike operator ok 10 constraint matcher: match: should check and operator ok 11 constraint matcher: match: should check or operator ok 12 constraint matcher: match: should check with member operator ok 13 constraint matcher: match: should check with in operator ok 14 constraint matcher: match: should check with notIn operator ok 15 constraint matcher: match: should allow properties with in ok 16 constraint matcher: match: should check with boolean associativity ok 17 constraint matcher: match: should check with nested properties ok 18 constraint matcher: match: should check with function ok 19 constraint matcher: match: should check with functions and identifier args ok 20 constraint matcher: match: should check with functions in a deep property chain and identifier args ok 21 constraint matcher: match: should check with functions in a deep property chain that returns an object and identifier args ok 22 constraint matcher: match: should have date helpers ok 23 constraint matcher: match: should create have type helpers ok 24 constraint matcher: match: should check truthy statements ok 25 constraint matcher: toConstraints: should create for expressions ok 26 constraint matcher: toConstraints: should create correct pattern depending on scope ok 27 constraint matcher: toJs: should create js equvalent expression ok 28 constraint matcher: getIdentifiers: should create the correct atoms for and expressions ok 29 constraint matcher: equals: should return true when equal ok 30 constraint matcher: equals: should return false when not equal ok 31 nools: .flow: should create a flow ok 32 nools: .deleteFlow: should delete a flow by name ok 33 nools: .deleteFlow: should delete a flow using a Flow instance ok 34 nools: .hasFlow: should return true if the flow exists ok 35 nools: .hasFlow: should return false if the flow does not exists ok 36 nools: .deleteFlows: should deleteAllFlows ok 37 Flow: rule: should create a rule ok 38 Flow: rule: should create a rule with joins properly ok 39 Flow: rule: should create a rules that are dependent on eachother properly ok 40 Flow: simple rule: should call hello world rule ok 41 Flow: not rule: with a single fact: should call when a string that does not equal 'hello' ok 42 Flow: not rule: with a single fact: should not call when a string that does equal 'hello' ok 43 Flow: not rule: with a single fact: should not call when a string that does equal 'hello' and one that does not ok 44 Flow: not rule: with multiple facts: should fire rules in order ok 45 Flow: not rule: modifying facts: should handle modifications ok 46 Flow: or rule: or rule with two conditions of the same type: should should match if one constraints matches ok 47 Flow: or rule: or rule with two conditions of the same type: should not call when a a constraint does not match ok 48 Flow: or rule: or rule with three conditions: should should match if one constraints matches ok 49 Flow: or rule: or rule with three conditions: should not call when none constraints match ok 50 Flow: or rule: or rule with different types: should should match if one constraints matches ok 51 Flow: or rule: or rule with different types: should not call when none constraints match ok 52 Flow: rule with from: with non array properties: should create the proper match contexts ok 53 Flow: rule with from: with non array properties: should propagate modified facts properly ok 54 Flow: rule with from: with non array properties: should retract facts properly ok 55 Flow: rule with from: with array properties: should create all cross product matches ok 56 Flow: rule with from: with array properties: should retract all cross product matches ok 57 Flow: rule with from: with not node: should only fullfill if all facts evaluate to false ok 58 Flow: rule with from: with not node: should only fullfill if all facts evaluate to false ok 59 Flow: scope option: should call when a string equals 'hello' ok 60 Flow: scope option: should call when a string equals 'world' ok 61 Flow: scope option: should not call when a string that does equal 'hello' or 'world ok 62 Flow: events: should emit when facts are asserted ok 63 Flow: events: should emit when facts are retracted ok 64 Flow: events: should emit when facts are modified ok 65 Flow: events: should emit when rules are fired ok 66 Flow: agenda-groups: should only fire events in focused group ok 67 Flow: agenda-groups: should should treat focus like a stack ok 68 Flow: auto-focus: should activate agenda groups in proper order ok 69 Flow: salience: should activate in the proper order ok 70 Flow: async actions: should fire all rules ok 71 Flow: matchUntilHalt: should match until halt is called ok 72 Flow: fibonacci: should calculate fibonacci 3 ok 73 Flow: fibonacci: should calculate fibonacci 4 ok 74 Flow: fibonacci: should calculate fibonacci 5 ok 75 Flow: fibonacci: should calculate fibonacci 6 ok 76 Flow: diagnosis: should treat properly ok 77 Flow compiled: not rule: should call when a string that does not equal 'hello' ok 78 Flow compiled: not rule: should not call when a string that does equal 'hello' ok 79 Flow compiled: not rule: should not call when a string that does equal 'hello' and one that does not ok 80 Flow compiled: or rule: should call when a string equals 'hello' ok 81 Flow compiled: scoped functions: should call the scoped function ok 82 Flow compiled: events: should emit when facts are asserted ok 83 Flow compiled: events: should emit when facts are retracted ok 84 Flow compiled: events: should emit when facts are modified ok 85 Flow compiled: events: should emit when rules are fired ok 86 Flow compiled: agenda-groups: should only fire events in focused group ok 87 Flow compiled: agenda-groups: should should treat focus like a stack ok 88 Flow compiled: auto-focus: should activate agenda groups in proper order ok 89 Flow compiled: fibonacci nools dsl: should calculate fibonacci 3 ok 90 Flow compiled: fibonacci nools dsl: should calculate fibonacci 4 ok 91 Flow compiled: fibonacci nools dsl: should calculate fibonacci 5 ok 92 Flow compiled: fibonacci nools dsl: should calculate fibonacci 6 ok 93 Flow compiled: diagnosis using dsl: should treat properly ok 94 nools dsl parser: define: should parse a define statement ok 95 nools dsl parser: define: should throw an error when the define block is missing a name ok 96 nools dsl parser: define: should throw an error for invalid define blocks ok 97 nools dsl parser: define: should throw an error when the global statement is missing a name ok 98 nools dsl parser: define: should throw an error when the global statement is missing a ; ok 99 nools dsl parser: global: should parse a require call statement ok 100 nools dsl parser: global: should parse a require with a '.' character that is not a relative path ok 101 nools dsl parser: global: should resolve relative require paths ok 102 nools dsl parser: global: should parse a member look up ok 103 nools dsl parser: global: should parse a strings ok 104 nools dsl parser: global: should parse a boolean ok 105 nools dsl parser: global: should parse numbers ok 106 nools dsl parser: global: should parse a new instantiation ok 107 nools dsl parser: function: should parse a function statement ok 108 nools dsl parser: function: should throw an error when the function block is missing a name ok 109 nools dsl parser: function: should throw an error for invalid define blocks ok 110 nools dsl parser: rule: should parse rules ok 111 nools dsl parser: rule: should throw an error for invalid rule blocks ok 112 nools dsl parser: rule: should throw an error for a missing name ok 113 nools dsl parser: rule: should parse not conditions ok 114 nools dsl parser: rule: should parse or conditions ok 115 nools dsl parser: rule: should parse when clause with hash and constraints in any order ok 116 nools dsl parser: rule: should parse when clause with from ok 117 nools dsl parser: rule: should parse rules with a string name in double quotes ok 118 nools dsl parser: rule: should parse rules with a string name in single quotes ok 119 nools dsl parser: rule: should parse rules with a string name with inner strings ok 120 nools dsl parser: rule: salience/priority: should parse rules with a salience ok 121 nools dsl parser: rule: salience/priority: should parse rules with a priority ok 122 nools dsl parser: rule: salience/priority: should parse rules with a salience with a ; ok 123 nools dsl parser: rule: salience/priority: should parse rules with a priority with a ; ok 124 nools dsl parser: rule: salience/priority: should throw an error if the salience is not a number ok 125 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' ok 126 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agendaGroup' ok 127 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in '"' ok 128 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in "'" ok 129 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as true ok 130 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as false ok 131 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as true ok 132 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as false ok 133 nools dsl parser: rule: rules with auto-focus/autoFocus: should throw errors for values other than true or false ok 134 nools dsl parser: rule: should throw an error for invalid when clauses ok 135 nools dsl parser: rule: should throw an error for invalid then clauses ok 136 A Parser: should parse valid string expressions ok 137 A Parser: should parse regexps and not be greedy ok 138 A Parser: should parse valid string expressions with functions ok 139 A Parser: should parse valid string expressions with property access ok 140 A Parser: should parse valid string expressions with boolean operators ok 141 A Parser: should handle operator associativity properly ok 142 A Parser: should parse arrays ok 143 A Parser: should parse the in operator ok 144 A Parser: should parse the notIn operator ok 145 A Parser: should parse truthy statements ok 146 Rule: createRule: with strings: should create for string ok 147 Rule: createRule: with strings: should create for String ok 148 Rule: createRule: with strings: should create for number ok 149 Rule: createRule: with strings: should create for Number ok 150 Rule: createRule: with strings: should create for date ok 151 Rule: createRule: with strings: should create for Date ok 152 Rule: createRule: with strings: should create for array ok 153 Rule: createRule: with strings: should create for Array ok 154 Rule: createRule: with strings: should create for boolean ok 155 Rule: createRule: with strings: should create for Boolean ok 156 Rule: createRule: with strings: should create for regexp ok 157 Rule: createRule: with strings: should create for Regexp ok 158 Rule: createRule: with strings: should create for object ok 159 Rule: createRule: with strings: should create for Object ok 160 Rule: createRule: with strings: should create for hash ok 161 Rule: createRule: with strings: should create for Hash ok 162 Rule: createRule: with functions: should create for String function ok 163 Rule: createRule: with functions: should create for Number function ok 164 Rule: createRule: with functions: should create for Date function ok 165 Rule: createRule: with functions: should create for [] ok 166 Rule: createRule: with functions: should create for Array function ok 167 Rule: createRule: with functions: should create for Boolean function ok 168 Rule: createRule: with functions: should create for RegExp function ok 169 Rule: createRule: with functions: should create for Object function ok 170 Rule: createRule: with functions: should create for custom functions ok 171 Rule: createRule: should create a composite rule ok 172 Rule: createRule: should create a not pattern ok 173 Rule: createRule: should create a or pattern ok 174 Rule: createRule: should include reference store in constraints ok 175 Rule: createRule: should should include from constraints # tests 175 # pass 175 # fail 0
1..175 ok 1 constraint matcher: match: should check equality ok 2 constraint matcher: match: should check inequality ok 3 constraint matcher: match: should check gt operator ok 4 constraint matcher: match: should check lt operator ok 5 constraint matcher: match: should check gte operator ok 6 constraint matcher: match: should check lte operator ok 7 constraint matcher: match: should check lte operator ok 8 constraint matcher: match: should check like operator ok 9 constraint matcher: match: should check notLike operator ok 10 constraint matcher: match: should check and operator ok 11 constraint matcher: match: should check or operator ok 12 constraint matcher: match: should check with member operator ok 13 constraint matcher: match: should check with in operator ok 14 constraint matcher: match: should check with notIn operator ok 15 constraint matcher: match: should allow properties with in ok 16 constraint matcher: match: should check with boolean associativity ok 17 constraint matcher: match: should check with nested properties ok 18 constraint matcher: match: should check with function ok 19 constraint matcher: match: should check with functions and identifier args ok 20 constraint matcher: match: should check with functions in a deep property chain and identifier args ok 21 constraint matcher: match: should check with functions in a deep property chain that returns an object and identifier args ok 22 constraint matcher: match: should have date helpers ok 23 constraint matcher: match: should create have type helpers ok 24 constraint matcher: match: should check truthy statements ok 25 constraint matcher: toConstraints: should create for expressions ok 26 constraint matcher: toConstraints: should create correct pattern depending on scope ok 27 constraint matcher: toJs: should create js equvalent expression ok 28 constraint matcher: getIdentifiers: should create the correct atoms for and expressions ok 29 constraint matcher: equals: should return true when equal ok 30 constraint matcher: equals: should return false when not equal ok 31 nools: .flow: should create a flow ok 32 nools: .deleteFlow: should delete a flow by name ok 33 nools: .deleteFlow: should delete a flow using a Flow instance ok 34 nools: .hasFlow: should return true if the flow exists ok 35 nools: .hasFlow: should return false if the flow does not exists ok 36 nools: .deleteFlows: should deleteAllFlows ok 37 Flow: rule: should create a rule ok 38 Flow: rule: should create a rule with joins properly ok 39 Flow: rule: should create a rules that are dependent on eachother properly ok 40 Flow: simple rule: should call hello world rule ok 41 Flow: not rule: with a single fact: should call when a string that does not equal 'hello' ok 42 Flow: not rule: with a single fact: should not call when a string that does equal 'hello' ok 43 Flow: not rule: with a single fact: should not call when a string that does equal 'hello' and one that does not ok 44 Flow: not rule: with multiple facts: should fire rules in order ok 45 Flow: not rule: modifying facts: should handle modifications ok 46 Flow: or rule: or rule with two conditions of the same type: should should match if one constraints matches ok 47 Flow: or rule: or rule with two conditions of the same type: should not call when a a constraint does not match ok 48 Flow: or rule: or rule with three conditions: should should match if one constraints matches ok 49 Flow: or rule: or rule with three conditions: should not call when none constraints match ok 50 Flow: or rule: or rule with different types: should should match if one constraints matches ok 51 Flow: or rule: or rule with different types: should not call when none constraints match ok 52 Flow: rule with from: with non array properties: should create the proper match contexts ok 53 Flow: rule with from: with non array properties: should propagate modified facts properly ok 54 Flow: rule with from: with non array properties: should retract facts properly ok 55 Flow: rule with from: with array properties: should create all cross product matches ok 56 Flow: rule with from: with array properties: should retract all cross product matches ok 57 Flow: rule with from: with not node: should only fullfill if all facts evaluate to false ok 58 Flow: rule with from: with not node: should only fullfill if all facts evaluate to false ok 59 Flow: scope option: should call when a string equals 'hello' ok 60 Flow: scope option: should call when a string equals 'world' ok 61 Flow: scope option: should not call when a string that does equal 'hello' or 'world ok 62 Flow: events: should emit when facts are asserted ok 63 Flow: events: should emit when facts are retracted ok 64 Flow: events: should emit when facts are modified ok 65 Flow: events: should emit when rules are fired ok 66 Flow: agenda-groups: should only fire events in focused group ok 67 Flow: agenda-groups: should should treat focus like a stack ok 68 Flow: auto-focus: should activate agenda groups in proper order ok 69 Flow: salience: should activate in the proper order ok 70 Flow: async actions: should fire all rules ok 71 Flow: matchUntilHalt: should match until halt is called ok 72 Flow: fibonacci: should calculate fibonacci 3 ok 73 Flow: fibonacci: should calculate fibonacci 4 ok 74 Flow: fibonacci: should calculate fibonacci 5 ok 75 Flow: fibonacci: should calculate fibonacci 6 ok 76 Flow: diagnosis: should treat properly ok 77 Flow compiled: not rule: should call when a string that does not equal 'hello' ok 78 Flow compiled: not rule: should not call when a string that does equal 'hello' ok 79 Flow compiled: not rule: should not call when a string that does equal 'hello' and one that does not ok 80 Flow compiled: or rule: should call when a string equals 'hello' ok 81 Flow compiled: scoped functions: should call the scoped function ok 82 Flow compiled: events: should emit when facts are asserted ok 83 Flow compiled: events: should emit when facts are retracted ok 84 Flow compiled: events: should emit when facts are modified ok 85 Flow compiled: events: should emit when rules are fired ok 86 Flow compiled: agenda-groups: should only fire events in focused group ok 87 Flow compiled: agenda-groups: should should treat focus like a stack ok 88 Flow compiled: auto-focus: should activate agenda groups in proper order ok 89 Flow compiled: fibonacci nools dsl: should calculate fibonacci 3 ok 90 Flow compiled: fibonacci nools dsl: should calculate fibonacci 4 ok 91 Flow compiled: fibonacci nools dsl: should calculate fibonacci 5 ok 92 Flow compiled: fibonacci nools dsl: should calculate fibonacci 6 ok 93 Flow compiled: diagnosis using dsl: should treat properly ok 94 nools dsl parser: define: should parse a define statement ok 95 nools dsl parser: define: should throw an error when the define block is missing a name ok 96 nools dsl parser: define: should throw an error for invalid define blocks ok 97 nools dsl parser: define: should throw an error when the global statement is missing a name ok 98 nools dsl parser: define: should throw an error when the global statement is missing a ; ok 99 nools dsl parser: global: should parse a require call statement ok 100 nools dsl parser: global: should parse a require with a '.' character that is not a relative path ok 101 nools dsl parser: global: should resolve relative require paths ok 102 nools dsl parser: global: should parse a member look up ok 103 nools dsl parser: global: should parse a strings ok 104 nools dsl parser: global: should parse a boolean ok 105 nools dsl parser: global: should parse numbers ok 106 nools dsl parser: global: should parse a new instantiation ok 107 nools dsl parser: function: should parse a function statement ok 108 nools dsl parser: function: should throw an error when the function block is missing a name ok 109 nools dsl parser: function: should throw an error for invalid define blocks ok 110 nools dsl parser: rule: should parse rules ok 111 nools dsl parser: rule: should throw an error for invalid rule blocks ok 112 nools dsl parser: rule: should throw an error for a missing name ok 113 nools dsl parser: rule: should parse not conditions ok 114 nools dsl parser: rule: should parse or conditions ok 115 nools dsl parser: rule: should parse when clause with hash and constraints in any order ok 116 nools dsl parser: rule: should parse when clause with from ok 117 nools dsl parser: rule: should parse rules with a string name in double quotes ok 118 nools dsl parser: rule: should parse rules with a string name in single quotes ok 119 nools dsl parser: rule: should parse rules with a string name with inner strings ok 120 nools dsl parser: rule: salience/priority: should parse rules with a salience ok 121 nools dsl parser: rule: salience/priority: should parse rules with a priority ok 122 nools dsl parser: rule: salience/priority: should parse rules with a salience with a ; ok 123 nools dsl parser: rule: salience/priority: should parse rules with a priority with a ; ok 124 nools dsl parser: rule: salience/priority: should throw an error if the salience is not a number ok 125 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' ok 126 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agendaGroup' ok 127 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in '"' ok 128 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in "'" ok 129 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as true ok 130 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as false ok 131 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as true ok 132 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as false ok 133 nools dsl parser: rule: rules with auto-focus/autoFocus: should throw errors for values other than true or false ok 134 nools dsl parser: rule: should throw an error for invalid when clauses ok 135 nools dsl parser: rule: should throw an error for invalid then clauses ok 136 A Parser: should parse valid string expressions ok 137 A Parser: should parse regexps and not be greedy ok 138 A Parser: should parse valid string expressions with functions ok 139 A Parser: should parse valid string expressions with property access ok 140 A Parser: should parse valid string expressions with boolean operators ok 141 A Parser: should handle operator associativity properly ok 142 A Parser: should parse arrays ok 143 A Parser: should parse the in operator ok 144 A Parser: should parse the notIn operator ok 145 A Parser: should parse truthy statements ok 146 Rule: createRule: with strings: should create for string ok 147 Rule: createRule: with strings: should create for String ok 148 Rule: createRule: with strings: should create for number ok 149 Rule: createRule: with strings: should create for Number ok 150 Rule: createRule: with strings: should create for date ok 151 Rule: createRule: with strings: should create for Date ok 152 Rule: createRule: with strings: should create for array ok 153 Rule: createRule: with strings: should create for Array ok 154 Rule: createRule: with strings: should create for boolean ok 155 Rule: createRule: with strings: should create for Boolean ok 156 Rule: createRule: with strings: should create for regexp ok 157 Rule: createRule: with strings: should create for Regexp ok 158 Rule: createRule: with strings: should create for object ok 159 Rule: createRule: with strings: should create for Object ok 160 Rule: createRule: with strings: should create for hash ok 161 Rule: createRule: with strings: should create for Hash ok 162 Rule: createRule: with functions: should create for String function ok 163 Rule: createRule: with functions: should create for Number function ok 164 Rule: createRule: with functions: should create for Date function ok 165 Rule: createRule: with functions: should create for [] ok 166 Rule: createRule: with functions: should create for Array function ok 167 Rule: createRule: with functions: should create for Boolean function ok 168 Rule: createRule: with functions: should create for RegExp function ok 169 Rule: createRule: with functions: should create for Object function ok 170 Rule: createRule: with functions: should create for custom functions ok 171 Rule: createRule: should create a composite rule ok 172 Rule: createRule: should create a not pattern ok 173 Rule: createRule: should create a or pattern ok 174 Rule: createRule: should include reference store in constraints ok 175 Rule: createRule: should should include from constraints # tests 175 # pass 175 # fail 0
1..175 ok 1 constraint matcher: match: should check equality ok 2 constraint matcher: match: should check inequality ok 3 constraint matcher: match: should check gt operator ok 4 constraint matcher: match: should check lt operator ok 5 constraint matcher: match: should check gte operator ok 6 constraint matcher: match: should check lte operator ok 7 constraint matcher: match: should check lte operator ok 8 constraint matcher: match: should check like operator ok 9 constraint matcher: match: should check notLike operator ok 10 constraint matcher: match: should check and operator ok 11 constraint matcher: match: should check or operator ok 12 constraint matcher: match: should check with member operator ok 13 constraint matcher: match: should check with in operator ok 14 constraint matcher: match: should check with notIn operator ok 15 constraint matcher: match: should allow properties with in ok 16 constraint matcher: match: should check with boolean associativity ok 17 constraint matcher: match: should check with nested properties ok 18 constraint matcher: match: should check with function ok 19 constraint matcher: match: should check with functions and identifier args ok 20 constraint matcher: match: should check with functions in a deep property chain and identifier args ok 21 constraint matcher: match: should check with functions in a deep property chain that returns an object and identifier args ok 22 constraint matcher: match: should have date helpers ok 23 constraint matcher: match: should create have type helpers ok 24 constraint matcher: match: should check truthy statements ok 25 constraint matcher: toConstraints: should create for expressions ok 26 constraint matcher: toConstraints: should create correct pattern depending on scope ok 27 constraint matcher: toJs: should create js equvalent expression ok 28 constraint matcher: getIdentifiers: should create the correct atoms for and expressions ok 29 constraint matcher: equals: should return true when equal ok 30 constraint matcher: equals: should return false when not equal ok 31 nools: .flow: should create a flow ok 32 nools: .deleteFlow: should delete a flow by name ok 33 nools: .deleteFlow: should delete a flow using a Flow instance ok 34 nools: .hasFlow: should return true if the flow exists ok 35 nools: .hasFlow: should return false if the flow does not exists ok 36 nools: .deleteFlows: should deleteAllFlows ok 37 Flow: rule: should create a rule ok 38 Flow: rule: should create a rule with joins properly ok 39 Flow: rule: should create a rules that are dependent on eachother properly ok 40 Flow: simple rule: should call hello world rule ok 41 Flow: not rule: with a single fact: should call when a string that does not equal 'hello' ok 42 Flow: not rule: with a single fact: should not call when a string that does equal 'hello' ok 43 Flow: not rule: with a single fact: should not call when a string that does equal 'hello' and one that does not ok 44 Flow: not rule: with multiple facts: should fire rules in order ok 45 Flow: not rule: modifying facts: should handle modifications ok 46 Flow: or rule: or rule with two conditions of the same type: should should match if one constraints matches ok 47 Flow: or rule: or rule with two conditions of the same type: should not call when a a constraint does not match ok 48 Flow: or rule: or rule with three conditions: should should match if one constraints matches ok 49 Flow: or rule: or rule with three conditions: should not call when none constraints match ok 50 Flow: or rule: or rule with different types: should should match if one constraints matches ok 51 Flow: or rule: or rule with different types: should not call when none constraints match ok 52 Flow: rule with from: with non array properties: should create the proper match contexts ok 53 Flow: rule with from: with non array properties: should propagate modified facts properly ok 54 Flow: rule with from: with non array properties: should retract facts properly ok 55 Flow: rule with from: with array properties: should create all cross product matches ok 56 Flow: rule with from: with array properties: should retract all cross product matches ok 57 Flow: rule with from: with not node: should only fullfill if all facts evaluate to false ok 58 Flow: rule with from: with not node: should only fullfill if all facts evaluate to false ok 59 Flow: scope option: should call when a string equals 'hello' ok 60 Flow: scope option: should call when a string equals 'world' ok 61 Flow: scope option: should not call when a string that does equal 'hello' or 'world ok 62 Flow: events: should emit when facts are asserted ok 63 Flow: events: should emit when facts are retracted ok 64 Flow: events: should emit when facts are modified ok 65 Flow: events: should emit when rules are fired ok 66 Flow: agenda-groups: should only fire events in focused group ok 67 Flow: agenda-groups: should should treat focus like a stack ok 68 Flow: auto-focus: should activate agenda groups in proper order ok 69 Flow: salience: should activate in the proper order ok 70 Flow: async actions: should fire all rules ok 71 Flow: matchUntilHalt: should match until halt is called ok 72 Flow: fibonacci: should calculate fibonacci 3 ok 73 Flow: fibonacci: should calculate fibonacci 4 ok 74 Flow: fibonacci: should calculate fibonacci 5 ok 75 Flow: fibonacci: should calculate fibonacci 6 ok 76 Flow: diagnosis: should treat properly ok 77 Flow compiled: not rule: should call when a string that does not equal 'hello' ok 78 Flow compiled: not rule: should not call when a string that does equal 'hello' ok 79 Flow compiled: not rule: should not call when a string that does equal 'hello' and one that does not ok 80 Flow compiled: or rule: should call when a string equals 'hello' ok 81 Flow compiled: scoped functions: should call the scoped function ok 82 Flow compiled: events: should emit when facts are asserted ok 83 Flow compiled: events: should emit when facts are retracted ok 84 Flow compiled: events: should emit when facts are modified ok 85 Flow compiled: events: should emit when rules are fired ok 86 Flow compiled: agenda-groups: should only fire events in focused group ok 87 Flow compiled: agenda-groups: should should treat focus like a stack ok 88 Flow compiled: auto-focus: should activate agenda groups in proper order ok 89 Flow compiled: fibonacci nools dsl: should calculate fibonacci 3 ok 90 Flow compiled: fibonacci nools dsl: should calculate fibonacci 4 ok 91 Flow compiled: fibonacci nools dsl: should calculate fibonacci 5 ok 92 Flow compiled: fibonacci nools dsl: should calculate fibonacci 6 ok 93 Flow compiled: diagnosis using dsl: should treat properly ok 94 nools dsl parser: define: should parse a define statement ok 95 nools dsl parser: define: should throw an error when the define block is missing a name ok 96 nools dsl parser: define: should throw an error for invalid define blocks ok 97 nools dsl parser: define: should throw an error when the global statement is missing a name ok 98 nools dsl parser: define: should throw an error when the global statement is missing a ; ok 99 nools dsl parser: global: should parse a require call statement ok 100 nools dsl parser: global: should parse a require with a '.' character that is not a relative path ok 101 nools dsl parser: global: should resolve relative require paths ok 102 nools dsl parser: global: should parse a member look up ok 103 nools dsl parser: global: should parse a strings ok 104 nools dsl parser: global: should parse a boolean ok 105 nools dsl parser: global: should parse numbers ok 106 nools dsl parser: global: should parse a new instantiation ok 107 nools dsl parser: function: should parse a function statement ok 108 nools dsl parser: function: should throw an error when the function block is missing a name ok 109 nools dsl parser: function: should throw an error for invalid define blocks ok 110 nools dsl parser: rule: should parse rules ok 111 nools dsl parser: rule: should throw an error for invalid rule blocks ok 112 nools dsl parser: rule: should throw an error for a missing name ok 113 nools dsl parser: rule: should parse not conditions ok 114 nools dsl parser: rule: should parse or conditions ok 115 nools dsl parser: rule: should parse when clause with hash and constraints in any order ok 116 nools dsl parser: rule: should parse when clause with from ok 117 nools dsl parser: rule: should parse rules with a string name in double quotes ok 118 nools dsl parser: rule: should parse rules with a string name in single quotes ok 119 nools dsl parser: rule: should parse rules with a string name with inner strings ok 120 nools dsl parser: rule: salience/priority: should parse rules with a salience ok 121 nools dsl parser: rule: salience/priority: should parse rules with a priority ok 122 nools dsl parser: rule: salience/priority: should parse rules with a salience with a ; ok 123 nools dsl parser: rule: salience/priority: should parse rules with a priority with a ; ok 124 nools dsl parser: rule: salience/priority: should throw an error if the salience is not a number ok 125 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' ok 126 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agendaGroup' ok 127 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in '"' ok 128 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in "'" ok 129 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as true ok 130 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as false ok 131 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as true ok 132 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as false ok 133 nools dsl parser: rule: rules with auto-focus/autoFocus: should throw errors for values other than true or false ok 134 nools dsl parser: rule: should throw an error for invalid when clauses ok 135 nools dsl parser: rule: should throw an error for invalid then clauses ok 136 A Parser: should parse valid string expressions ok 137 A Parser: should parse regexps and not be greedy ok 138 A Parser: should parse valid string expressions with functions ok 139 A Parser: should parse valid string expressions with property access ok 140 A Parser: should parse valid string expressions with boolean operators ok 141 A Parser: should handle operator associativity properly ok 142 A Parser: should parse arrays ok 143 A Parser: should parse the in operator ok 144 A Parser: should parse the notIn operator ok 145 A Parser: should parse truthy statements ok 146 Rule: createRule: with strings: should create for string ok 147 Rule: createRule: with strings: should create for String ok 148 Rule: createRule: with strings: should create for number ok 149 Rule: createRule: with strings: should create for Number ok 150 Rule: createRule: with strings: should create for date ok 151 Rule: createRule: with strings: should create for Date ok 152 Rule: createRule: with strings: should create for array ok 153 Rule: createRule: with strings: should create for Array ok 154 Rule: createRule: with strings: should create for boolean ok 155 Rule: createRule: with strings: should create for Boolean ok 156 Rule: createRule: with strings: should create for regexp ok 157 Rule: createRule: with strings: should create for Regexp ok 158 Rule: createRule: with strings: should create for object ok 159 Rule: createRule: with strings: should create for Object ok 160 Rule: createRule: with strings: should create for hash ok 161 Rule: createRule: with strings: should create for Hash ok 162 Rule: createRule: with functions: should create for String function ok 163 Rule: createRule: with functions: should create for Number function ok 164 Rule: createRule: with functions: should create for Date function ok 165 Rule: createRule: with functions: should create for [] ok 166 Rule: createRule: with functions: should create for Array function ok 167 Rule: createRule: with functions: should create for Boolean function ok 168 Rule: createRule: with functions: should create for RegExp function ok 169 Rule: createRule: with functions: should create for Object function ok 170 Rule: createRule: with functions: should create for custom functions ok 171 Rule: createRule: should create a composite rule ok 172 Rule: createRule: should create a not pattern ok 173 Rule: createRule: should create a or pattern ok 174 Rule: createRule: should include reference store in constraints ok 175 Rule: createRule: should should include from constraints # tests 175 # pass 175 # fail 0
1..175 ok 1 constraint matcher: match: should check equality ok 2 constraint matcher: match: should check inequality ok 3 constraint matcher: match: should check gt operator ok 4 constraint matcher: match: should check lt operator ok 5 constraint matcher: match: should check gte operator ok 6 constraint matcher: match: should check lte operator ok 7 constraint matcher: match: should check lte operator ok 8 constraint matcher: match: should check like operator ok 9 constraint matcher: match: should check notLike operator ok 10 constraint matcher: match: should check and operator ok 11 constraint matcher: match: should check or operator ok 12 constraint matcher: match: should check with member operator ok 13 constraint matcher: match: should check with in operator ok 14 constraint matcher: match: should check with notIn operator ok 15 constraint matcher: match: should allow properties with in ok 16 constraint matcher: match: should check with boolean associativity ok 17 constraint matcher: match: should check with nested properties ok 18 constraint matcher: match: should check with function ok 19 constraint matcher: match: should check with functions and identifier args ok 20 constraint matcher: match: should check with functions in a deep property chain and identifier args ok 21 constraint matcher: match: should check with functions in a deep property chain that returns an object and identifier args ok 22 constraint matcher: match: should have date helpers ok 23 constraint matcher: match: should create have type helpers ok 24 constraint matcher: match: should check truthy statements ok 25 constraint matcher: toConstraints: should create for expressions ok 26 constraint matcher: toConstraints: should create correct pattern depending on scope ok 27 constraint matcher: toJs: should create js equvalent expression ok 28 constraint matcher: getIdentifiers: should create the correct atoms for and expressions ok 29 constraint matcher: equals: should return true when equal ok 30 constraint matcher: equals: should return false when not equal ok 31 nools: .flow: should create a flow ok 32 nools: .deleteFlow: should delete a flow by name ok 33 nools: .deleteFlow: should delete a flow using a Flow instance ok 34 nools: .hasFlow: should return true if the flow exists ok 35 nools: .hasFlow: should return false if the flow does not exists ok 36 nools: .deleteFlows: should deleteAllFlows ok 37 Flow: rule: should create a rule ok 38 Flow: rule: should create a rule with joins properly ok 39 Flow: rule: should create a rules that are dependent on eachother properly ok 40 Flow: simple rule: should call hello world rule ok 41 Flow: not rule: with a single fact: should call when a string that does not equal 'hello' ok 42 Flow: not rule: with a single fact: should not call when a string that does equal 'hello' ok 43 Flow: not rule: with a single fact: should not call when a string that does equal 'hello' and one that does not ok 44 Flow: not rule: with multiple facts: should fire rules in order ok 45 Flow: not rule: modifying facts: should handle modifications ok 46 Flow: or rule: or rule with two conditions of the same type: should should match if one constraints matches ok 47 Flow: or rule: or rule with two conditions of the same type: should not call when a a constraint does not match ok 48 Flow: or rule: or rule with three conditions: should should match if one constraints matches ok 49 Flow: or rule: or rule with three conditions: should not call when none constraints match ok 50 Flow: or rule: or rule with different types: should should match if one constraints matches ok 51 Flow: or rule: or rule with different types: should not call when none constraints match ok 52 Flow: rule with from: with non array properties: should create the proper match contexts ok 53 Flow: rule with from: with non array properties: should propagate modified facts properly ok 54 Flow: rule with from: with non array properties: should retract facts properly ok 55 Flow: rule with from: with array properties: should create all cross product matches ok 56 Flow: rule with from: with array properties: should retract all cross product matches ok 57 Flow: rule with from: with not node: should only fullfill if all facts evaluate to false ok 58 Flow: rule with from: with not node: should only fullfill if all facts evaluate to false ok 59 Flow: scope option: should call when a string equals 'hello' ok 60 Flow: scope option: should call when a string equals 'world' ok 61 Flow: scope option: should not call when a string that does equal 'hello' or 'world ok 62 Flow: events: should emit when facts are asserted ok 63 Flow: events: should emit when facts are retracted ok 64 Flow: events: should emit when facts are modified ok 65 Flow: events: should emit when rules are fired ok 66 Flow: agenda-groups: should only fire events in focused group ok 67 Flow: agenda-groups: should should treat focus like a stack ok 68 Flow: auto-focus: should activate agenda groups in proper order ok 69 Flow: salience: should activate in the proper order ok 70 Flow: async actions: should fire all rules ok 71 Flow: matchUntilHalt: should match until halt is called ok 72 Flow: fibonacci: should calculate fibonacci 3 ok 73 Flow: fibonacci: should calculate fibonacci 4 ok 74 Flow: fibonacci: should calculate fibonacci 5 ok 75 Flow: fibonacci: should calculate fibonacci 6 ok 76 Flow: diagnosis: should treat properly ok 77 Flow compiled: not rule: should call when a string that does not equal 'hello' ok 78 Flow compiled: not rule: should not call when a string that does equal 'hello' ok 79 Flow compiled: not rule: should not call when a string that does equal 'hello' and one that does not ok 80 Flow compiled: or rule: should call when a string equals 'hello' ok 81 Flow compiled: scoped functions: should call the scoped function ok 82 Flow compiled: events: should emit when facts are asserted ok 83 Flow compiled: events: should emit when facts are retracted ok 84 Flow compiled: events: should emit when facts are modified ok 85 Flow compiled: events: should emit when rules are fired ok 86 Flow compiled: agenda-groups: should only fire events in focused group ok 87 Flow compiled: agenda-groups: should should treat focus like a stack ok 88 Flow compiled: auto-focus: should activate agenda groups in proper order ok 89 Flow compiled: fibonacci nools dsl: should calculate fibonacci 3 ok 90 Flow compiled: fibonacci nools dsl: should calculate fibonacci 4 ok 91 Flow compiled: fibonacci nools dsl: should calculate fibonacci 5 ok 92 Flow compiled: fibonacci nools dsl: should calculate fibonacci 6 ok 93 Flow compiled: diagnosis using dsl: should treat properly ok 94 nools dsl parser: define: should parse a define statement ok 95 nools dsl parser: define: should throw an error when the define block is missing a name ok 96 nools dsl parser: define: should throw an error for invalid define blocks ok 97 nools dsl parser: define: should throw an error when the global statement is missing a name ok 98 nools dsl parser: define: should throw an error when the global statement is missing a ; ok 99 nools dsl parser: global: should parse a require call statement ok 100 nools dsl parser: global: should parse a require with a '.' character that is not a relative path ok 101 nools dsl parser: global: should resolve relative require paths ok 102 nools dsl parser: global: should parse a member look up ok 103 nools dsl parser: global: should parse a strings ok 104 nools dsl parser: global: should parse a boolean ok 105 nools dsl parser: global: should parse numbers ok 106 nools dsl parser: global: should parse a new instantiation ok 107 nools dsl parser: function: should parse a function statement ok 108 nools dsl parser: function: should throw an error when the function block is missing a name ok 109 nools dsl parser: function: should throw an error for invalid define blocks ok 110 nools dsl parser: rule: should parse rules ok 111 nools dsl parser: rule: should throw an error for invalid rule blocks ok 112 nools dsl parser: rule: should throw an error for a missing name ok 113 nools dsl parser: rule: should parse not conditions ok 114 nools dsl parser: rule: should parse or conditions ok 115 nools dsl parser: rule: should parse when clause with hash and constraints in any order ok 116 nools dsl parser: rule: should parse when clause with from ok 117 nools dsl parser: rule: should parse rules with a string name in double quotes ok 118 nools dsl parser: rule: should parse rules with a string name in single quotes ok 119 nools dsl parser: rule: should parse rules with a string name with inner strings ok 120 nools dsl parser: rule: salience/priority: should parse rules with a salience ok 121 nools dsl parser: rule: salience/priority: should parse rules with a priority ok 122 nools dsl parser: rule: salience/priority: should parse rules with a salience with a ; ok 123 nools dsl parser: rule: salience/priority: should parse rules with a priority with a ; ok 124 nools dsl parser: rule: salience/priority: should throw an error if the salience is not a number ok 125 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' ok 126 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agendaGroup' ok 127 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in '"' ok 128 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in "'" ok 129 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as true ok 130 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as false ok 131 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as true ok 132 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as false ok 133 nools dsl parser: rule: rules with auto-focus/autoFocus: should throw errors for values other than true or false ok 134 nools dsl parser: rule: should throw an error for invalid when clauses ok 135 nools dsl parser: rule: should throw an error for invalid then clauses ok 136 A Parser: should parse valid string expressions ok 137 A Parser: should parse regexps and not be greedy ok 138 A Parser: should parse valid string expressions with functions ok 139 A Parser: should parse valid string expressions with property access ok 140 A Parser: should parse valid string expressions with boolean operators ok 141 A Parser: should handle operator associativity properly ok 142 A Parser: should parse arrays ok 143 A Parser: should parse the in operator ok 144 A Parser: should parse the notIn operator ok 145 A Parser: should parse truthy statements ok 146 Rule: createRule: with strings: should create for string ok 147 Rule: createRule: with strings: should create for String ok 148 Rule: createRule: with strings: should create for number ok 149 Rule: createRule: with strings: should create for Number ok 150 Rule: createRule: with strings: should create for date ok 151 Rule: createRule: with strings: should create for Date ok 152 Rule: createRule: with strings: should create for array ok 153 Rule: createRule: with strings: should create for Array ok 154 Rule: createRule: with strings: should create for boolean ok 155 Rule: createRule: with strings: should create for Boolean ok 156 Rule: createRule: with strings: should create for regexp ok 157 Rule: createRule: with strings: should create for Regexp ok 158 Rule: createRule: with strings: should create for object ok 159 Rule: createRule: with strings: should create for Object ok 160 Rule: createRule: with strings: should create for hash ok 161 Rule: createRule: with strings: should create for Hash ok 162 Rule: createRule: with functions: should create for String function ok 163 Rule: createRule: with functions: should create for Number function ok 164 Rule: createRule: with functions: should create for Date function ok 165 Rule: createRule: with functions: should create for [] ok 166 Rule: createRule: with functions: should create for Array function ok 167 Rule: createRule: with functions: should create for Boolean function ok 168 Rule: createRule: with functions: should create for RegExp function ok 169 Rule: createRule: with functions: should create for Object function ok 170 Rule: createRule: with functions: should create for custom functions ok 171 Rule: createRule: should create a composite rule ok 172 Rule: createRule: should create a not pattern ok 173 Rule: createRule: should create a or pattern ok 174 Rule: createRule: should include reference store in constraints ok 175 Rule: createRule: should should include from constraints # tests 175 # pass 175 # fail 0
1..175 ok 1 constraint matcher: match: should check equality ok 2 constraint matcher: match: should check inequality ok 3 constraint matcher: match: should check gt operator ok 4 constraint matcher: match: should check lt operator ok 5 constraint matcher: match: should check gte operator ok 6 constraint matcher: match: should check lte operator ok 7 constraint matcher: match: should check lte operator ok 8 constraint matcher: match: should check like operator ok 9 constraint matcher: match: should check notLike operator ok 10 constraint matcher: match: should check and operator ok 11 constraint matcher: match: should check or operator ok 12 constraint matcher: match: should check with member operator ok 13 constraint matcher: match: should check with in operator ok 14 constraint matcher: match: should check with notIn operator ok 15 constraint matcher: match: should allow properties with in ok 16 constraint matcher: match: should check with boolean associativity ok 17 constraint matcher: match: should check with nested properties ok 18 constraint matcher: match: should check with function ok 19 constraint matcher: match: should check with functions and identifier args ok 20 constraint matcher: match: should check with functions in a deep property chain and identifier args ok 21 constraint matcher: match: should check with functions in a deep property chain that returns an object and identifier args ok 22 constraint matcher: match: should have date helpers ok 23 constraint matcher: match: should create have type helpers ok 24 constraint matcher: match: should check truthy statements ok 25 constraint matcher: toConstraints: should create for expressions ok 26 constraint matcher: toConstraints: should create correct pattern depending on scope ok 27 constraint matcher: toJs: should create js equvalent expression ok 28 constraint matcher: getIdentifiers: should create the correct atoms for and expressions ok 29 constraint matcher: equals: should return true when equal ok 30 constraint matcher: equals: should return false when not equal ok 31 nools: .flow: should create a flow ok 32 nools: .deleteFlow: should delete a flow by name ok 33 nools: .deleteFlow: should delete a flow using a Flow instance ok 34 nools: .hasFlow: should return true if the flow exists ok 35 nools: .hasFlow: should return false if the flow does not exists ok 36 nools: .deleteFlows: should deleteAllFlows ok 37 Flow: rule: should create a rule ok 38 Flow: rule: should create a rule with joins properly ok 39 Flow: rule: should create a rules that are dependent on eachother properly ok 40 Flow: simple rule: should call hello world rule ok 41 Flow: not rule: with a single fact: should call when a string that does not equal 'hello' ok 42 Flow: not rule: with a single fact: should not call when a string that does equal 'hello' ok 43 Flow: not rule: with a single fact: should not call when a string that does equal 'hello' and one that does not ok 44 Flow: not rule: with multiple facts: should fire rules in order ok 45 Flow: not rule: modifying facts: should handle modifications ok 46 Flow: or rule: or rule with two conditions of the same type: should should match if one constraints matches ok 47 Flow: or rule: or rule with two conditions of the same type: should not call when a a constraint does not match ok 48 Flow: or rule: or rule with three conditions: should should match if one constraints matches ok 49 Flow: or rule: or rule with three conditions: should not call when none constraints match ok 50 Flow: or rule: or rule with different types: should should match if one constraints matches ok 51 Flow: or rule: or rule with different types: should not call when none constraints match ok 52 Flow: rule with from: with non array properties: should create the proper match contexts ok 53 Flow: rule with from: with non array properties: should propagate modified facts properly ok 54 Flow: rule with from: with non array properties: should retract facts properly ok 55 Flow: rule with from: with array properties: should create all cross product matches ok 56 Flow: rule with from: with array properties: should retract all cross product matches ok 57 Flow: rule with from: with not node: should only fullfill if all facts evaluate to false ok 58 Flow: rule with from: with not node: should only fullfill if all facts evaluate to false ok 59 Flow: scope option: should call when a string equals 'hello' ok 60 Flow: scope option: should call when a string equals 'world' ok 61 Flow: scope option: should not call when a string that does equal 'hello' or 'world ok 62 Flow: events: should emit when facts are asserted ok 63 Flow: events: should emit when facts are retracted ok 64 Flow: events: should emit when facts are modified ok 65 Flow: events: should emit when rules are fired ok 66 Flow: agenda-groups: should only fire events in focused group ok 67 Flow: agenda-groups: should should treat focus like a stack ok 68 Flow: auto-focus: should activate agenda groups in proper order ok 69 Flow: salience: should activate in the proper order ok 70 Flow: async actions: should fire all rules ok 71 Flow: matchUntilHalt: should match until halt is called ok 72 Flow: fibonacci: should calculate fibonacci 3 ok 73 Flow: fibonacci: should calculate fibonacci 4 ok 74 Flow: fibonacci: should calculate fibonacci 5 ok 75 Flow: fibonacci: should calculate fibonacci 6 ok 76 Flow: diagnosis: should treat properly ok 77 Flow compiled: not rule: should call when a string that does not equal 'hello' ok 78 Flow compiled: not rule: should not call when a string that does equal 'hello' ok 79 Flow compiled: not rule: should not call when a string that does equal 'hello' and one that does not ok 80 Flow compiled: or rule: should call when a string equals 'hello' ok 81 Flow compiled: scoped functions: should call the scoped function ok 82 Flow compiled: events: should emit when facts are asserted ok 83 Flow compiled: events: should emit when facts are retracted ok 84 Flow compiled: events: should emit when facts are modified ok 85 Flow compiled: events: should emit when rules are fired ok 86 Flow compiled: agenda-groups: should only fire events in focused group ok 87 Flow compiled: agenda-groups: should should treat focus like a stack ok 88 Flow compiled: auto-focus: should activate agenda groups in proper order ok 89 Flow compiled: fibonacci nools dsl: should calculate fibonacci 3 ok 90 Flow compiled: fibonacci nools dsl: should calculate fibonacci 4 ok 91 Flow compiled: fibonacci nools dsl: should calculate fibonacci 5 ok 92 Flow compiled: fibonacci nools dsl: should calculate fibonacci 6 ok 93 Flow compiled: diagnosis using dsl: should treat properly ok 94 nools dsl parser: define: should parse a define statement ok 95 nools dsl parser: define: should throw an error when the define block is missing a name ok 96 nools dsl parser: define: should throw an error for invalid define blocks ok 97 nools dsl parser: define: should throw an error when the global statement is missing a name ok 98 nools dsl parser: define: should throw an error when the global statement is missing a ; ok 99 nools dsl parser: global: should parse a require call statement ok 100 nools dsl parser: global: should parse a require with a '.' character that is not a relative path ok 101 nools dsl parser: global: should resolve relative require paths ok 102 nools dsl parser: global: should parse a member look up ok 103 nools dsl parser: global: should parse a strings ok 104 nools dsl parser: global: should parse a boolean ok 105 nools dsl parser: global: should parse numbers ok 106 nools dsl parser: global: should parse a new instantiation ok 107 nools dsl parser: function: should parse a function statement ok 108 nools dsl parser: function: should throw an error when the function block is missing a name ok 109 nools dsl parser: function: should throw an error for invalid define blocks ok 110 nools dsl parser: rule: should parse rules ok 111 nools dsl parser: rule: should throw an error for invalid rule blocks ok 112 nools dsl parser: rule: should throw an error for a missing name ok 113 nools dsl parser: rule: should parse not conditions ok 114 nools dsl parser: rule: should parse or conditions ok 115 nools dsl parser: rule: should parse when clause with hash and constraints in any order ok 116 nools dsl parser: rule: should parse when clause with from ok 117 nools dsl parser: rule: should parse rules with a string name in double quotes ok 118 nools dsl parser: rule: should parse rules with a string name in single quotes ok 119 nools dsl parser: rule: should parse rules with a string name with inner strings ok 120 nools dsl parser: rule: salience/priority: should parse rules with a salience ok 121 nools dsl parser: rule: salience/priority: should parse rules with a priority ok 122 nools dsl parser: rule: salience/priority: should parse rules with a salience with a ; ok 123 nools dsl parser: rule: salience/priority: should parse rules with a priority with a ; ok 124 nools dsl parser: rule: salience/priority: should throw an error if the salience is not a number ok 125 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' ok 126 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agendaGroup' ok 127 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in '"' ok 128 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in "'" ok 129 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as true ok 130 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as false ok 131 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as true ok 132 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as false ok 133 nools dsl parser: rule: rules with auto-focus/autoFocus: should throw errors for values other than true or false ok 134 nools dsl parser: rule: should throw an error for invalid when clauses ok 135 nools dsl parser: rule: should throw an error for invalid then clauses ok 136 A Parser: should parse valid string expressions ok 137 A Parser: should parse regexps and not be greedy ok 138 A Parser: should parse valid string expressions with functions ok 139 A Parser: should parse valid string expressions with property access ok 140 A Parser: should parse valid string expressions with boolean operators ok 141 A Parser: should handle operator associativity properly ok 142 A Parser: should parse arrays ok 143 A Parser: should parse the in operator ok 144 A Parser: should parse the notIn operator ok 145 A Parser: should parse truthy statements ok 146 Rule: createRule: with strings: should create for string ok 147 Rule: createRule: with strings: should create for String ok 148 Rule: createRule: with strings: should create for number ok 149 Rule: createRule: with strings: should create for Number ok 150 Rule: createRule: with strings: should create for date ok 151 Rule: createRule: with strings: should create for Date ok 152 Rule: createRule: with strings: should create for array ok 153 Rule: createRule: with strings: should create for Array ok 154 Rule: createRule: with strings: should create for boolean ok 155 Rule: createRule: with strings: should create for Boolean ok 156 Rule: createRule: with strings: should create for regexp ok 157 Rule: createRule: with strings: should create for Regexp ok 158 Rule: createRule: with strings: should create for object ok 159 Rule: createRule: with strings: should create for Object ok 160 Rule: createRule: with strings: should create for hash ok 161 Rule: createRule: with strings: should create for Hash ok 162 Rule: createRule: with functions: should create for String function ok 163 Rule: createRule: with functions: should create for Number function ok 164 Rule: createRule: with functions: should create for Date function ok 165 Rule: createRule: with functions: should create for [] ok 166 Rule: createRule: with functions: should create for Array function ok 167 Rule: createRule: with functions: should create for Boolean function ok 168 Rule: createRule: with functions: should create for RegExp function ok 169 Rule: createRule: with functions: should create for Object function ok 170 Rule: createRule: with functions: should create for custom functions ok 171 Rule: createRule: should create a composite rule ok 172 Rule: createRule: should create a not pattern ok 173 Rule: createRule: should create a or pattern ok 174 Rule: createRule: should include reference store in constraints ok 175 Rule: createRule: should should include from constraints # tests 175 # pass 175 # fail 0
1..175 ok 1 constraint matcher: match: should check equality ok 2 constraint matcher: match: should check inequality ok 3 constraint matcher: match: should check gt operator ok 4 constraint matcher: match: should check lt operator ok 5 constraint matcher: match: should check gte operator ok 6 constraint matcher: match: should check lte operator ok 7 constraint matcher: match: should check lte operator ok 8 constraint matcher: match: should check like operator ok 9 constraint matcher: match: should check notLike operator ok 10 constraint matcher: match: should check and operator ok 11 constraint matcher: match: should check or operator ok 12 constraint matcher: match: should check with member operator ok 13 constraint matcher: match: should check with in operator ok 14 constraint matcher: match: should check with notIn operator ok 15 constraint matcher: match: should allow properties with in ok 16 constraint matcher: match: should check with boolean associativity ok 17 constraint matcher: match: should check with nested properties ok 18 constraint matcher: match: should check with function ok 19 constraint matcher: match: should check with functions and identifier args ok 20 constraint matcher: match: should check with functions in a deep property chain and identifier args ok 21 constraint matcher: match: should check with functions in a deep property chain that returns an object and identifier args ok 22 constraint matcher: match: should have date helpers ok 23 constraint matcher: match: should create have type helpers ok 24 constraint matcher: match: should check truthy statements ok 25 constraint matcher: toConstraints: should create for expressions ok 26 constraint matcher: toConstraints: should create correct pattern depending on scope ok 27 constraint matcher: toJs: should create js equvalent expr