Skip to content

Commit 707ff38

Browse files
fralongoFrancesco Longo
andauthored
chore: Add selectedOption value in analytics metadata (#3669)
Co-authored-by: Francesco Longo <[email protected]>
1 parent 22396c2 commit 707ff38

File tree

3 files changed

+23
-1
lines changed

3 files changed

+23
-1
lines changed

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

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,11 @@ function renderSelect(props: Partial<SelectProps>) {
3232
return createWrapper(renderResult.container).findSelect()!;
3333
}
3434

35-
const getMetadataContexts = (label = 'select with metadata', disabled?: boolean) => {
35+
const getMetadataContexts = (
36+
label = 'select with metadata',
37+
disabled: boolean = false,
38+
selectedOptionValue = 'null'
39+
) => {
3640
const metadata: GeneratedAnalyticsMetadataFragment = {
3741
contexts: [
3842
{
@@ -42,6 +46,7 @@ const getMetadataContexts = (label = 'select with metadata', disabled?: boolean)
4246
label,
4347
properties: {
4448
disabled: disabled ? 'true' : 'false',
49+
selectedOptionValue,
4550
},
4651
},
4752
},
@@ -131,6 +136,21 @@ describe('Select renders correct analytics metadata', () => {
131136
});
132137
});
133138

139+
describe('with selectedOption', () => {
140+
test('and defined value', () => {
141+
const wrapper = renderSelect({ selectedOption: { value: 'value1' } });
142+
expect(getGeneratedAnalyticsMetadata(wrapper.getElement())).toEqual({
143+
...getMetadataContexts(undefined, undefined, 'value1'),
144+
});
145+
});
146+
test('and undefined value', () => {
147+
const wrapper = renderSelect({ selectedOption: { label: 'label1' } });
148+
expect(getGeneratedAnalyticsMetadata(wrapper.getElement())).toEqual({
149+
...getMetadataContexts(),
150+
});
151+
});
152+
});
153+
134154
test('with simple items', () => {
135155
const wrapper = renderSelect({});
136156
wrapper.openDropdown();

src/select/analytics-metadata/interfaces.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,5 +17,6 @@ export interface GeneratedAnalyticsMetadataSelectComponent {
1717
label: string;
1818
properties: {
1919
disabled: string;
20+
selectedOptionValue: string;
2021
};
2122
}

src/select/index.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ const Select = React.forwardRef(
4848
label: `.${analyticsSelectors['button-trigger']}`,
4949
properties: {
5050
disabled: `${!!externalProps.disabled}`,
51+
selectedOptionValue: `${externalProps.selectedOption && externalProps.selectedOption.value ? externalProps.selectedOption.value : null}`,
5152
},
5253
};
5354

0 commit comments

Comments
 (0)