diff --git a/src/utils.spec.ts b/src/utils.spec.ts index 7bb9afc0..052b4ac7 100644 --- a/src/utils.spec.ts +++ b/src/utils.spec.ts @@ -47,6 +47,21 @@ describe("normaliseQuery", () => { "SELECT campaign.name FROM campaign LIMIT 10" ); }); + + it("will properly handle multiline query statements", () => { + const query = ` + SELECT + asset_group.id, + metrics.conversions_value, + metrics.conversions + FROM asset_group_asset + WHERE campaign.advertising_channel_type = 'PERFORMANCE_MAX'; + `; + + expect(normaliseQuery(query)).toEqual( + "SELECT asset_group.id, metrics.conversions_value, metrics.conversions FROM asset_group_asset WHERE campaign.advertising_channel_type = 'PERFORMANCE_MAX';" + ); + }); }); describe("capitaliseFirstLetter", () => { diff --git a/src/utils.ts b/src/utils.ts index 61830494..db1df5d4 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -31,7 +31,7 @@ export function toMicros(value: number): number { * const normalisedQuery = normaliseQuery(gaqlQuery) // "SELECT campaign.name FROM campaign LIMIT 10" */ export function normaliseQuery(query: string): string { - return `${query.replace(/\s{2,}/g, " ")}`; + return query.replace(/\s+/g, " ").trim(); } /**