diff --git a/superset-frontend/src/CRUD/Field.test.tsx b/superset-frontend/src/CRUD/Field.test.tsx new file mode 100644 index 0000000000000..ab90033e5c5a9 --- /dev/null +++ b/superset-frontend/src/CRUD/Field.test.tsx @@ -0,0 +1,56 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import React from 'react'; +import { render, screen } from 'spec/helpers/testing-library'; +import { shallow } from 'enzyme'; +import TextAreaControl from 'src/explore/components/controls/TextAreaControl'; +import Field from './Field'; + +describe('Field', () => { + const defaultProps = { + fieldKey: 'mock', + value: '', + label: 'mock', + description: 'description', + control: , + onChange: jest.fn(), + compact: false, + inline: false, + }; + + it('should render', () => { + const { container } = render(); + expect(container).toBeInTheDocument(); + }); + + it('should call onChange', () => { + const wrapper = shallow(); + const textArea = wrapper.find(TextAreaControl); + textArea.simulate('change', { target: { value: 'x' } }); + expect(defaultProps.onChange).toHaveBeenCalled(); + }); + + it('should render compact', () => { + render(); + expect( + screen.queryByText(defaultProps.description), + ).not.toBeInTheDocument(); + }); +}); diff --git a/superset-frontend/src/CRUD/Field.tsx b/superset-frontend/src/CRUD/Field.tsx index 942b870f7d994..80388b6692f83 100644 --- a/superset-frontend/src/CRUD/Field.tsx +++ b/superset-frontend/src/CRUD/Field.tsx @@ -44,10 +44,10 @@ export default function Field({ fieldKey, value, label, - description, + description = null, control, - onChange, - compact, + onChange = () => {}, + compact = false, inline, }: FieldProps) { const onControlChange = useCallback(