1+ import Ajv2020 from "ajv/dist/2020" ;
2+ import { describe , it } from 'mocha' ;
3+ import schema from './ipc-message-schema.json' ;
4+ import assert from "node:assert" ;
5+
6+ const ajv = new Ajv2020 ( {
7+ strict : true ,
8+ } )
9+
10+ describe ( "Ipc message schema tests" , ( ) => {
11+ it ( "compiles" , ( ) => {
12+ ajv . compile ( schema ) ;
13+ } )
14+
15+ it ( "requires a msg field to be specified" , ( ) => {
16+ const validate = ajv . compile ( schema ) ;
17+ assert . equal ( validate ( { msg : "doSomething" , data : "data" } ) , true )
18+ assert . equal ( validate ( { data : "data" } ) , false )
19+ } )
20+
21+ it ( "has an optional status field for responses" , ( ) => {
22+ const validate = ajv . compile ( schema ) ;
23+ assert . equal ( validate ( { msg : "doSomething" , status : "success" , data : "data" } ) , true )
24+ assert . equal ( validate ( { msg : "doSomething" , status : "error" , data : "data" } ) , true )
25+ assert . equal ( validate ( { msg : "doSomething" , status : "other" , data : "data" } ) , false )
26+ assert . equal ( validate ( { msg : "doSomething" , data : "data" } ) , true )
27+ } )
28+
29+ it ( "accepts data or null" , ( ) => {
30+ const validate = ajv . compile ( schema ) ;
31+ assert . equal ( validate ( { msg : "doSomething" , data : "data" } ) , true )
32+ assert . equal ( validate ( { msg : "doSomething" , data : null } ) , true )
33+ assert . equal ( validate ( { msg : "doSomething" } ) , false )
34+ assert . equal ( validate ( { msg : "doSomething" , data : { } } ) , true )
35+ } ) ;
36+
37+ } ) ;
0 commit comments