@@ -84,6 +84,30 @@ describe('Engine', () => {
8484 } )
8585 } )
8686
87+ describe ( 'updateRule()' , ( ) => {
88+ it ( 'updates rule' , ( ) => {
89+ const rule = new Rule ( factories . rule ( ) )
90+ engine . addRule ( rule )
91+ expect ( engine . rules [ 0 ] . conditions . all . length ) . to . equal ( 2 )
92+ rule . conditions = { all : [ ] }
93+ engine . updateRule ( rule )
94+ expect ( engine . rules [ 0 ] . conditions . all . length ) . to . equal ( 0 )
95+ } )
96+ it ( 'should generate id for rule if not provided' , ( ) => {
97+ const rule = new Rule ( factories . rule ( ) )
98+ expect ( rule . id ) . to . not . equal ( null )
99+ expect ( rule . id ) . to . not . equal ( undefined )
100+ } )
101+ it ( 'should throw error if rule not found' , ( ) => {
102+ const rule1 = new Rule ( factories . rule ( ) )
103+ engine . addRule ( rule1 )
104+ const rule2 = new Rule ( factories . rule ( ) )
105+ expect ( ( ) => {
106+ engine . updateRule ( rule2 )
107+ } ) . to . throw ( / E n g i n e : u p d a t e R u l e \( \) r u l e n o t f o u n d / )
108+ } )
109+ } )
110+
87111 describe ( 'removeRule()' , ( ) => {
88112 describe ( 'rule instance' , ( ) => {
89113 it ( 'removes the rule' , ( ) => {
@@ -96,14 +120,6 @@ describe('Engine', () => {
96120 } )
97121 } )
98122
99- describe ( 'required fields' , ( ) => {
100- it ( '.conditions' , ( ) => {
101- expect ( ( ) => {
102- engine . removeRule ( [ ] )
103- } ) . to . throw ( / E n g i n e : r e m o v e R u l e \( \) r u l e m u s t b e a i n s t a n c e o f R u l e / )
104- } )
105- } )
106-
107123 it ( 'can only remove added rules' , ( ) => {
108124 expect ( engine . rules . length ) . to . equal ( 0 )
109125 const rule = new Rule ( factories . rule ( ) )
@@ -118,6 +134,14 @@ describe('Engine', () => {
118134 engine . removeRule ( rule )
119135 expect ( engine . prioritizedRules ) . to . equal ( null )
120136 } )
137+ it ( 'removes rule based on ruleKey' , ( ) => {
138+ const rule = new Rule ( factories . rule ( ) )
139+ engine . addRule ( rule )
140+ expect ( engine . rules . length ) . to . equal ( 1 )
141+ engine . removeRule ( rule . id )
142+ expect ( engine . rules . length ) . to . equal ( 0 )
143+ expect ( engine . prioritizedRules ) . to . equal ( null )
144+ } )
121145 } )
122146
123147 describe ( 'addOperator()' , ( ) => {
0 commit comments