Skip to content

Commit f3f0a57

Browse files
authored
Merge pull request #235 from jetstreamapp/bug/getFlattenedField
Fix getFlattenedFields with invalid data
2 parents 15475d1 + 64bfdfe commit f3f0a57

File tree

3 files changed

+15
-0
lines changed

3 files changed

+15
-0
lines changed

CHANGELOG.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,11 @@
11
# Changelog
22

3+
## 4.9.2
4+
5+
July 24, 2023
6+
7+
Ensure `getFlattenedFields` does not throw exception if query does not have `fields` property.
8+
39
## 4.9.1
410

511
May 29, 2023

src/api/public-utils.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -157,6 +157,9 @@ export function getFlattenedFields(
157157
}
158158
query = isFieldSubquery(query) ? query.subquery : query;
159159
const fields = query.fields;
160+
if (!fields) {
161+
return [];
162+
}
160163
// if a relationship field is used in a group by, then Salesforce removes the relationship portion of the field in the returned records
161164
let groupByFields: { [field: string]: string } = {};
162165
if (!!query.groupBy) {

test/public-utils.spec.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -227,4 +227,10 @@ describe('getFlattenedFields', () => {
227227
const fields = utils.getFlattenedFields(fieldSubquery.subquery);
228228
expect(fields).toEqual(['LastName']);
229229
});
230+
231+
it(`Should not blow up with invalid input`, () => {
232+
expect(utils.getFlattenedFields({})).toEqual([]);
233+
expect(utils.getFlattenedFields(null as any)).toEqual([]);
234+
expect(utils.getFlattenedFields({ fields: [] })).toEqual([]);
235+
});
230236
});

0 commit comments

Comments
 (0)