From 04b9994cac5c5870d45e228dfc935134d4d95d3e Mon Sep 17 00:00:00 2001 From: Aritra Roy Date: Thu, 12 Dec 2019 19:20:44 +0530 Subject: [PATCH] feat(topology filter): added filter for knative event sources --- .../topology/__tests__/topology-utils.spec.ts | 43 ++++++++++++++++--- .../src/components/topology/topology-utils.ts | 3 +- 2 files changed, 40 insertions(+), 6 deletions(-) diff --git a/frontend/packages/dev-console/src/components/topology/__tests__/topology-utils.spec.ts b/frontend/packages/dev-console/src/components/topology/__tests__/topology-utils.spec.ts index b4ab9a2822e..b5c82dc45d8 100644 --- a/frontend/packages/dev-console/src/components/topology/__tests__/topology-utils.spec.ts +++ b/frontend/packages/dev-console/src/components/topology/__tests__/topology-utils.spec.ts @@ -15,6 +15,8 @@ import { getTopologyResourceObject, createTopologyResourceConnection, } from '../topology-utils'; +import { DEFAULT_TOPOLOGY_FILTERS } from '../redux/const'; +import { TopologyFilters } from '../filters/filter-utils'; import { resources, topologyData, @@ -30,12 +32,16 @@ export function getTranformedTopologyData( mockData: TopologyDataResources, transformByProp: string[], mockCheURL?: string, + filters?: TopologyFilters, ) { - const result = transformTopologyData(mockData, transformByProp, undefined, mockCheURL, [ - getKnativeServingRevisions, - getKnativeServingConfigurations, - getKnativeServingRoutes, - ]); + const result = transformTopologyData( + mockData, + transformByProp, + undefined, + mockCheURL, + [getKnativeServingRevisions, getKnativeServingConfigurations, getKnativeServingRoutes], + filters, + ); const topologyTransformedData = result.topology; const graphData = result.graph; return { topologyTransformedData, graphData, keys: Object.keys(topologyTransformedData) }; @@ -266,6 +272,33 @@ describe('TopologyUtils ', () => { ]); expect((topologyTransformedData[keys[2]].data as WorkloadData).builderImage).toBe(csvIcon); }); + + it('should not render event sources if corresponding filter returns false', () => { + const eventFilter: TopologyFilters = _.set( + _.cloneDeep(DEFAULT_TOPOLOGY_FILTERS), + 'display.eventSources', + false, + ); + const { topologyTransformedData } = getTranformedTopologyData( + MockKnativeResources, + [], + '', + eventFilter, + ); + expect(topologyTransformedData['1317f615-9636-11e9-b134-06a61d886b689']).toBe(undefined); + }); + it('should render event sources if corresponding filter returns true', () => { + const eventFilter: TopologyFilters = _.cloneDeep(DEFAULT_TOPOLOGY_FILTERS); + const { topologyTransformedData } = getTranformedTopologyData( + MockKnativeResources, + [], + '', + eventFilter, + ); + expect(topologyTransformedData['1317f615-9636-11e9-b134-06a61d886b689'].type).toBe( + 'event-source', + ); + }); }); describe('Topology Utils', () => { diff --git a/frontend/packages/dev-console/src/components/topology/topology-utils.ts b/frontend/packages/dev-console/src/components/topology/topology-utils.ts index 869a2add8c8..f5a09c50eba 100644 --- a/frontend/packages/dev-console/src/components/topology/topology-utils.ts +++ b/frontend/packages/dev-console/src/components/topology/topology-utils.ts @@ -387,7 +387,8 @@ export const transformTopologyData = ( const knSvcResources: K8sResourceKind[] = _.get(resources, ['ksservices', 'data'], []); knSvcResources.length && getKnativeTopologyData(knSvcResources, NodeType.KnService); - const knEventSources: K8sResourceKind[] = getKnativeEventSources(); + const knEventSources: K8sResourceKind[] = + filters && filters.display.eventSources ? getKnativeEventSources() : []; knEventSources.length && getKnativeTopologyData(knEventSources, NodeType.EventSource); const knRevResources: K8sResourceKind[] = _.get(resources, ['revisions', 'data'], []); knRevResources.length && getKnativeTopologyData(knRevResources, NodeType.Revision);