File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1+ import { expect } from 'chai' ;
2+ import type { JSONSchema4 } from 'json-schema' ;
3+ import mergeSchema from '../../src/utils/mergeSchema.ts' ;
4+
5+ describe ( 'mergeSchema' , ( ) => {
6+
7+ it ( 'merges array properties and keeps only unique values' , ( ) => {
8+
9+ const dest : JSONSchema4 = {
10+ type : 'object' ,
11+ required : [ 'id' , 'name' ]
12+ } ;
13+
14+ const src : JSONSchema4 = {
15+ required : [ 'name' , 'email' ]
16+ } ;
17+
18+ const result = mergeSchema ( dest , src ) ;
19+
20+ expect ( result . required ) . to . eql ( [ 'id' , 'name' , 'email' ] ) ;
21+ } ) ;
22+
23+ it ( 'deduplicates structurally equal array entries' , ( ) => {
24+
25+ const dest : JSONSchema4 = {
26+ enum : [ { code : 'A' } , { code : 'A' } ] as any [ ]
27+ } ;
28+
29+ const src : JSONSchema4 = {
30+ enum : [ { code : 'A' } , { code : 'B' } ] as any [ ]
31+ } ;
32+
33+ const result = mergeSchema ( dest , src ) ;
34+
35+ expect ( result . enum ) . to . eql ( [ { code : 'A' } , { code : 'B' } ] ) ;
36+ } ) ;
37+ } ) ;
You can’t perform that action at this time.
0 commit comments