diff --git a/packages/carbon-component-mapper/src/files/text-field.js b/packages/carbon-component-mapper/src/files/text-field.js
index f393fe538..31e8f4d8a 100644
--- a/packages/carbon-component-mapper/src/files/text-field.js
+++ b/packages/carbon-component-mapper/src/files/text-field.js
@@ -7,7 +7,7 @@ import { TextInput, NumberInput } from 'carbon-components-react';
import prepareProps from './prepare-props';
const TextField = (props) => {
- const { input, meta, validateOnMount, ...rest } = useFieldApi(prepareProps(props));
+ const { input, meta, validateOnMount, labelText, ...rest } = useFieldApi(prepareProps(props));
const Component = input.type === 'number' ? NumberInput : TextInput;
@@ -23,6 +23,7 @@ const TextField = (props) => {
invalidText={invalid || ''}
warn={Boolean(warn)}
warnText={warn || ''}
+ {...(input.type === 'number' ? { label: labelText } : { labelText })}
{...rest}
/>
);
diff --git a/packages/carbon-component-mapper/src/tests/components.test.js b/packages/carbon-component-mapper/src/tests/components.test.js
index 2a32f0077..7f0183f76 100644
--- a/packages/carbon-component-mapper/src/tests/components.test.js
+++ b/packages/carbon-component-mapper/src/tests/components.test.js
@@ -14,7 +14,13 @@ describe('component tests', () => {
onSubmit={jest.fn()}
FormTemplate={(props) => }
schema={schema}
- componentMapper={componentMapper}
+ componentMapper={{
+ ...componentMapper,
+ 'text-field-number': {
+ component: componentMapper[componentTypes.TEXT_FIELD],
+ type: 'number'
+ }
+ }}
{...props}
/>
);
@@ -47,7 +53,8 @@ describe('component tests', () => {
componentTypes.TIME_PICKER,
componentTypes.SWITCH,
componentTypes.SELECT,
- componentTypes.SLIDER
+ componentTypes.SLIDER,
+ 'text-field-number'
].forEach((component) => {
describe(`Component type: ${component}`, () => {
beforeEach(() => {
@@ -70,6 +77,8 @@ describe('component tests', () => {
if (component === componentTypes.RADIO) {
expect(wrapper.find('.bx--radio-button-wrapper')).toHaveLength(options.length);
+ } else if (component === 'text-field-number') {
+ expect(wrapper.find('NumberInput')).toHaveLength(1);
} else {
expect(wrapper.find(componentMapper[component])).toHaveLength(1);
expect(
@@ -99,96 +108,99 @@ describe('component tests', () => {
}
});
- it('renders with warning', async () => {
- const errorField = {
- ...field,
- validate: [{ type: validatorTypes.REQUIRED, warning: true }],
- useWarnings: true,
- validateOnMount: true
- };
- let wrapper;
+ if (component !== 'text-field-number') {
+ it('renders with warning', async () => {
+ const errorField = {
+ ...field,
+ validate: [{ type: validatorTypes.REQUIRED, warning: true }],
+ useWarnings: true,
+ validateOnMount: true
+ };
+ let wrapper;
+
+ await act(async () => {
+ wrapper = mount();
+ });
+ wrapper.update();
+ wrapper.update();
+
+ const helperText = wrapper.find('.bx--form__helper-text');
+
+ if (helperText.length) {
+ expect(helperText.text()).toEqual(errorText);
+ } else {
+ expect(
+ wrapper
+ .find('.bx--form-requirement')
+ .last()
+ .text()
+ ).toEqual(errorText);
+ }
+ });
+
+ it('renders with helperText', () => {
+ const helpertextField = {
+ ...field,
+ helperText
+ };
+ const wrapper = mount();
- await act(async () => {
- wrapper = mount();
+ expect(
+ wrapper
+ .find('.bx--form__helper-text')
+ .last()
+ .text()
+ ).toEqual(helperText);
});
- wrapper.update();
- const helperText = wrapper.find('.bx--form__helper-text');
+ it('renders with description and helperText', () => {
+ const descriptionField = {
+ ...field,
+ description,
+ helperText
+ };
+ const wrapper = mount();
+
+ expect(wrapper.find(WithDescription)).toHaveLength(1);
- if (helperText.length) {
- expect(helperText.text()).toEqual(errorText);
- } else {
expect(
wrapper
- .find('.bx--form-requirement')
+ .find('.bx--form__helper-text')
.last()
.text()
- ).toEqual(errorText);
- }
- });
+ ).toEqual(helperText);
+ });
- it('renders with helperText', () => {
- const helpertextField = {
- ...field,
- helperText
- };
- const wrapper = mount();
-
- expect(
- wrapper
- .find('.bx--form__helper-text')
- .last()
- .text()
- ).toEqual(helperText);
- });
+ it('renders with error and helperText', () => {
+ const errorFields = {
+ ...field,
+ helperText,
+ validate: [{ type: validatorTypes.REQUIRED }]
+ };
+ const wrapper = mount();
+ wrapper.find('form').simulate('submit');
- it('renders with description', () => {
- const descriptionField = {
- ...field,
- description
- };
- const wrapper = mount();
+ if (wrapper.find('#field-name-error-msg').length) {
+ expect(wrapper.find('#field-name-error-msg').text()).toEqual(errorText);
+ expect(wrapper.find('[invalid=true]').length).toBeGreaterThanOrEqual(1);
+ }
- expect(wrapper.find(WithDescription)).toHaveLength(1);
- });
+ if (wrapper.find('.ddorg__carbon-error-helper-text').length) {
+ expect(wrapper.find('.ddorg__carbon-error-helper-text').text()).toEqual(errorText);
+ }
+
+ expect(wrapper.find('.bx--form__helper-text')).toHaveLength(0);
+ });
+ }
- it('renders with description and helperText', () => {
+ it('renders with description', () => {
const descriptionField = {
...field,
- description,
- helperText
+ description
};
const wrapper = mount();
expect(wrapper.find(WithDescription)).toHaveLength(1);
-
- expect(
- wrapper
- .find('.bx--form__helper-text')
- .last()
- .text()
- ).toEqual(helperText);
- });
-
- it('renders with error and helperText', () => {
- const errorFields = {
- ...field,
- helperText,
- validate: [{ type: validatorTypes.REQUIRED }]
- };
- const wrapper = mount();
- wrapper.find('form').simulate('submit');
-
- if (wrapper.find('#field-name-error-msg').length) {
- expect(wrapper.find('#field-name-error-msg').text()).toEqual(errorText);
- expect(wrapper.find('[invalid=true]').length).toBeGreaterThanOrEqual(1);
- }
-
- if (wrapper.find('.ddorg__carbon-error-helper-text').length) {
- expect(wrapper.find('.ddorg__carbon-error-helper-text').text()).toEqual(errorText);
- }
-
- expect(wrapper.find('.bx--form__helper-text')).toHaveLength(0);
});
it('renders isDisabled', () => {