@@ -54,6 +54,27 @@ describe('Rule', () => {
5454 expect ( rule . ruleEvent ) . to . eql ( opts . event )
5555 expect ( rule . name ) . to . eql ( opts . name )
5656 } )
57+
58+ context ( 'id' , ( ) => {
59+ it ( 'autogenerates an id if none was provided' , ( ) => {
60+ const rule = new Rule ( )
61+ expect ( rule . id ) . to . have . lengthOf ( 10 )
62+ } )
63+
64+ it ( 'sets the id if provided' , ( ) => {
65+ let rule = new Rule ( { id : 'test-id' } )
66+ expect ( rule . id ) . to . equal ( 'test-id' )
67+
68+ rule = new Rule ( { id : 0 } )
69+ expect ( rule . id ) . to . equal ( 0 )
70+
71+ rule = new Rule ( { id : '' } )
72+ expect ( rule . id ) . to . equal ( '' )
73+
74+ rule = new Rule ( { id : null } )
75+ expect ( rule . id ) . to . equal ( null )
76+ } )
77+ } )
5778 } )
5879
5980 describe ( 'event emissions' , ( ) => {
@@ -96,6 +117,24 @@ describe('Rule', () => {
96117 } )
97118 } )
98119
120+ describe ( 'setId()' , ( ) => {
121+ it ( 'changes the rule id' , ( ) => {
122+ const newId = 'test-id-123'
123+ rule . setId ( newId )
124+ expect ( rule . id ) . to . equal ( newId )
125+ } )
126+ } )
127+
128+ describe ( 'setEvent()' , ( ) => {
129+ it ( 'throws if no argument provided' , ( ) => {
130+ expect ( ( ) => rule . setEvent ( ) ) . to . throw ( / R u l e : s e t E v e n t \( \) r e q u i r e s e v e n t o b j e c t / )
131+ } )
132+
133+ it ( 'throws if argument is missing "type" property' , ( ) => {
134+ expect ( ( ) => rule . setEvent ( { } ) ) . to . throw ( / R u l e : s e t E v e n t \( \) r e q u i r e s e v e n t o b j e c t w i t h " t y p e " p r o p e r t y / )
135+ } )
136+ } )
137+
99138 describe ( 'setConditions()' , ( ) => {
100139 describe ( 'validations' , ( ) => {
101140 it ( 'throws an exception for invalid root conditions' , ( ) => {
0 commit comments