1
- "use strict" ;
2
-
3
- import sinon from "sinon" ;
4
- import { expect } from "chai" ;
5
- import { Engine } from "../../src/index" ;
6
-
1
+ import { Engine } from "../../src/index.mjs" ;
2
+ import { describe , it , expect , vi } from "vitest" ;
7
3
/**
8
4
* acceptance tests are intended to use features that, when used in combination,
9
5
* could cause integration bugs not caught by the rest of the test suite
10
6
*/
11
7
describe ( "Acceptance" , ( ) => {
12
- let sandbox ;
13
- before ( ( ) => {
14
- sandbox = sinon . createSandbox ( ) ;
15
- } ) ;
16
- afterEach ( ( ) => {
17
- sandbox . restore ( ) ;
18
- } ) ;
19
8
const factParam = 1 ;
20
9
const event1 = {
21
10
type : "event-1" ,
@@ -61,8 +50,8 @@ describe("Acceptance", () => {
61
50
62
51
function setup ( options = { } ) {
63
52
const engine = new Engine ( ) ;
64
- highPrioritySpy = sandbox . spy ( ) ;
65
- lowPrioritySpy = sandbox . spy ( ) ;
53
+ highPrioritySpy = vi . fn ( ) ;
54
+ lowPrioritySpy = vi . fn ( ) ;
66
55
67
56
engine . addRule ( {
68
57
name : "first" ,
@@ -87,10 +76,10 @@ describe("Acceptance", () => {
87
76
} ,
88
77
event : event1 ,
89
78
onSuccess : async ( event , almanac , ruleResults ) => {
90
- expect ( ruleResults . name ) . to . equal ( "first" ) ;
91
- expect ( ruleResults . event ) . to . deep . equal ( event1 ) ;
92
- expect ( ruleResults . priority ) . to . equal ( 10 ) ;
93
- expect ( ruleResults . conditions ) . to . deep . equal ( expectedFirstRuleResult ) ;
79
+ expect ( ruleResults . name ) . toBe ( "first" ) ;
80
+ expect ( ruleResults . event ) . toEqual ( event1 ) ;
81
+ expect ( ruleResults . priority ) . toBe ( 10 ) ;
82
+ expect ( ruleResults . conditions ) . toEqual ( expectedFirstRuleResult ) ;
94
83
95
84
return delay (
96
85
almanac . addRuntimeFact ( "rule-created-fact" , {
@@ -150,8 +139,8 @@ describe("Acceptance", () => {
150
139
const baseIndex = await almanac . factValue ( "baseIndex" ) ;
151
140
return delay ( baseIndex ) ;
152
141
} ) ;
153
- successSpy = sandbox . spy ( ) ;
154
- failureSpy = sandbox . spy ( ) ;
142
+ successSpy = vi . fn ( ) ;
143
+ failureSpy = vi . fn ( ) ;
155
144
engine . on ( "success" , successSpy ) ;
156
145
engine . on ( "failure" , failureSpy ) ;
157
146
@@ -169,8 +158,8 @@ describe("Acceptance", () => {
169
158
) ;
170
159
171
160
// results
172
- expect ( results . length ) . to . equal ( 2 ) ;
173
- expect ( results [ 0 ] ) . to . deep . equal ( {
161
+ expect ( results . length ) . toBe ( 2 ) ;
162
+ expect ( results [ 0 ] ) . toEqual ( {
174
163
conditions : {
175
164
all : [
176
165
{
@@ -205,7 +194,7 @@ describe("Acceptance", () => {
205
194
priority : 10 ,
206
195
result : true ,
207
196
} ) ;
208
- expect ( results [ 1 ] ) . to . deep . equal ( {
197
+ expect ( results [ 1 ] ) . toEqual ( {
209
198
conditions : {
210
199
all : [
211
200
{
@@ -233,20 +222,30 @@ describe("Acceptance", () => {
233
222
priority : 1 ,
234
223
result : true ,
235
224
} ) ;
236
- expect ( failureResults ) . to . be . empty ( ) ;
225
+ expect ( failureResults ) . toHaveLength ( 0 ) ;
237
226
238
227
// events
239
- expect ( failureEvents . length ) . to . equal ( 0 ) ;
240
- expect ( events . length ) . to . equal ( 2 ) ;
241
- expect ( events [ 0 ] ) . to . deep . equal ( event1 ) ;
242
- expect ( events [ 1 ] ) . to . deep . equal ( event2 ) ;
228
+ expect ( failureEvents . length ) . toBe ( 0 ) ;
229
+ expect ( events . length ) . toBe ( 2 ) ;
230
+ expect ( events [ 0 ] ) . toEqual ( event1 ) ;
231
+ expect ( events [ 1 ] ) . toEqual ( event2 ) ;
243
232
244
233
// callbacks
245
- expect ( successSpy ) . to . have . been . calledTwice ( ) ;
246
- expect ( successSpy ) . to . have . been . calledWith ( event1 ) ;
247
- expect ( successSpy ) . to . have . been . calledWith ( event2 ) ;
248
- expect ( highPrioritySpy ) . to . have . been . calledBefore ( lowPrioritySpy ) ;
249
- expect ( failureSpy ) . to . not . have . been . called ( ) ;
234
+ expect ( successSpy ) . toHaveBeenCalledTimes ( 2 ) ;
235
+ expect ( successSpy ) . toHaveBeenCalledWith (
236
+ event1 ,
237
+ expect . anything ( ) ,
238
+ expect . anything ( ) ,
239
+ ) ;
240
+ expect ( successSpy ) . toHaveBeenCalledWith (
241
+ event2 ,
242
+ expect . anything ( ) ,
243
+ expect . anything ( ) ,
244
+ ) ;
245
+ expect ( Math . min ( ...highPrioritySpy . mock . invocationCallOrder ) ) . toBeLessThan (
246
+ Math . min ( ...lowPrioritySpy . mock . invocationCallOrder ) ,
247
+ ) ;
248
+ expect ( failureSpy ) . not . toHaveBeenCalled ( ) ;
250
249
} ) ;
251
250
252
251
it ( "fails" , async ( ) => {
@@ -259,16 +258,26 @@ describe("Acceptance", () => {
259
258
{ baseIndex : 1 , "rule-created-fact" : "" } ,
260
259
) ;
261
260
262
- expect ( results . length ) . to . equal ( 0 ) ;
263
- expect ( failureResults . length ) . to . equal ( 2 ) ;
264
- expect ( failureResults . every ( ( rr ) => rr . result === false ) ) . to . be . true ( ) ;
261
+ expect ( results . length ) . toBe ( 0 ) ;
262
+ expect ( failureResults . length ) . toBe ( 2 ) ;
263
+ expect ( failureResults . every ( ( rr ) => rr . result === false ) ) . toBe ( true ) ;
265
264
266
- expect ( events . length ) . to . equal ( 0 ) ;
267
- expect ( failureEvents . length ) . to . equal ( 2 ) ;
268
- expect ( failureSpy ) . to . have . been . calledTwice ( ) ;
269
- expect ( failureSpy ) . to . have . been . calledWith ( event1 ) ;
270
- expect ( failureSpy ) . to . have . been . calledWith ( event2 ) ;
271
- expect ( highPrioritySpy ) . to . have . been . calledBefore ( lowPrioritySpy ) ;
272
- expect ( successSpy ) . to . not . have . been . called ( ) ;
265
+ expect ( events . length ) . toBe ( 0 ) ;
266
+ expect ( failureEvents . length ) . toBe ( 2 ) ;
267
+ expect ( failureSpy ) . toHaveBeenCalledTimes ( 2 ) ;
268
+ expect ( failureSpy ) . toHaveBeenCalledWith (
269
+ event1 ,
270
+ expect . anything ( ) ,
271
+ expect . anything ( ) ,
272
+ ) ;
273
+ expect ( failureSpy ) . toHaveBeenCalledWith (
274
+ event2 ,
275
+ expect . anything ( ) ,
276
+ expect . anything ( ) ,
277
+ ) ;
278
+ expect ( Math . min ( ...highPrioritySpy . mock . invocationCallOrder ) ) . toBeLessThan (
279
+ Math . min ( ...lowPrioritySpy . mock . invocationCallOrder ) ,
280
+ ) ;
281
+ expect ( successSpy ) . not . toHaveBeenCalled ( ) ;
273
282
} ) ;
274
283
} ) ;
0 commit comments