1+ /* eslint-disable max-statements */
12import { readFile } from 'fs/promises' ;
23import { JsonApiResourceSerializer , ResourcesRegistryImpl } from '../../../../src/index.js' ;
34import { describe , expect , it , beforeEach } from 'vitest' ;
4- import { container } from '@triptyk/nfw-core' ;
55
66describe ( 'JsonApiResourceSerializer' , ( ) => {
77 let resources : any [ ] ;
@@ -11,118 +11,117 @@ describe('JsonApiResourceSerializer', () => {
1111 resources = JSON . parse ( await readFile ( `${ __dirname } ../../../fixtures/resources.json` , 'utf-8' ) ) ;
1212 } ) ;
1313
14- function setupRegistry ( registry : ResourcesRegistryImpl ) {
15- const certificateRegistration = {
16- serializer : { } as never ,
17- deserializer : { } as never ,
18- schema : {
19- resourceType : 'certificates' ,
20- attributes : {
21- firstname : {
22- serialize : true ,
23- deserialize : false ,
24- type : 'string'
25- }
26- } ,
27- relationships : {
28- patientCertificate : {
29- type : 'patient-certificates' ,
30- cardinality : 'belongs-to' ,
31- serialize : true ,
32- deserialize : true
33- }
34- }
35- }
36- } as const ;
14+ function setupRegistry ( registry : ResourcesRegistryImpl ) {
15+ const certificateRegistration = {
16+ serializer : { } as never ,
17+ deserializer : { } as never ,
18+ schema : {
19+ resourceType : 'certificates' ,
20+ attributes : {
21+ firstname : {
22+ serialize : true ,
23+ deserialize : false ,
24+ type : 'string' ,
25+ } ,
26+ } ,
27+ relationships : {
28+ patientCertificate : {
29+ type : 'patient-certificates' ,
30+ cardinality : 'belongs-to' ,
31+ serialize : true ,
32+ deserialize : true ,
33+ } ,
34+ } ,
35+ } ,
36+ } as const ;
3737
38-
39- registry . register ( 'certificates' , certificateRegistration ) ;
40- registry . register ( 'patients' , {
41- serializer : { } as never ,
42- deserializer : { } as never ,
43- schema : {
44- resourceType : 'patients' ,
45- attributes : {
46- firstname : {
47- serialize : true ,
48- deserialize : false ,
49- type : 'string'
50- }
51- } ,
52- relationships : {
53- company : {
54- type : 'companies' ,
55- cardinality : 'belongs-to' ,
56- serialize : true ,
57- deserialize : true
58- } ,
59- patientCertificates : {
60- type : 'patient-certificates' ,
61- cardinality : 'has-many' ,
62- serialize : true ,
63- deserialize : true
64- }
65- }
66- }
67- } ) ;
68- registry . register ( 'companies' , {
69- serializer : { } as never ,
70- deserializer : { } as never ,
71- schema : {
72- resourceType : 'companies' ,
73- attributes : {
74- name : {
75- serialize : true ,
76- deserialize : false ,
77- type : 'string'
78- }
79- } ,
80- relationships : {
81- patients : {
82- type : 'patients' ,
83- cardinality : 'has-many' ,
84- serialize : true ,
85- deserialize : true
86- }
87- }
88- }
89- } ) ;
90- registry . register ( 'patient-certificates' , {
91- serializer : { } as never ,
92- deserializer : { } as never ,
93- schema : {
94- resourceType : 'patient-certificates' ,
95- attributes : {
96- address : {
97- serialize : true ,
98- deserialize : false ,
99- type : 'string'
100- }
101- } ,
102- relationships : {
103- certificate : {
104- type : 'certificates' ,
105- cardinality : 'has-many' ,
106- serialize : true ,
107- deserialize : true
108- } ,
109- patient : {
110- type : 'patients' ,
111- cardinality : 'belongs-to' ,
112- serialize : true ,
113- deserialize : true
114- }
115- }
116- }
117- } ) ;
118- }
38+ registry . register ( 'certificates' , certificateRegistration ) ;
39+ registry . register ( 'patients' , {
40+ serializer : { } as never ,
41+ deserializer : { } as never ,
42+ schema : {
43+ resourceType : 'patients' ,
44+ attributes : {
45+ firstname : {
46+ serialize : true ,
47+ deserialize : false ,
48+ type : 'string' ,
49+ } ,
50+ } ,
51+ relationships : {
52+ company : {
53+ type : 'companies' ,
54+ cardinality : 'belongs-to' ,
55+ serialize : true ,
56+ deserialize : true ,
57+ } ,
58+ patientCertificates : {
59+ type : 'patient-certificates' ,
60+ cardinality : 'has-many' ,
61+ serialize : true ,
62+ deserialize : true ,
63+ } ,
64+ } ,
65+ } ,
66+ } ) ;
67+ registry . register ( 'companies' , {
68+ serializer : { } as never ,
69+ deserializer : { } as never ,
70+ schema : {
71+ resourceType : 'companies' ,
72+ attributes : {
73+ name : {
74+ serialize : true ,
75+ deserialize : false ,
76+ type : 'string' ,
77+ } ,
78+ } ,
79+ relationships : {
80+ patients : {
81+ type : 'patients' ,
82+ cardinality : 'has-many' ,
83+ serialize : true ,
84+ deserialize : true ,
85+ } ,
86+ } ,
87+ } ,
88+ } ) ;
89+ registry . register ( 'patient-certificates' , {
90+ serializer : { } as never ,
91+ deserializer : { } as never ,
92+ schema : {
93+ resourceType : 'patient-certificates' ,
94+ attributes : {
95+ address : {
96+ serialize : true ,
97+ deserialize : false ,
98+ type : 'string' ,
99+ } ,
100+ } ,
101+ relationships : {
102+ certificate : {
103+ type : 'certificates' ,
104+ cardinality : 'has-many' ,
105+ serialize : true ,
106+ deserialize : true ,
107+ } ,
108+ patient : {
109+ type : 'patients' ,
110+ cardinality : 'belongs-to' ,
111+ serialize : true ,
112+ deserialize : true ,
113+ } ,
114+ } ,
115+ } ,
116+ } ) ;
117+ }
119118
120119 it ( 'Serialize resources with the same ids' , async ( ) => {
121120 const registry = new ResourcesRegistryImpl ( ) ;
122121
123122 registry . setConfig ( {
124- host : 'http://localhost:3000'
125- } )
123+ host : 'http://localhost:3000' ,
124+ } ) ;
126125
127126 setupRegistry ( registry ) ;
128127
@@ -131,23 +130,23 @@ describe('JsonApiResourceSerializer', () => {
131130 ) ;
132131
133132 const result = await serializer . serializeMany ( resources , {
134- include : [
133+ include : [
134+ {
135+ relationName : 'patientCertificate' ,
136+ nested : [
135137 {
136- relationName : 'patientCertificate' ,
137- nested : [
138- {
139- relationName : 'patient' ,
140- nested : [ {
141- relationName : 'company' ,
142- nested : [ ]
143- } ]
144- }
145- ]
146- }
147- ]
138+ relationName : 'patient' ,
139+ nested : [ {
140+ relationName : 'company' ,
141+ nested : [ ] ,
142+ } ] ,
143+ } ,
144+ ] ,
145+ } ,
146+ ] ,
148147 } , {
149148 endpointURL : '/test' ,
150-
149+
151150 } ) ;
152151
153152 expect ( result . included ?. some ( ( doc ) => doc . type === 'patients' && doc . id === '99999999' ) ) . toBe ( true ) ;
0 commit comments