Unverified Commit 1e142606 authored by Diksha Thakur's avatar Diksha Thakur Committed by GitHub

fix: Getting tooltip on edit button of Column Description if un-editable (#511)

* passing edit text and url to ColumnList

* Added unit test case
parent c4c24d1e
...@@ -6,10 +6,14 @@ import './styles.scss'; ...@@ -6,10 +6,14 @@ import './styles.scss';
interface ColumnListProps { interface ColumnListProps {
columns?: TableColumn[]; columns?: TableColumn[];
editText?: string;
editUrl?: string;
} }
const ColumnList: React.SFC<ColumnListProps> = ({ const ColumnList: React.SFC<ColumnListProps> = ({
columns, columns,
editText,
editUrl,
}: ColumnListProps) => { }: ColumnListProps) => {
if (columns.length < 1) { if (columns.length < 1) {
return <div />; return <div />;
...@@ -17,7 +21,13 @@ const ColumnList: React.SFC<ColumnListProps> = ({ ...@@ -17,7 +21,13 @@ const ColumnList: React.SFC<ColumnListProps> = ({
} }
const columnList = columns.map((entry, index) => ( const columnList = columns.map((entry, index) => (
<ColumnListItem key={`column:${index}`} data={entry} index={index} /> <ColumnListItem
key={`column:${index}`}
data={entry}
index={index}
editText={editText}
editUrl={editUrl}
/>
)); ));
return <ul className="column-list list-group">{columnList}</ul>; return <ul className="column-list list-group">{columnList}</ul>;
...@@ -25,6 +35,8 @@ const ColumnList: React.SFC<ColumnListProps> = ({ ...@@ -25,6 +35,8 @@ const ColumnList: React.SFC<ColumnListProps> = ({
ColumnList.defaultProps = { ColumnList.defaultProps = {
columns: [] as TableColumn[], columns: [] as TableColumn[],
editText: '',
editUrl: '',
}; };
export default ColumnList; export default ColumnList;
...@@ -7,6 +7,7 @@ import { ...@@ -7,6 +7,7 @@ import {
ColumnListItemProps, ColumnListItemProps,
mapDispatchToProps, mapDispatchToProps,
} from 'components/TableDetail/ColumnListItem'; } from 'components/TableDetail/ColumnListItem';
import EditableSection from 'components/common/EditableSection';
import ColumnStats from 'components/TableDetail/ColumnStats'; import ColumnStats from 'components/TableDetail/ColumnStats';
import AppConfig from 'config/config'; import AppConfig from 'config/config';
import * as UtilMethods from 'ducks/utilMethods'; import * as UtilMethods from 'ducks/utilMethods';
...@@ -34,6 +35,8 @@ describe('ColumnListItem', () => { ...@@ -34,6 +35,8 @@ describe('ColumnListItem', () => {
}, },
index: 0, index: 0,
openRequestDescriptionDialog: jest.fn(), openRequestDescriptionDialog: jest.fn(),
editText: 'Click to edit discription in source',
editUrl: 'source/test_column_name',
...propOverrides, ...propOverrides,
}; };
...@@ -126,6 +129,19 @@ describe('ColumnListItem', () => { ...@@ -126,6 +129,19 @@ describe('ColumnListItem', () => {
expect(newWrapper.find(ColumnStats).exists()).toBe(true); expect(newWrapper.find(ColumnStats).exists()).toBe(true);
}); });
it('renders EditableSection with correct edit text and Url when expanded', () => {
instance.setState({ isExpanded: true });
const newWrapper = shallow(instance.render());
expect(newWrapper.find(EditableSection).exists()).toBe(true);
const editableSection = newWrapper.find(EditableSection);
expect(editableSection.props()).toMatchObject({
title: 'Description',
readOnly: !props.data.is_editable,
editText: props.editText,
editUrl: props.editUrl,
});
});
describe('when not expanded', () => { describe('when not expanded', () => {
let newWrapper; let newWrapper;
beforeAll(() => { beforeAll(() => {
......
...@@ -26,6 +26,8 @@ interface DispatchFromProps { ...@@ -26,6 +26,8 @@ interface DispatchFromProps {
interface OwnProps { interface OwnProps {
data: TableColumn; data: TableColumn;
index: number; index: number;
editText: string;
editUrl: string;
} }
interface ColumnListItemState { interface ColumnListItemState {
...@@ -170,6 +172,8 @@ export class ColumnListItem extends React.Component< ...@@ -170,6 +172,8 @@ export class ColumnListItem extends React.Component<
<EditableSection <EditableSection
title="Description" title="Description"
readOnly={!metadata.is_editable} readOnly={!metadata.is_editable}
editText={this.props.editText}
editUrl={this.props.editUrl}
> >
<ColumnDescEditableText <ColumnDescEditableText
columnIndex={this.props.index} columnIndex={this.props.index}
......
...@@ -135,12 +135,18 @@ export class TableDetail extends React.Component< ...@@ -135,12 +135,18 @@ export class TableDetail extends React.Component<
return `${params.database}://${params.cluster}.${params.schema}/${params.table}`; return `${params.database}://${params.cluster}.${params.schema}/${params.table}`;
} }
renderTabs() { renderTabs(editText, editUrl) {
const tabInfo = []; const tabInfo = [];
// Default Column content // Default Column content
tabInfo.push({ tabInfo.push({
content: <ColumnList columns={this.props.tableData.columns} />, content: (
<ColumnList
columns={this.props.tableData.columns}
editText={editText}
editUrl={editUrl}
/>
),
key: 'columns', key: 'columns',
title: `Columns (${this.props.tableData.columns.length})`, title: `Columns (${this.props.tableData.columns.length})`,
}); });
...@@ -307,7 +313,9 @@ export class TableDetail extends React.Component< ...@@ -307,7 +313,9 @@ export class TableDetail extends React.Component<
</section> </section>
))} ))}
</aside> </aside>
<main className="right-panel">{this.renderTabs()}</main> <main className="right-panel">
{this.renderTabs(editText, editUrl)}
</main>
</div> </div>
</div> </div>
); );
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment