@@ -95,6 +95,7 @@ describe('States-Redis: Test states in Redis', function () {
95
95
expect ( state ! . val ) . to . be . equal ( 2 ) ;
96
96
expect ( state ! . ack ) . to . be . false ;
97
97
expect ( state ! . ts ) . to . be . ok ;
98
+ expect ( state ! . lc ) . to . be . equal ( state ! . ts ) ;
98
99
expect ( state ! . q ) . to . be . equal ( 0 ) ;
99
100
100
101
// @ts -expect-error adding types later on
@@ -103,6 +104,7 @@ describe('States-Redis: Test states in Redis', function () {
103
104
expect ( state ! . val ) . to . be . equal ( 2 ) ;
104
105
expect ( state ! . ack ) . to . be . false ;
105
106
expect ( state ! . ts ) . to . be . ok ;
107
+ expect ( state ! . lc ) . to . be . equal ( state ! . ts ) ;
106
108
expect ( state ! . q ) . to . be . equal ( 0 ) ;
107
109
done ( ) ;
108
110
}
@@ -111,6 +113,61 @@ describe('States-Redis: Test states in Redis', function () {
111
113
states ! . setState ( testID , 2 ) ;
112
114
} ) . timeout ( 10_000 ) ;
113
115
116
+ it ( 'States-Redis: should setState with object state parameters' , done => {
117
+ const testID = 'testObject.0.test1' ;
118
+ onStatesChanged = async ( id , state ) => {
119
+ if ( id === testID ) {
120
+ expect ( state ) . to . be . ok ;
121
+ expect ( state ! . val ) . to . be . equal ( 3 ) ;
122
+ expect ( state ! . ack ) . to . be . true ;
123
+ expect ( state ! . ts ) . to . be . equal ( 123456000 ) ;
124
+ expect ( state ! . lc ) . to . be . equal ( state ! . ts ) ;
125
+ expect ( state ! . q ) . to . be . equal ( 1 ) ;
126
+
127
+ // @ts -expect-error adding types later on
128
+ state = await states ! . getStateAsync ( testID ) ;
129
+ expect ( state ) . to . be . ok ;
130
+ expect ( state ! . val ) . to . be . equal ( 3 ) ;
131
+ expect ( state ! . ack ) . to . be . true ;
132
+ expect ( state ! . ts ) . to . be . equal ( 123456000 ) ;
133
+ expect ( state ! . lc ) . to . be . equal ( state ! . ts ) ;
134
+ expect ( state ! . q ) . to . be . equal ( 1 ) ;
135
+ done ( ) ;
136
+ }
137
+ } ;
138
+
139
+ states ! . setState ( testID , { val : 3 , ack : true , ts : 123456 , q : 1 } ) ;
140
+ } ) . timeout ( 10_000 ) ;
141
+
142
+ it ( 'States-Redis: should setState with object state parameters ignoring null ts' , done => {
143
+ const testID = 'testObject.0.test1' ;
144
+ onStatesChanged = async ( id , state ) => {
145
+ if ( id === testID ) {
146
+ expect ( state ) . to . be . ok ;
147
+ expect ( state ! . val ) . to . be . equal ( 4 ) ;
148
+ expect ( state ! . ack ) . to . be . true ;
149
+ expect ( state ! . ts ) . to . be . ok ;
150
+ expect ( state ! . ts ) . to . be . not . equal ( 123456000 ) ;
151
+ expect ( state ! . lc ) . to . be . equal ( state ! . ts ) ;
152
+ expect ( state ! . q ) . to . be . equal ( 1 ) ;
153
+
154
+ // @ts -expect-error adding types later on
155
+ state = await states ! . getStateAsync ( testID ) ;
156
+ expect ( state ) . to . be . ok ;
157
+ expect ( state ! . val ) . to . be . equal ( 4 ) ;
158
+ expect ( state ! . ack ) . to . be . true ;
159
+ expect ( state ! . ts ) . to . be . ok ;
160
+ expect ( state ! . ts ) . to . be . not . equal ( 123456000 ) ;
161
+ expect ( state ! . lc ) . to . be . equal ( state ! . ts ) ;
162
+ expect ( state ! . q ) . to . be . equal ( 1 ) ;
163
+ done ( ) ;
164
+ }
165
+ } ;
166
+
167
+ // @ts -expect-error ignore types here for ts to test the case
168
+ states ! . setState ( testID , { val : 4 , ack : true , ts : null , q : 1 } ) ;
169
+ } ) . timeout ( 10_000 ) ;
170
+
114
171
// todo: write more tests
115
172
116
173
after ( 'States-Redis: Stop js-controller' , async function ( ) {
0 commit comments