Skip to content

Commit 3e3993b

Browse files
committed
Update naming. Add test for invalid filters.
1 parent 74d4fe7 commit 3e3993b

File tree

5 files changed

+32
-22
lines changed

5 files changed

+32
-22
lines changed

packages/telemetry/browser-telemetry/__tests__/BrowserTelemetryImpl.test.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ const defaultOptions: ParsedOptions = {
2222
},
2323
evaluations: true,
2424
flagChange: true,
25-
breadcrumbFilters: [],
25+
filters: [],
2626
},
2727
stack: {
2828
source: {
@@ -220,7 +220,7 @@ it('filters breadcrumbs using provided filters', () => {
220220
flagChange: false,
221221
http: { instrumentFetch: false, instrumentXhr: false },
222222
keyboardInput: false,
223-
breadcrumbFilters: [
223+
filters: [
224224
// Filter to remove breadcrumbs with id:2
225225
(breadcrumb) => {
226226
if (breadcrumb.type === 'custom' && breadcrumb.data?.id === 2) {
@@ -296,7 +296,7 @@ it('omits breadcrumb when a filter throws an exception', () => {
296296
...defaultOptions,
297297
breadcrumbs: {
298298
...defaultOptions.breadcrumbs,
299-
breadcrumbFilters: [
299+
filters: [
300300
() => {
301301
throw new Error('Filter error');
302302
},
@@ -335,7 +335,7 @@ it('omits breadcrumbs when a filter is not a function', () => {
335335
breadcrumbs: {
336336
...defaultOptions.breadcrumbs,
337337
// @ts-ignore
338-
breadcrumbFilters: ['potato'],
338+
filters: ['potato'],
339339
},
340340
};
341341
const telemetry = new BrowserTelemetryImpl(options);

packages/telemetry/browser-telemetry/__tests__/options.test.ts

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ it('can set all options at once', () => {
2222
click: false,
2323
evaluations: false,
2424
flagChange: false,
25-
breadcrumbFilters: [(breadcrumb) => breadcrumb],
25+
filters: [(breadcrumb) => breadcrumb],
2626
},
2727
collectors: [new ErrorCollector(), new ErrorCollector()],
2828
});
@@ -39,7 +39,7 @@ it('can set all options at once', () => {
3939
instrumentFetch: true,
4040
instrumentXhr: true,
4141
},
42-
breadcrumbFilters: expect.any(Array),
42+
filters: expect.any(Array),
4343
},
4444
stack: {
4545
source: {
@@ -422,3 +422,19 @@ it('warns when breadcrumbs.http.customUrlFilter is not a function', () => {
422422
'The "breadcrumbs.http.customUrlFilter" must be a function. Received string',
423423
);
424424
});
425+
426+
it('warns when filters is not an array', () => {
427+
const outOptions = parse(
428+
{
429+
breadcrumbs: {
430+
// @ts-ignore
431+
filters: 'not an array',
432+
},
433+
},
434+
mockLogger,
435+
);
436+
expect(outOptions.breadcrumbs.filters).toEqual([]);
437+
expect(mockLogger.warn).toHaveBeenCalledWith(
438+
'Config option "breadcrumbs.filters" should be of type array, got string, using default value',
439+
);
440+
});

packages/telemetry/browser-telemetry/src/BrowserTelemetryImpl.ts

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -59,10 +59,7 @@ function applyBreadcrumbFilter(
5959
return breadcrumb === undefined ? undefined : filter(breadcrumb);
6060
}
6161

62-
function applyBreadcrumbFilters(
63-
breadcrumb: Breadcrumb,
64-
filters: BreadcrumbFilter[],
65-
): Breadcrumb | undefined {
62+
function applyfilters(breadcrumb: Breadcrumb, filters: BreadcrumbFilter[]): Breadcrumb | undefined {
6663
try {
6764
return filters.reduce(
6865
(breadcrumbToFilter: Breadcrumb | undefined, filter: BreadcrumbFilter) =>
@@ -213,10 +210,7 @@ export default class BrowserTelemetryImpl implements BrowserTelemetry {
213210
}
214211

215212
addBreadcrumb(breadcrumb: Breadcrumb): void {
216-
const filtered = applyBreadcrumbFilters(
217-
breadcrumb,
218-
this._options.breadcrumbs.breadcrumbFilters,
219-
);
213+
const filtered = applyfilters(breadcrumb, this._options.breadcrumbs.filters);
220214
if (filtered !== undefined) {
221215
this._breadcrumbs.push(filtered);
222216
if (this._breadcrumbs.length > this._maxBreadcrumbs) {

packages/telemetry/browser-telemetry/src/api/Options.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -152,7 +152,7 @@ export interface Options {
152152
* Example:
153153
* ```
154154
* // We want to redact any click events that include the message 'sneaky-button'
155-
* breadcrumbFilters: [
155+
* filters: [
156156
* (breadcrumb) => {
157157
* if(
158158
* breadcrumb.class === 'ui' &&
@@ -173,7 +173,7 @@ export interface Options {
173173
* If any breadcrumbFilter cannot be executed, for example because it is not a function, then all breadcrumbs will
174174
* be excluded.
175175
*/
176-
breadcrumbFilters?: BreadcrumbFilter[];
176+
filters?: BreadcrumbFilter[];
177177
};
178178

179179
/**

packages/telemetry/browser-telemetry/src/options.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ export function defaultOptions(): ParsedOptions {
2020
instrumentFetch: true,
2121
instrumentXhr: true,
2222
},
23-
breadcrumbFilters: [],
23+
filters: [],
2424
},
2525
stack: {
2626
source: {
@@ -170,10 +170,10 @@ export default function parse(options: Options, logger?: MinLogger): ParsedOptio
170170
checkBasic('boolean', 'breadcrumbs.keyboardInput', logger),
171171
),
172172
http: parseHttp(options.breadcrumbs?.http, defaults.breadcrumbs.http, logger),
173-
breadcrumbFilters: itemOrDefault(
174-
options.breadcrumbs?.breadcrumbFilters,
175-
defaults.breadcrumbs.breadcrumbFilters,
176-
checkBasic('array', 'breadcrumbs.breadcrumbFilters', logger),
173+
filters: itemOrDefault(
174+
options.breadcrumbs?.filters,
175+
defaults.breadcrumbs.filters,
176+
checkBasic('array', 'breadcrumbs.filters', logger),
177177
),
178178
},
179179
stack: parseStack(options.stack, defaults.stack),
@@ -287,7 +287,7 @@ export interface ParsedOptions {
287287
/**
288288
* Custom breadcrumb filters.
289289
*/
290-
breadcrumbFilters: BreadcrumbFilter[];
290+
filters: BreadcrumbFilter[];
291291
};
292292

293293
/**

0 commit comments

Comments
 (0)