@@ -8,103 +8,103 @@ const LOCAL_PACKAGE_PATH = Path.join(__dirname, "../../../assets/local-package/s
88 * Tests for local package folder functionality with multi-package dependency resolution.
99 * */
1010describe ( "Local Package Folder - Multi-Package Generation" , async ( ) => {
11- const localPackageConfig = {
12- package : { name : "example.folder.structures" , version : "0.0.1" } ,
13- path : LOCAL_PACKAGE_PATH ,
14- dependencies : [ { name : "hl7.fhir.r4.core" , version : "4.0.1" } ] ,
15- } ;
16-
17- const treeShakeConfig = {
18- "example.folder.structures" : {
19- "http://example.org/fhir/StructureDefinition/ExampleNotebook" : { } ,
20- } ,
21- } ;
22-
23- describe ( "TypeScript Generation" , async ( ) => {
24- const result = await new APIBuilder ( )
25- . setLogLevel ( "SILENT" )
26- . localStructureDefinitions ( localPackageConfig )
27- . treeShake ( treeShakeConfig )
28- . typescript ( { inMemoryOnly : true } )
29- . generate ( ) ;
30-
31- it ( "should succeed" , ( ) => {
32- expect ( result . success ) . toBeTrue ( ) ;
33- } ) ;
34-
35- it ( "should generate ExampleNotebook type in custom package folder" , ( ) => {
36- const notebookFile = result . filesGenerated [ "generated/types/example-folder-structures/ExampleNotebook.ts" ] ;
37- expect ( notebookFile ) . toBeDefined ( ) ;
38- expect ( notebookFile ) . toMatchSnapshot ( ) ;
39- } ) ;
40-
41- it ( "should resolve R4 dependencies (Identifier, Reference, Coding)" , ( ) => {
42- const notebookFile = result . filesGenerated [ "generated/types/example-folder-structures/ExampleNotebook.ts" ] ;
43- expect ( notebookFile ) . toContain ( "Identifier" ) ;
44- expect ( notebookFile ) . toContain ( "Reference" ) ;
45- expect ( notebookFile ) . toContain ( "Coding" ) ;
46- } ) ;
47-
48- it ( "should generate R4 dependency types" , ( ) => {
49- expect ( result . filesGenerated [ "generated/types/hl7-fhir-r4-core/Identifier.ts" ] ) . toBeDefined ( ) ;
50- expect ( result . filesGenerated [ "generated/types/hl7-fhir-r4-core/Reference.ts" ] ) . toBeDefined ( ) ;
51- expect ( result . filesGenerated [ "generated/types/hl7-fhir-r4-core/Coding.ts" ] ) . toBeDefined ( ) ;
52- } ) ;
53- } ) ;
54-
55- describe ( "Python Generation" , async ( ) => {
56- const result = await new APIBuilder ( )
57- . setLogLevel ( "SILENT" )
58- . localStructureDefinitions ( localPackageConfig )
59- . treeShake ( treeShakeConfig )
60- . python ( { inMemoryOnly : true } )
61- . generate ( ) ;
62-
63- it ( "should succeed" , ( ) => {
64- expect ( result . success ) . toBeTrue ( ) ;
65- } ) ;
66-
67- // Python generator does not support logical models (ExampleNotebook is kind: "logical")
68- it . todo ( "should generate ExampleNotebook type" , ( ) => { } ) ;
69-
70- it ( "should generate R4 dependency types" , ( ) => {
71- // Python generator resolves R4 dependencies from tree-shaking
72- expect ( result . filesGenerated [ "generated/hl7_fhir_r4_core/__init__.py" ] ) . toBeDefined ( ) ;
73- expect ( result . filesGenerated [ "generated/hl7_fhir_r4_core/domain_resource.py" ] ) . toBeDefined ( ) ;
74- } ) ;
75-
76- it ( "should generate base types for dependencies" , ( ) => {
77- const domainResource = result . filesGenerated [ "generated/hl7_fhir_r4_core/domain_resource.py" ] ;
78- expect ( domainResource ) . toBeDefined ( ) ;
79- expect ( domainResource ) . toMatchSnapshot ( ) ;
80- } ) ;
81- } ) ;
82-
83- describe ( "C# Generation" , async ( ) => {
84- const result = await new APIBuilder ( )
85- . setLogLevel ( "SILENT" )
86- . localStructureDefinitions ( localPackageConfig )
87- . treeShake ( treeShakeConfig )
88- . csharp ( { inMemoryOnly : true } )
89- . generate ( ) ;
90-
91- it ( "should succeed" , ( ) => {
92- expect ( result . success ) . toBeTrue ( ) ;
93- } ) ;
94-
95- // C# generator does not support logical models (ExampleNotebook is kind: "logical")
96- it . todo ( "should generate ExampleNotebook type" , ( ) => { } ) ;
97-
98- it ( "should generate R4 dependency types" , ( ) => {
99- // C# generator resolves R4 dependencies from tree-shaking
100- expect ( result . filesGenerated [ "generated/types/Hl7FhirR4Core/DomainResource.cs" ] ) . toBeDefined ( ) ;
101- expect ( result . filesGenerated [ "generated/types/Hl7FhirR4Core/Resource.cs" ] ) . toBeDefined ( ) ;
102- } ) ;
103-
104- it ( "should generate DomainResource base class" , ( ) => {
105- const domainResource = result . filesGenerated [ "generated/types/Hl7FhirR4Core/DomainResource.cs" ] ;
106- expect ( domainResource ) . toBeDefined ( ) ;
107- expect ( domainResource ) . toMatchSnapshot ( ) ;
108- } ) ;
109- } ) ;
110- } ) ;
11+ const localPackageConfig = {
12+ package : { name : "example.folder.structures" , version : "0.0.1" } ,
13+ path : LOCAL_PACKAGE_PATH ,
14+ dependencies : [ { name : "hl7.fhir.r4.core" , version : "4.0.1" } ] ,
15+ } ;
16+
17+ const treeShakeConfig = {
18+ "example.folder.structures" : {
19+ "http://example.org/fhir/StructureDefinition/ExampleNotebook" : { } ,
20+ } ,
21+ } ;
22+
23+ describe ( "TypeScript Generation" , async ( ) => {
24+ const result = await new APIBuilder ( )
25+ . setLogLevel ( "SILENT" )
26+ . localStructureDefinitions ( localPackageConfig )
27+ . treeShake ( treeShakeConfig )
28+ . typescript ( { inMemoryOnly : true } )
29+ . generate ( ) ;
30+
31+ it ( "should succeed" , ( ) => {
32+ expect ( result . success ) . toBeTrue ( ) ;
33+ } ) ;
34+
35+ it ( "should generate ExampleNotebook type in custom package folder" , ( ) => {
36+ const notebookFile = result . filesGenerated [ "generated/types/example-folder-structures/ExampleNotebook.ts" ] ;
37+ expect ( notebookFile ) . toBeDefined ( ) ;
38+ expect ( notebookFile ) . toMatchSnapshot ( ) ;
39+ } ) ;
40+
41+ it ( "should resolve R4 dependencies (Identifier, Reference, Coding)" , ( ) => {
42+ const notebookFile = result . filesGenerated [ "generated/types/example-folder-structures/ExampleNotebook.ts" ] ;
43+ expect ( notebookFile ) . toContain ( "Identifier" ) ;
44+ expect ( notebookFile ) . toContain ( "Reference" ) ;
45+ expect ( notebookFile ) . toContain ( "Coding" ) ;
46+ } ) ;
47+
48+ it ( "should generate R4 dependency types" , ( ) => {
49+ expect ( result . filesGenerated [ "generated/types/hl7-fhir-r4-core/Identifier.ts" ] ) . toBeDefined ( ) ;
50+ expect ( result . filesGenerated [ "generated/types/hl7-fhir-r4-core/Reference.ts" ] ) . toBeDefined ( ) ;
51+ expect ( result . filesGenerated [ "generated/types/hl7-fhir-r4-core/Coding.ts" ] ) . toBeDefined ( ) ;
52+ } ) ;
53+ } ) ;
54+
55+ describe ( "Python Generation" , async ( ) => {
56+ const result = await new APIBuilder ( )
57+ . setLogLevel ( "SILENT" )
58+ . localStructureDefinitions ( localPackageConfig )
59+ . treeShake ( treeShakeConfig )
60+ . python ( { inMemoryOnly : true } )
61+ . generate ( ) ;
62+
63+ it ( "should succeed" , ( ) => {
64+ expect ( result . success ) . toBeTrue ( ) ;
65+ } ) ;
66+
67+ // Python generator does not support logical models (ExampleNotebook is kind: "logical")
68+ it . todo ( "should generate ExampleNotebook type" , ( ) => { } ) ;
69+
70+ it ( "should generate R4 dependency types" , ( ) => {
71+ // Python generator resolves R4 dependencies from tree-shaking
72+ expect ( result . filesGenerated [ "generated/hl7_fhir_r4_core/__init__.py" ] ) . toBeDefined ( ) ;
73+ expect ( result . filesGenerated [ "generated/hl7_fhir_r4_core/domain_resource.py" ] ) . toBeDefined ( ) ;
74+ } ) ;
75+
76+ it ( "should generate base types for dependencies" , ( ) => {
77+ const domainResource = result . filesGenerated [ "generated/hl7_fhir_r4_core/domain_resource.py" ] ;
78+ expect ( domainResource ) . toBeDefined ( ) ;
79+ expect ( domainResource ) . toMatchSnapshot ( ) ;
80+ } ) ;
81+ } ) ;
82+
83+ describe ( "C# Generation" , async ( ) => {
84+ const result = await new APIBuilder ( )
85+ . setLogLevel ( "SILENT" )
86+ . localStructureDefinitions ( localPackageConfig )
87+ . treeShake ( treeShakeConfig )
88+ . csharp ( { inMemoryOnly : true } )
89+ . generate ( ) ;
90+
91+ it ( "should succeed" , ( ) => {
92+ expect ( result . success ) . toBeTrue ( ) ;
93+ } ) ;
94+
95+ // C# generator does not support logical models (ExampleNotebook is kind: "logical")
96+ it . todo ( "should generate ExampleNotebook type" , ( ) => { } ) ;
97+
98+ it ( "should generate R4 dependency types" , ( ) => {
99+ // C# generator resolves R4 dependencies from tree-shaking
100+ expect ( result . filesGenerated [ "generated/types/Hl7FhirR4Core/DomainResource.cs" ] ) . toBeDefined ( ) ;
101+ expect ( result . filesGenerated [ "generated/types/Hl7FhirR4Core/Resource.cs" ] ) . toBeDefined ( ) ;
102+ } ) ;
103+
104+ it ( "should generate DomainResource base class" , ( ) => {
105+ const domainResource = result . filesGenerated [ "generated/types/Hl7FhirR4Core/DomainResource.cs" ] ;
106+ expect ( domainResource ) . toBeDefined ( ) ;
107+ expect ( domainResource ) . toMatchSnapshot ( ) ;
108+ } ) ;
109+ } ) ;
110+ } ) ;
0 commit comments