update test cases and snapshot

This commit is contained in:
sunilyadav840 2021-08-12 17:20:09 +05:30
parent 2b22e518e0
commit c1c085f712
7 changed files with 6541 additions and 4852 deletions

View File

@ -124,12 +124,12 @@ export const TableEntity: FunctionComponent<TableEntityProps> = ({
/> />
{!isEntityValueDisable && ( {!isEntityValueDisable && (
<TooltipHost content="Edit property" id="editTooltip"> <TooltipHost content="Edit property" id="editTooltip">
<Image {...imageProps} src={EditIcon} alt="editEntity" onClick={onEditEntity} /> <Image {...imageProps} src={EditIcon} alt="editEntity" id="editEntity" onClick={onEditEntity} />
</TooltipHost> </TooltipHost>
)} )}
{isDeleteOptionVisible && userContext.apiType !== "Cassandra" && ( {isDeleteOptionVisible && userContext.apiType !== "Cassandra" && (
<TooltipHost content="Delete property" id="deleteTooltip"> <TooltipHost content="Delete property" id="deleteTooltip">
<Image {...imageProps} src={DeleteIcon} alt="delete entity" onClick={onDeleteEntity} /> <Image {...imageProps} src={DeleteIcon} alt="delete entity" id="deleteEntity" onClick={onDeleteEntity} />
</TooltipHost> </TooltipHost>
)} )}
</Stack> </Stack>

View File

@ -19,6 +19,7 @@ describe("Excute Add Table Entity Pane", () => {
tableEntityListViewModel: fakeTableEntityListViewModel, tableEntityListViewModel: fakeTableEntityListViewModel,
cassandraApiClient: fakeCassandraApiClient, cassandraApiClient: fakeCassandraApiClient,
reloadEntities: () => "{}", reloadEntities: () => "{}",
headerItems: ["email"],
}; };
it("should render Default properly", () => { it("should render Default properly", () => {
@ -28,13 +29,13 @@ describe("Excute Add Table Entity Pane", () => {
it("initially display 4 input field, 2 properties and 2 entity values", () => { it("initially display 4 input field, 2 properties and 2 entity values", () => {
const wrapper = mount(<AddTableEntityPanel {...props} />); const wrapper = mount(<AddTableEntityPanel {...props} />);
expect(wrapper.find("input[type='text']")).toHaveLength(0); expect(wrapper.find("input[type='text']")).toHaveLength(1);
}); });
it("add a new entity row", () => { it("add a new entity row", () => {
const wrapper = mount(<AddTableEntityPanel {...props} />); const wrapper = mount(<AddTableEntityPanel {...props} />);
wrapper.find(".addButtonEntiy").last().simulate("click"); wrapper.find(".addButtonEntiy").last().simulate("click");
expect(wrapper.find("input[type='text']")).toHaveLength(1); expect(wrapper.find("input[type='text']")).toHaveLength(2);
}); });
it("remove a entity field", () => { it("remove a entity field", () => {
@ -42,6 +43,6 @@ describe("Excute Add Table Entity Pane", () => {
// Since default entity row doesn't have delete option, so added row then delete for test cases. // Since default entity row doesn't have delete option, so added row then delete for test cases.
wrapper.find(".addButtonEntiy").last().simulate("click"); wrapper.find(".addButtonEntiy").last().simulate("click");
wrapper.find("#deleteEntity").last().simulate("click"); wrapper.find("#deleteEntity").last().simulate("click");
expect(wrapper.find("input[type='text']")).toHaveLength(0); expect(wrapper.find("input[type='text']")).toHaveLength(1);
}); });
}); });

View File

@ -29,7 +29,7 @@ import {
getDefaultEntities, getDefaultEntities,
getEntityValuePlaceholder, getEntityValuePlaceholder,
imageProps, imageProps,
options options,
} from "./Validators/EntityTableHelper"; } from "./Validators/EntityTableHelper";
interface AddTableEntityPanelProps { interface AddTableEntityPanelProps {
@ -39,7 +39,7 @@ interface AddTableEntityPanelProps {
tableEntityListViewModel: TableEntityListViewModel; tableEntityListViewModel: TableEntityListViewModel;
cassandraApiClient: CassandraAPIDataClient; cassandraApiClient: CassandraAPIDataClient;
reloadEntities: () => void; reloadEntities: () => void;
headerItem: string[]; headerItems: string[];
} }
interface EntityRowType { interface EntityRowType {
@ -60,7 +60,7 @@ export const AddTableEntityPanel: FunctionComponent<AddTableEntityPanelProps> =
tableEntityListViewModel, tableEntityListViewModel,
cassandraApiClient, cassandraApiClient,
reloadEntities, reloadEntities,
headerItem, headerItems,
}: AddTableEntityPanelProps): JSX.Element => { }: AddTableEntityPanelProps): JSX.Element => {
const closeSidePanel = useSidePanel((state) => state.closeSidePanel); const closeSidePanel = useSidePanel((state) => state.closeSidePanel);
const [entities, setEntities] = useState<EntityRowType[]>([]); const [entities, setEntities] = useState<EntityRowType[]>([]);
@ -80,7 +80,7 @@ export const AddTableEntityPanel: FunctionComponent<AddTableEntityPanelProps> =
}, []); }, []);
const getDefaultEntitiesAttribute = async (): Promise<void> => { const getDefaultEntitiesAttribute = async (): Promise<void> => {
let headers = tableEntityListViewModel.headers?.length > 1 ? tableEntityListViewModel.headers : headerItem; let headers = tableEntityListViewModel.headers?.length > 1 ? tableEntityListViewModel.headers : headerItems;
if (DataTableUtilities.checkForDefaultHeader(headers)) { if (DataTableUtilities.checkForDefaultHeader(headers)) {
headers = []; headers = [];
if (userContext.apiType === "Tables") { if (userContext.apiType === "Tables") {

View File

@ -70,6 +70,7 @@ export interface IQueryTablesTabComponentStates {
currentStartIndex: number; currentStartIndex: number;
fromDocument: number; fromDocument: number;
toDocument: number; toDocument: number;
selectedItem: number;
} }
export interface IQueryTableRowsType { export interface IQueryTableRowsType {

View File

@ -10,7 +10,7 @@ import {
SelectionMode, SelectionMode,
Spinner, Spinner,
SpinnerSize, SpinnerSize,
Text Text,
} from "@fluentui/react"; } from "@fluentui/react";
import * as ko from "knockout"; import * as ko from "knockout";
import React, { Component } from "react"; import React, { Component } from "react";
@ -54,7 +54,7 @@ import {
IDocument, IDocument,
IQueryTableRowsType, IQueryTableRowsType,
IQueryTablesTabComponentProps, IQueryTablesTabComponentProps,
IQueryTablesTabComponentStates IQueryTablesTabComponentStates,
} from "./QueryTableTabUtils"; } from "./QueryTableTabUtils";
export interface Button { export interface Button {
@ -114,8 +114,8 @@ class QueryTablesTabComponent extends Component<IQueryTablesTabComponentProps, I
selectedQueryText: selectedQueryText:
userContext.apiType === "Cassandra" userContext.apiType === "Cassandra"
? `SELECT * FROM ${getQuotedCqlIdentifier( ? `SELECT * FROM ${getQuotedCqlIdentifier(
this.props.queryTablesTab.collection.databaseId this.props.queryTablesTab.collection.databaseId
)}.${getQuotedCqlIdentifier(this.props.queryTablesTab.collection.id())}` )}.${getQuotedCqlIdentifier(this.props.queryTablesTab.collection.id())}`
: "Select * from c", : "Select * from c",
isHelperActive: true, isHelperActive: true,
executeQueryButton: { executeQueryButton: {
@ -172,6 +172,7 @@ class QueryTablesTabComponent extends Component<IQueryTablesTabComponentProps, I
currentStartIndex: PAGESIZE, currentStartIndex: PAGESIZE,
fromDocument: 0, fromDocument: 0,
toDocument: PAGESIZE, toDocument: PAGESIZE,
selectedItem: 0,
}; };
this.state.tableEntityListViewModel.queryTablesTab = this.props.queryTablesTab; this.state.tableEntityListViewModel.queryTablesTab = this.props.queryTablesTab;
@ -224,6 +225,7 @@ class QueryTablesTabComponent extends Component<IQueryTablesTabComponentProps, I
let selectedItems: Entities.ITableEntity[]; let selectedItems: Entities.ITableEntity[];
const { selection } = this.state; const { selection } = this.state;
isFirstItemSelected && selection.setIndexSelected(0, true, false); isFirstItemSelected && selection.setIndexSelected(0, true, false);
this.setState({ selectedItem: selection.getSelectedIndices()?.[0] });
if (selection.getSelection().length > 0) { if (selection.getSelection().length > 0) {
Object.keys(this.state.selection.getSelection()[0]).map((key, index) => { Object.keys(this.state.selection.getSelection()[0]).map((key, index) => {
if (key === documentKey) { if (key === documentKey) {
@ -309,12 +311,15 @@ class QueryTablesTabComponent extends Component<IQueryTablesTabComponentProps, I
} else { } else {
const { collection } = this.props; const { collection } = this.props;
documents = await this.getDocuments(collection, selectedQueryText); documents = await this.getDocuments(collection, selectedQueryText);
headers = documents.Results?.length ? this.getFormattedHeaders(documents.Results) : ["RowKey", "PartitionKey", "Timestamp"]; headers = documents.Results?.length
? this.getFormattedHeaders(documents.Results)
: ["RowKey", "PartitionKey", "Timestamp"];
this.setupIntialEntities(documents.Results, headers, isInitialLoad); this.setupIntialEntities(documents.Results, headers, isInitialLoad);
} }
this.setState({ this.setState({
queryErrorMessage: "", queryErrorMessage: "",
hasQueryError: false, hasQueryError: false,
isLoading: false,
}); });
} catch (error) { } catch (error) {
if (error.responseText) { if (error.responseText) {
@ -464,6 +469,9 @@ class QueryTablesTabComponent extends Component<IQueryTablesTabComponentProps, I
this.setState({ this.setState({
isLoading: true, isLoading: true,
}); });
const { selection, selectedItem } = this.state;
selection.setIndexSelected(selectedItem, false, false);
this.loadEntities(false); this.loadEntities(false);
} }
@ -473,7 +481,7 @@ class QueryTablesTabComponent extends Component<IQueryTablesTabComponentProps, I
.openSidePanel( .openSidePanel(
"Add Table Entity", "Add Table Entity",
<AddTableEntityPanel <AddTableEntityPanel
headerItem={this.state.headers} headerItems={this.state.headers}
tableDataClient={this.tableDataClient} tableDataClient={this.tableDataClient}
queryTablesTab={this.props.queryTablesTab} queryTablesTab={this.props.queryTablesTab}
tableEntityListViewModel={this.state.tableEntityListViewModel} tableEntityListViewModel={this.state.tableEntityListViewModel}