Skip to content

Commit 7370f72

Browse files
committed
chore: Update snapshots and tests for undefined unbounded getter
1 parent 941b47c commit 7370f72

5 files changed

Lines changed: 30 additions & 25 deletions

File tree

examples/local-package-folder/profile-typed-bundle.test.ts

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -57,8 +57,8 @@ describe("demo: unbounded slice (max: *) — OrganizationEntry", () => {
5757
// Set multiple organization entries at once
5858
bundle.setOrganizationEntry([{ resource: clinicOrg }, { resource: acmeOrg }]);
5959

60-
// Getter returns all matching entries as an array
61-
const orgs = bundle.getOrganizationEntry();
60+
// Getter returns all matching entries as an array (undefined if none)
61+
const orgs = bundle.getOrganizationEntry()!;
6262
expect(orgs).toHaveLength(2);
6363
expect(orgs[0]!.resource).toEqual(clinicOrg);
6464
expect(orgs[1]!.resource).toEqual(acmeOrg);
@@ -75,7 +75,7 @@ describe("demo: unbounded slice (max: *) — OrganizationEntry", () => {
7575
// Replace with a single org — previous two are removed
7676
bundle.setOrganizationEntry([{ resource: { resourceType: "Organization", name: "NewCo" } }]);
7777

78-
const orgs = bundle.getOrganizationEntry();
78+
const orgs = bundle.getOrganizationEntry()!;
7979
expect(orgs).toHaveLength(1);
8080
expect(orgs[0]!.resource!.name).toBe("NewCo");
8181

@@ -89,22 +89,23 @@ describe("demo: unbounded slice (max: *) — OrganizationEntry", () => {
8989
.setOrganizationEntry([{ resource: clinicOrg }]);
9090

9191
// Append a new org by spreading existing entries
92-
bundle.setOrganizationEntry([...bundle.getOrganizationEntry(), { resource: acmeOrg }]);
92+
bundle.setOrganizationEntry([...(bundle.getOrganizationEntry() ?? []), { resource: acmeOrg }]);
9393

94-
const orgs = bundle.getOrganizationEntry();
94+
const orgs = bundle.getOrganizationEntry()!;
9595
expect(orgs).toHaveLength(2);
9696
expect(orgs[0]!.resource).toEqual(clinicOrg);
9797
expect(orgs[1]!.resource).toEqual(acmeOrg);
9898
});
9999

100-
test("empty array removes all org entries", () => {
100+
test("empty array removes all org entries, getter returns undefined", () => {
101101
const bundle = ExampleTypedBundleProfile.create({ type: "collection" })
102102
.setPatientEntry({ resource: activePatient })
103103
.setOrganizationEntry([{ resource: clinicOrg }]);
104104

105105
bundle.setOrganizationEntry([]);
106106

107-
expect(bundle.getOrganizationEntry()).toHaveLength(0);
107+
// No matching entries — returns undefined, not empty array
108+
expect(bundle.getOrganizationEntry()).toBeUndefined();
108109
// Patient entry still present
109110
expect(bundle.toResource().entry).toHaveLength(1);
110111
});
@@ -121,7 +122,7 @@ describe("fluent chaining across slice types", () => {
121122

122123
expect(bundle.toResource().entry).toHaveLength(3);
123124
expect(bundle.getPatientEntry()!.fullUrl).toBe("urn:uuid:patient-1");
124-
expect(bundle.getOrganizationEntry()[0]!.fullUrl).toBe("urn:uuid:org-1");
125-
expect(bundle.getOrganizationEntry()[1]!.fullUrl).toBe("urn:uuid:org-2");
125+
expect(bundle.getOrganizationEntry()![0]!.fullUrl).toBe("urn:uuid:org-1");
126+
expect(bundle.getOrganizationEntry()![1]!.fullUrl).toBe("urn:uuid:org-2");
126127
});
127128
});

examples/typescript-us-core/fhir-types/hl7-fhir-us-core/profiles/Extension_USCoreEthnicityExtension.ts

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -218,12 +218,13 @@ export class USCoreEthnicityExtensionProfile {
218218
return unwrapSliceChoice<USCoreEthnicityExtension_Extension_OmbCategorySliceFlatAll>(item, ["url"], "valueCoding")
219219
}
220220

221-
public getExtensionDetailed(mode: 'flat'): USCoreEthnicityExtension_Extension_DetailedSliceFlatAll[];
222-
public getExtensionDetailed(mode: 'raw'): Extension[];
223-
public getExtensionDetailed(): USCoreEthnicityExtension_Extension_DetailedSliceFlatAll[];
224-
public getExtensionDetailed (mode: 'flat' | 'raw' = 'flat'): (USCoreEthnicityExtension_Extension_DetailedSliceFlatAll | Extension)[] {
221+
public getExtensionDetailed(mode: 'flat'): USCoreEthnicityExtension_Extension_DetailedSliceFlatAll[] | undefined;
222+
public getExtensionDetailed(mode: 'raw'): Extension[] | undefined;
223+
public getExtensionDetailed(): USCoreEthnicityExtension_Extension_DetailedSliceFlatAll[] | undefined;
224+
public getExtensionDetailed (mode: 'flat' | 'raw' = 'flat'): (USCoreEthnicityExtension_Extension_DetailedSliceFlatAll | Extension)[] | undefined {
225225
const match = USCoreEthnicityExtensionProfile.detailedSliceMatch
226226
const items = getArraySliceAll(this.resource.extension, match)
227+
if (items.length === 0) return undefined
227228
if (mode === 'raw') return items
228229
return items.map(item => unwrapSliceChoice<USCoreEthnicityExtension_Extension_DetailedSliceFlatAll>(item, ["url"], "valueCoding"))
229230
}

examples/typescript-us-core/fhir-types/hl7-fhir-us-core/profiles/Extension_USCoreRaceExtension.ts

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -218,12 +218,13 @@ export class USCoreRaceExtensionProfile {
218218
return unwrapSliceChoice<USCoreRaceExtension_Extension_OmbCategorySliceFlatAll>(item, ["url"], "valueCoding")
219219
}
220220

221-
public getExtensionDetailed(mode: 'flat'): USCoreRaceExtension_Extension_DetailedSliceFlatAll[];
222-
public getExtensionDetailed(mode: 'raw'): Extension[];
223-
public getExtensionDetailed(): USCoreRaceExtension_Extension_DetailedSliceFlatAll[];
224-
public getExtensionDetailed (mode: 'flat' | 'raw' = 'flat'): (USCoreRaceExtension_Extension_DetailedSliceFlatAll | Extension)[] {
221+
public getExtensionDetailed(mode: 'flat'): USCoreRaceExtension_Extension_DetailedSliceFlatAll[] | undefined;
222+
public getExtensionDetailed(mode: 'raw'): Extension[] | undefined;
223+
public getExtensionDetailed(): USCoreRaceExtension_Extension_DetailedSliceFlatAll[] | undefined;
224+
public getExtensionDetailed (mode: 'flat' | 'raw' = 'flat'): (USCoreRaceExtension_Extension_DetailedSliceFlatAll | Extension)[] | undefined {
225225
const match = USCoreRaceExtensionProfile.detailedSliceMatch
226226
const items = getArraySliceAll(this.resource.extension, match)
227+
if (items.length === 0) return undefined
227228
if (mode === 'raw') return items
228229
return items.map(item => unwrapSliceChoice<USCoreRaceExtension_Extension_DetailedSliceFlatAll>(item, ["url"], "valueCoding"))
229230
}

test/api/write-generator/__snapshots__/typescript.test.ts.snap

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2017,12 +2017,13 @@ export class USCoreRaceExtensionProfile {
20172017
return unwrapSliceChoice<USCoreRaceExtension_Extension_OmbCategorySliceFlatAll>(item, ["url"], "valueCoding")
20182018
}
20192019

2020-
public getExtensionDetailed(mode: 'flat'): USCoreRaceExtension_Extension_DetailedSliceFlatAll[];
2021-
public getExtensionDetailed(mode: 'raw'): Extension[];
2022-
public getExtensionDetailed(): USCoreRaceExtension_Extension_DetailedSliceFlatAll[];
2023-
public getExtensionDetailed (mode: 'flat' | 'raw' = 'flat'): (USCoreRaceExtension_Extension_DetailedSliceFlatAll | Extension)[] {
2020+
public getExtensionDetailed(mode: 'flat'): USCoreRaceExtension_Extension_DetailedSliceFlatAll[] | undefined;
2021+
public getExtensionDetailed(mode: 'raw'): Extension[] | undefined;
2022+
public getExtensionDetailed(): USCoreRaceExtension_Extension_DetailedSliceFlatAll[] | undefined;
2023+
public getExtensionDetailed (mode: 'flat' | 'raw' = 'flat'): (USCoreRaceExtension_Extension_DetailedSliceFlatAll | Extension)[] | undefined {
20242024
const match = USCoreRaceExtensionProfile.detailedSliceMatch
20252025
const items = getArraySliceAll(this.resource.extension, match)
2026+
if (items.length === 0) return undefined
20262027
if (mode === 'raw') return items
20272028
return items.map(item => unwrapSliceChoice<USCoreRaceExtension_Extension_DetailedSliceFlatAll>(item, ["url"], "valueCoding"))
20282029
}

test/api/write-generator/multi-package/__snapshots__/local-package.test.ts.snap

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -156,12 +156,13 @@ export class ExampleTypedBundleProfile {
156156
return item as unknown as ExampleTypedBundle_Entry_PatientEntrySliceFlatAll
157157
}
158158
159-
public getOrganizationEntry(mode: 'flat'): ExampleTypedBundle_Entry_OrganizationEntrySliceFlatAll[];
160-
public getOrganizationEntry(mode: 'raw'): BundleEntry<Organization>[];
161-
public getOrganizationEntry(): ExampleTypedBundle_Entry_OrganizationEntrySliceFlatAll[];
162-
public getOrganizationEntry (mode: 'flat' | 'raw' = 'flat'): (ExampleTypedBundle_Entry_OrganizationEntrySliceFlatAll | BundleEntry<Organization>)[] {
159+
public getOrganizationEntry(mode: 'flat'): ExampleTypedBundle_Entry_OrganizationEntrySliceFlatAll[] | undefined;
160+
public getOrganizationEntry(mode: 'raw'): BundleEntry<Organization>[] | undefined;
161+
public getOrganizationEntry(): ExampleTypedBundle_Entry_OrganizationEntrySliceFlatAll[] | undefined;
162+
public getOrganizationEntry (mode: 'flat' | 'raw' = 'flat'): (ExampleTypedBundle_Entry_OrganizationEntrySliceFlatAll | BundleEntry<Organization>)[] | undefined {
163163
const match = ExampleTypedBundleProfile.OrganizationEntrySliceMatch
164164
const items = getArraySliceAll(this.resource.entry, match)
165+
if (items.length === 0) return undefined
165166
if (mode === 'raw') return items as BundleEntry<Organization>[]
166167
return items as unknown as ExampleTypedBundle_Entry_OrganizationEntrySliceFlatAll[]
167168
}

0 commit comments

Comments
 (0)