mirror of
https://github.com/Azure/cosmos-explorer.git
synced 2025-12-19 17:01:13 +00:00
* add Materialized Views feature flag * fetch MV properties from RP API and capture them in our data models * AddMaterializedViewPanel * undefined check * subpartition keys * Partition Key, Throughput, Unique Keys * All views associated with a container (#2063) and Materialized View Target Container (#2065) Identified Source container and Target container Created tabs in Scale and Settings respectively Changed the Icon of target container * Add MV Panel * format * format * styling * add tests * tests * test files (#2074) Co-authored-by: nishthaAhujaa * fix type error * fix tests * merge conflict * Panel Integration (#2075) * integrated panel * edited header text --------- Co-authored-by: nishthaAhujaa <nishtha17354@iiittd.ac.in> Co-authored-by: Asier Isayas <aisayas@microsoft.com> * updated tests (#2077) Co-authored-by: nishthaAhujaa * fix tests * update treeNodeUtil test snap * update settings component test snap * fixed source container in global "New Materialized View" * source container check (#2079) Co-authored-by: nishthaAhujaa * renamed Materialized Views to Global Secondary Index * more renaming * fix import * fix typo * disable materialized views for Fabric * updated input validation --------- Co-authored-by: Asier Isayas <aisayas@microsoft.com> Co-authored-by: Nishtha Ahuja <45535788+nishthaAhujaa@users.noreply.github.com> Co-authored-by: nishthaAhujaa <nishtha17354@iiittd.ac.in>
47 lines
2.1 KiB
TypeScript
47 lines
2.1 KiB
TypeScript
import { shallow } from "enzyme";
|
|
import React from "react";
|
|
import { collection, container } from "../TestUtils";
|
|
import { GlobalSecondaryIndexComponent } from "./GlobalSecondaryIndexComponent";
|
|
import { GlobalSecondaryIndexSourceComponent } from "./GlobalSecondaryIndexSourceComponent";
|
|
import { GlobalSecondaryIndexTargetComponent } from "./GlobalSecondaryIndexTargetComponent";
|
|
|
|
describe("GlobalSecondaryIndexComponent", () => {
|
|
let testCollection: typeof collection;
|
|
let testExplorer: typeof container;
|
|
|
|
beforeEach(() => {
|
|
testCollection = { ...collection };
|
|
});
|
|
|
|
it("renders only the source component when materializedViewDefinition is missing", () => {
|
|
testCollection.materializedViews([
|
|
{ id: "view1", _rid: "rid1" },
|
|
{ id: "view2", _rid: "rid2" },
|
|
]);
|
|
testCollection.materializedViewDefinition(null);
|
|
const wrapper = shallow(<GlobalSecondaryIndexComponent collection={testCollection} explorer={testExplorer} />);
|
|
expect(wrapper.find(GlobalSecondaryIndexSourceComponent).exists()).toBe(true);
|
|
expect(wrapper.find(GlobalSecondaryIndexTargetComponent).exists()).toBe(false);
|
|
});
|
|
|
|
it("renders only the target component when materializedViews is missing", () => {
|
|
testCollection.materializedViews(null);
|
|
testCollection.materializedViewDefinition({
|
|
definition: "SELECT * FROM c WHERE c.id = 1",
|
|
sourceCollectionId: "source1",
|
|
sourceCollectionRid: "rid123",
|
|
});
|
|
const wrapper = shallow(<GlobalSecondaryIndexComponent collection={testCollection} explorer={testExplorer} />);
|
|
expect(wrapper.find(GlobalSecondaryIndexSourceComponent).exists()).toBe(false);
|
|
expect(wrapper.find(GlobalSecondaryIndexTargetComponent).exists()).toBe(true);
|
|
});
|
|
|
|
it("renders neither component when both are missing", () => {
|
|
testCollection.materializedViews(null);
|
|
testCollection.materializedViewDefinition(null);
|
|
const wrapper = shallow(<GlobalSecondaryIndexComponent collection={testCollection} explorer={testExplorer} />);
|
|
expect(wrapper.find(GlobalSecondaryIndexSourceComponent).exists()).toBe(false);
|
|
expect(wrapper.find(GlobalSecondaryIndexTargetComponent).exists()).toBe(false);
|
|
});
|
|
});
|