Skip to content

Commit 22396c2

Browse files
fralongoFrancesco Longo
andauthored
chore: Add autosuggest and text filter values in analytics metadata (#3670)
Co-authored-by: Francesco Longo <[email protected]>
1 parent 2295fdb commit 22396c2

File tree

6 files changed

+18
-13
lines changed

6 files changed

+18
-13
lines changed

src/autosuggest/__tests__/analytics-metadata.test.tsx

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ function renderAutosuggest(props: Partial<AutosuggestProps>) {
3939
return createWrapper(renderResult.container).findAutosuggest()!;
4040
}
4141

42-
const getMetadataContexts = (label = 'autosuggest with metadatada', disabled?: boolean) => {
42+
const getMetadataContexts = (label = 'autosuggest with metadatada', disabled = false, value = '') => {
4343
const metadata: GeneratedAnalyticsMetadataFragment = {
4444
contexts: [
4545
{
@@ -49,6 +49,7 @@ const getMetadataContexts = (label = 'autosuggest with metadatada', disabled?: b
4949
label,
5050
properties: {
5151
disabled: disabled ? 'true' : 'false',
52+
value,
5253
},
5354
},
5455
},
@@ -106,7 +107,7 @@ describe('Autosuggest renders correct analytics metadata', () => {
106107
};
107108
expect(getGeneratedAnalyticsMetadata(clearButton)).toEqual({
108109
...clearInputMetadata,
109-
...getMetadataContexts(),
110+
...getMetadataContexts(undefined, undefined, 'something'),
110111
});
111112
});
112113
test('when disabled', () => {
@@ -131,7 +132,7 @@ describe('Autosuggest renders correct analytics metadata', () => {
131132
};
132133
expect(getGeneratedAnalyticsMetadata(simpleEnabledItemWithoutLabel)).toEqual({
133134
...selectAction,
134-
...getMetadataContexts(),
135+
...getMetadataContexts(undefined, undefined, 'something'),
135136
});
136137

137138
const simpleEnabledItemWithLabel = wrapper.findDropdown().findOptionByValue('value2')!.getElement();
@@ -143,13 +144,13 @@ describe('Autosuggest renders correct analytics metadata', () => {
143144
position: '2',
144145
value: 'value2',
145146
},
146-
...getMetadataContexts(),
147+
...getMetadataContexts(undefined, undefined, 'something'),
147148
});
148149

149150
const disabledItem = wrapper.findDropdown().findOptionByValue('value4')!.getElement();
150151
validateComponentNameAndLabels(disabledItem, labels);
151152
expect(getGeneratedAnalyticsMetadata(disabledItem)).toEqual({
152-
...getMetadataContexts(),
153+
...getMetadataContexts(undefined, undefined, 'something'),
153154
});
154155
});
155156
test.each([false, true])('with groups and expandToViewport=%s', expandToViewport => {

src/autosuggest/analytics-metadata/interfaces.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,5 +13,6 @@ export interface GeneratedAnalyticsMetadataAutosuggestComponent {
1313
label: string;
1414
properties: {
1515
disabled: string;
16+
value: string;
1617
};
1718
}

src/autosuggest/index.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ const Autosuggest = React.forwardRef(
3535
label: 'input',
3636
properties: {
3737
disabled: `${!!props.disabled}`,
38+
value: props.value || '',
3839
},
3940
};
4041

src/text-filter/__tests__/analytics-metadata.test.tsx

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -16,19 +16,18 @@ import InternalTextFilter from '../../../lib/components/text-filter/internal';
1616

1717
const label = 'text filter label';
1818

19-
const props: TextFilterProps = {
20-
filteringText: 'whatever',
19+
const props: Partial<TextFilterProps> = {
2120
onChange: () => {},
2221
filteringAriaLabel: label,
2322
filteringClearAriaLabel: 'clear',
2423
};
2524

26-
function renderTextFilter(disabled = false) {
27-
const renderResult = render(<TextFilter {...props} disabled={disabled} />);
25+
function renderTextFilter(disabled = false, filteringText = 'whatever') {
26+
const renderResult = render(<TextFilter {...props} disabled={disabled} filteringText={filteringText} />);
2827
return createWrapper(renderResult.container).findTextFilter()!;
2928
}
3029

31-
const getMetadata = (disabled = false) => {
30+
const getMetadata = (disabled = false, filteringText = 'whatever') => {
3231
const metadata: GeneratedAnalyticsMetadataFragment = {
3332
contexts: [
3433
{
@@ -38,6 +37,7 @@ const getMetadata = (disabled = false) => {
3837
label,
3938
properties: {
4039
disabled: disabled ? 'true' : 'false',
40+
filteringText,
4141
},
4242
},
4343
},
@@ -65,13 +65,13 @@ describe('TextFilter renders correct analytics metadata', () => {
6565
});
6666
});
6767
test('when disabled', () => {
68-
const wrapper = renderTextFilter(true);
69-
expect(getGeneratedAnalyticsMetadata(wrapper.getElement())).toEqual(getMetadata(true));
68+
const wrapper = renderTextFilter(true, '');
69+
expect(getGeneratedAnalyticsMetadata(wrapper.getElement())).toEqual(getMetadata(true, ''));
7070
});
7171
});
7272

7373
test('Internal TextFilter does not render "component" metadata', () => {
74-
const renderResult = render(<InternalTextFilter {...props} />);
74+
const renderResult = render(<InternalTextFilter {...props} filteringText="whatever" />);
7575
const wrapper = createWrapper(renderResult.container).findTextFilter()!;
7676
expect(getGeneratedAnalyticsMetadata(wrapper.getElement())).toEqual({});
7777
});

src/text-filter/analytics-metadata/interfaces.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,5 +9,6 @@ export interface GeneratedAnalyticsMetadataTextFilterComponent {
99
label: string;
1010
properties: {
1111
disabled: string;
12+
filteringText: string;
1213
};
1314
}

src/text-filter/index.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ const TextFilter = React.forwardRef((props: TextFilterProps, ref: React.Ref<Text
2323
label: 'input',
2424
properties: {
2525
disabled: `${!!props.disabled}`,
26+
filteringText: props.filteringText || '',
2627
},
2728
};
2829
return (

0 commit comments

Comments
 (0)