Skip to content

Commit

Permalink
fix types
Browse files Browse the repository at this point in the history
  • Loading branch information
patrykkopycinski committed Sep 15, 2020
1 parent ed72277 commit 5fdef3a
Show file tree
Hide file tree
Showing 12 changed files with 162 additions and 234 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,8 @@ export enum NetworkKpiQueries {
}

export type NetworkKpiStrategyResponse =
| NetworkKpiDnsStrategyResponse
| NetworkKpiNetworkEventsStrategyResponse
| NetworkKpiTlsHandshakesStrategyResponse
| NetworkKpiUniqueFlowsStrategyResponse
| NetworkKpiUniquePrivateIpsStrategyResponse;
| Omit<NetworkKpiDnsStrategyResponse, 'rawResponse'>
| Omit<NetworkKpiNetworkEventsStrategyResponse, 'rawResponse'>
| Omit<NetworkKpiTlsHandshakesStrategyResponse, 'rawResponse'>
| Omit<NetworkKpiUniqueFlowsStrategyResponse, 'rawResponse'>
| Omit<NetworkKpiUniquePrivateIpsStrategyResponse, 'rawResponse'>;
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ import {
import { BarChart } from '../charts/barchart';
import { AreaChart } from '../charts/areachart';
import { EuiHorizontalRule } from '@elastic/eui';
import { fieldTitleChartMapping } from '../../../network/components/kpi_network';
import { fieldsMapping as fieldTitleChartMapping } from '../../../network/components/kpi_network/unique_private_ips';
import {
mockData,
mockEnableChartsData,
Expand All @@ -39,7 +39,8 @@ import {
} from '../../mock';
import { State, createStore } from '../../store';
import { Provider as ReduxStoreProvider } from 'react-redux';
import { KpiNetworkData, KpiHostsData } from '../../../graphql/types';
import { KpiHostsData } from '../../../graphql/types';
import { NetworkKpiStrategyResponse } from '../../../../common/search_strategy';

const from = '2019-06-15T06:00:00.000Z';
const to = '2019-06-18T06:00:00.000Z';
Expand Down Expand Up @@ -74,7 +75,6 @@ describe('Stat Items Component', () => {
fields={[{ key: 'hosts', value: null, color: '#6092C0', icon: 'cross' }]}
from={from}
id="statItems"
index={0}
key="mock-keys"
to={to}
narrowDateRange={mockNarrowDateRange}
Expand All @@ -94,7 +94,6 @@ describe('Stat Items Component', () => {
fields={[{ key: 'hosts', value: null, color: '#6092C0', icon: 'cross' }]}
from={from}
id="statItems"
index={0}
key="mock-keys"
to={to}
narrowDateRange={mockNarrowDateRange}
Expand Down Expand Up @@ -176,7 +175,6 @@ describe('Stat Items Component', () => {
],
from,
id: 'statItems',
index: 0,
key: 'mock-keys',
to,
narrowDateRange: mockNarrowDateRange,
Expand Down Expand Up @@ -214,41 +212,37 @@ describe('Stat Items Component', () => {

describe('addValueToFields', () => {
const mockNetworkMappings = fieldTitleChartMapping[0];
const mockKpiNetworkData = mockData.KpiNetwork;
test('should update value from data', () => {
const result = addValueToFields(mockNetworkMappings.fields, mockKpiNetworkData);
const result = addValueToFields(mockNetworkMappings.fields, mockData);
expect(result).toEqual(mockEnableChartsData.fields);
});
});

describe('addValueToAreaChart', () => {
const mockNetworkMappings = fieldTitleChartMapping[0];
const mockKpiNetworkData = mockData.KpiNetwork;
test('should add areaChart from data', () => {
const result = addValueToAreaChart(mockNetworkMappings.fields, mockKpiNetworkData);
const result = addValueToAreaChart(mockNetworkMappings.fields, mockData);
expect(result).toEqual(mockEnableChartsData.areaChart);
});
});

describe('addValueToBarChart', () => {
const mockNetworkMappings = fieldTitleChartMapping[0];
const mockKpiNetworkData = mockData.KpiNetwork;
test('should add areaChart from data', () => {
const result = addValueToBarChart(mockNetworkMappings.fields, mockKpiNetworkData);
const result = addValueToBarChart(mockNetworkMappings.fields, mockData);
expect(result).toEqual(mockEnableChartsData.barChart);
});
});

describe('useKpiMatrixStatus', () => {
const mockNetworkMappings = fieldTitleChartMapping;
const mockKpiNetworkData = mockData.KpiNetwork;
const MockChildComponent = (mappedStatItemProps: StatItemsProps) => <span />;
const MockHookWrapperComponent = ({
fieldsMapping,
data,
}: {
fieldsMapping: Readonly<StatItems[]>;
data: KpiNetworkData | KpiHostsData;
data: NetworkKpiStrategyResponse | KpiHostsData;
}) => {
const statItemsProps: StatItemsProps[] = useKpiMatrixStatus(
fieldsMapping,
Expand All @@ -271,7 +265,7 @@ describe('useKpiMatrixStatus', () => {
test('it updates status correctly', () => {
const wrapper = mount(
<>
<MockHookWrapperComponent fieldsMapping={mockNetworkMappings} data={mockKpiNetworkData} />
<MockHookWrapperComponent fieldsMapping={mockNetworkMappings} data={mockData} />
</>
);

Expand All @@ -281,7 +275,7 @@ describe('useKpiMatrixStatus', () => {
test('it should not append areaChart if enableAreaChart is off', () => {
const wrapper = mount(
<>
<MockHookWrapperComponent fieldsMapping={mockNoChartMappings} data={mockKpiNetworkData} />
<MockHookWrapperComponent fieldsMapping={mockNoChartMappings} data={mockData} />
</>
);

Expand All @@ -291,7 +285,7 @@ describe('useKpiMatrixStatus', () => {
test('it should not append barChart if enableBarChart is off', () => {
const wrapper = mount(
<>
<MockHookWrapperComponent fieldsMapping={mockNoChartMappings} data={mockKpiNetworkData} />
<MockHookWrapperComponent fieldsMapping={mockNoChartMappings} data={mockData} />
</>
);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,8 @@ import { get, getOr } from 'lodash/fp';
import React, { useState, useEffect } from 'react';
import styled from 'styled-components';

import { KpiHostsData, KpiNetworkData } from '../../../graphql/types';
import { NetworkKpiStrategyResponse } from '../../../../common/search_strategy';
import { KpiHostsData } from '../../../graphql/types';
import { AreaChart } from '../charts/areachart';
import { BarChart } from '../charts/barchart';
import { ChartSeriesData, ChartData, ChartSeriesConfigs, UpdateDateRange } from '../charts/common';
Expand Down Expand Up @@ -57,6 +58,8 @@ export interface StatItems {
enableAreaChart?: boolean;
enableBarChart?: boolean;
fields: StatItem[];
grow?: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | true | false | null;
index?: number;
key: string;
statKey?: string;
}
Expand Down Expand Up @@ -110,12 +113,12 @@ export const barchartConfigs = (config?: { onElementClick?: ElementClickListener

export const addValueToFields = (
fields: StatItem[],
data: KpiHostsData | KpiNetworkData
data: KpiHostsData | NetworkKpiStrategyResponse
): StatItem[] => fields.map((field) => ({ ...field, value: get(field.key, data) }));

export const addValueToAreaChart = (
fields: StatItem[],
data: KpiHostsData | KpiNetworkData
data: KpiHostsData | NetworkKpiStrategyResponse
): ChartSeriesData[] =>
fields
.filter((field) => get(`${field.key}Histogram`, data) != null)
Expand All @@ -127,7 +130,7 @@ export const addValueToAreaChart = (

export const addValueToBarChart = (
fields: StatItem[],
data: KpiHostsData | KpiNetworkData
data: KpiHostsData | NetworkKpiStrategyResponse
): ChartSeriesData[] => {
if (fields.length === 0) return [];
return fields.reduce((acc: ChartSeriesData[], field: StatItem, idx: number) => {
Expand Down Expand Up @@ -156,7 +159,7 @@ export const addValueToBarChart = (

export const useKpiMatrixStatus = (
mappings: Readonly<StatItems[]>,
data: KpiHostsData | KpiNetworkData,
data: KpiHostsData | NetworkKpiStrategyResponse,
id: string,
from: string,
to: string,
Expand Down

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,19 @@ import { KpiNetworkBaseComponentManage } from '../common';
import { NetworkKpiProps } from '../types';
import * as i18n from './translations';

export const fieldsMapping: Readonly<StatItems[]> = [
{
key: 'dnsQueries',
fields: [
{
key: 'dnsQueries',
value: null,
},
],
description: i18n.DNS_QUERIES,
},
];

const NetworkKpiDnsComponent: React.FC<NetworkKpiProps> = ({
filterQuery,
from,
Expand All @@ -20,18 +33,6 @@ const NetworkKpiDnsComponent: React.FC<NetworkKpiProps> = ({
setQuery,
skip,
}) => {
const fieldsMapping: Readonly<StatItems[]> = [
{
key: 'dnsQueries',
fields: [
{
key: 'dnsQueries',
value: null,
},
],
description: i18n.DNS_QUERIES,
},
];
const [loading, { refetch, id, inspect, ...data }] = useNetworkKpiDns({
filterQuery,
endDate: to,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,13 +18,17 @@ import {
import '../../../common/mock/match_media';
import { createStore, State } from '../../../common/store';
import { KpiNetworkComponent } from '.';
import { mockData } from './mock';

describe('KpiNetwork Component', () => {
const state: State = mockGlobalState;
const from = '2019-06-15T06:00:00.000Z';
const to = '2019-06-18T06:00:00.000Z';
const narrowDateRange = jest.fn();
const props = {
from: '2019-06-15T06:00:00.000Z',
to: '2019-06-18T06:00:00.000Z',
narrowDateRange: jest.fn(),
filterQuery: '',
setQuery: jest.fn(),
skip: true,
};

const { storage } = createSecuritySolutionStorageMock();
let store = createStore(
Expand All @@ -46,34 +50,10 @@ describe('KpiNetwork Component', () => {
});

describe('rendering', () => {
test('it renders loading icons', () => {
const wrapper = shallow(
<ReduxStoreProvider store={store}>
<KpiNetworkComponent
data={mockData.KpiNetwork}
from={from}
id="kpiNetwork"
loading={true}
to={to}
narrowDateRange={narrowDateRange}
/>
</ReduxStoreProvider>
);

expect(wrapper.find('KpiNetworkComponent')).toMatchSnapshot();
});

test('it renders the default widget', () => {
const wrapper = shallow(
<ReduxStoreProvider store={store}>
<KpiNetworkComponent
data={mockData.KpiNetwork}
from={from}
id="kpiNetwork"
loading={false}
to={to}
narrowDateRange={narrowDateRange}
/>
<KpiNetworkComponent {...props} />
</ReduxStoreProvider>
);

Expand Down
Loading

0 comments on commit 5fdef3a

Please sign in to comment.