test: Tests audit for the Dashboard FilterBar (#13916)

* Add FilterBar tests

* Finalize FilterBar tests

* Add tests for FilterBar Header

* Add tests for FilterBar FilterConfigurationLink

* Add tests for FilterBar FilterSets EditSection

* Add tests for FilterBar FilterSets

* Clean up

* Add tests for FilterBar FilterSetUnit

* Add tests for FilterBar FilterSets FiltersHeader

* Add tests for FilterBar FilterSets Footer

* Fix linting

* Fix import

* Fix minor changes

* Fix import

* Add factory and clean up
This commit is contained in:
Geido
2021-04-13 09:28:19 +03:00
committed by GitHub
parent 80da1ca995
commit 11869dc076
19 changed files with 692 additions and 102 deletions

View File

@@ -1,50 +0,0 @@
/**
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
import React from 'react';
import { styledMount as mount } from 'spec/helpers/theming';
import { Provider } from 'react-redux';
import FilterBar from 'src/dashboard/components/nativeFilters/FilterBar/FilterBar';
import Button from 'src/components/Button';
import { mockStore } from 'spec/fixtures/mockStore';
describe('FilterBar', () => {
const props = {
filtersOpen: false,
toggleFiltersBar: jest.fn(),
};
const wrapper = mount(
<Provider store={mockStore}>
<FilterBar {...props} />
</Provider>,
);
it('is a valid', () => {
expect(React.isValidElement(<FilterBar {...props} />)).toBe(true);
});
it('has filter and collapse icons', () => {
expect(wrapper.find({ name: 'filter' })).toExist();
expect(wrapper.find({ name: 'collapse' })).toExist();
});
it('has apply and clear all buttons', () => {
expect(wrapper.find(Button).length).toBe(2);
expect(wrapper.find(Button).at(0)).toHaveProp('buttonStyle', 'tertiary');
expect(wrapper.find(Button).at(1)).toHaveProp('buttonStyle', 'primary');
});
});

View File

@@ -1,45 +0,0 @@
/**
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
import React from 'react';
import { styledMount as mount } from 'spec/helpers/theming';
import { Provider } from 'react-redux';
import FilterConfigurationLink from 'src/dashboard/components/nativeFilters/FilterBar/FilterConfigurationLink';
import { mockStore } from 'spec/fixtures/mockStore';
describe('FilterConfigurationButton', () => {
const mockedProps = {
createNewOnOpen: false,
};
it('is valid', () => {
expect(
React.isValidElement(<FilterConfigurationLink {...mockedProps} />),
).toBe(true);
});
it('takes in children', () => {
const wrapper = mount(
<Provider store={mockStore}>
<FilterConfigurationLink {...mockedProps}>
{' '}
<span>Test</span>
</FilterConfigurationLink>
</Provider>,
);
expect(wrapper.find('span')).toHaveLength(1);
});
});

View File

@@ -19,8 +19,28 @@
import { DataMaskStateWithId, DataMaskType } from 'src/dataMask/types';
import { NativeFiltersState } from 'src/dashboard/reducers/types';
export const mockDataMaskInfo: DataMaskStateWithId = {
[DataMaskType.CrossFilters]: {},
[DataMaskType.OwnFilters]: {},
[DataMaskType.NativeFilters]: {
DefaultsID: {
id: 'DefaultId',
currentState: {
value: [],
},
},
},
};
export const nativeFiltersInfo: NativeFiltersState = {
filterSets: {},
filterSets: {
'set-id': {
id: 'DefaultsID',
name: 'Set name',
nativeFilters: {},
dataMask: mockDataMaskInfo,
},
},
filters: {
DefaultsID: {
cascadeParentIds: [],
@@ -49,16 +69,3 @@ export const nativeFiltersInfo: NativeFiltersState = {
},
},
};
export const mockDataMaskInfo: DataMaskStateWithId = {
[DataMaskType.CrossFilters]: {},
[DataMaskType.OwnFilters]: {},
[DataMaskType.NativeFilters]: {
DefaultsID: {
id: 'DefaultId',
currentState: {
value: [],
},
},
},
};