mirror of
https://github.com/mattermost/mattermost.git
synced 2025-02-25 18:55:24 -06:00
[MM-23413] : Migrate "components/list_modal.test.jsx" to Typescript (#23655)
This commit is contained in:
parent
c1eb9c01ab
commit
fece5d5dd2
@ -41,7 +41,7 @@ exports[`components/ListModal should match snapshot 1`] = `
|
|||||||
<span
|
<span
|
||||||
className="name"
|
className="name"
|
||||||
>
|
>
|
||||||
foo list modal
|
list modal
|
||||||
</span>
|
</span>
|
||||||
</ModalTitle>
|
</ModalTitle>
|
||||||
</ModalHeader>
|
</ModalHeader>
|
||||||
@ -62,13 +62,13 @@ exports[`components/ListModal should match snapshot 1`] = `
|
|||||||
className="hidden-label"
|
className="hidden-label"
|
||||||
htmlFor="searchUsersInput"
|
htmlFor="searchUsersInput"
|
||||||
>
|
>
|
||||||
search for foos
|
search for name
|
||||||
</label>
|
</label>
|
||||||
<input
|
<input
|
||||||
className="form-control filter-textbox"
|
className="form-control filter-textbox"
|
||||||
id="searchUsersInput"
|
id="searchUsersInput"
|
||||||
onChange={[Function]}
|
onChange={[Function]}
|
||||||
placeholder="search for foos"
|
placeholder="search for name"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div
|
||||||
@ -153,7 +153,7 @@ exports[`components/ListModal should match snapshot with title bar button 1`] =
|
|||||||
<span
|
<span
|
||||||
className="name"
|
className="name"
|
||||||
>
|
>
|
||||||
foo list modal
|
list modal
|
||||||
</span>
|
</span>
|
||||||
</ModalTitle>
|
</ModalTitle>
|
||||||
</ModalHeader>
|
</ModalHeader>
|
||||||
@ -174,13 +174,13 @@ exports[`components/ListModal should match snapshot with title bar button 1`] =
|
|||||||
className="hidden-label"
|
className="hidden-label"
|
||||||
htmlFor="searchUsersInput"
|
htmlFor="searchUsersInput"
|
||||||
>
|
>
|
||||||
search for foos
|
search for name
|
||||||
</label>
|
</label>
|
||||||
<input
|
<input
|
||||||
className="form-control filter-textbox"
|
className="form-control filter-textbox"
|
||||||
id="searchUsersInput"
|
id="searchUsersInput"
|
||||||
onChange={[Function]}
|
onChange={[Function]}
|
||||||
placeholder="search for foos"
|
placeholder="search for name"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div
|
@ -4,17 +4,22 @@
|
|||||||
import React from 'react';
|
import React from 'react';
|
||||||
import {shallow} from 'enzyme';
|
import {shallow} from 'enzyme';
|
||||||
|
|
||||||
import ListModal from './list_modal';
|
import ListModal, {DEFAULT_NUM_PER_PAGE} from './list_modal';
|
||||||
|
import {Group} from '@mattermost/types/groups';
|
||||||
|
import {TestHelper} from 'utils/test_helper';
|
||||||
|
|
||||||
describe('components/ListModal', () => {
|
describe('components/ListModal', () => {
|
||||||
const mockItems = [{id: '123', foo: 'bar31'}, {id: '234', foo: 'bar2'}];
|
const mockItem1 = TestHelper.getGroupMock({id: '123', name: 'bar31'});
|
||||||
const mockItemsPage2 = [{id: '123', foo: 'bar3'}];
|
const mockItem2 = TestHelper.getGroupMock({id: '234', name: 'bar2'});
|
||||||
|
const mockItem3 = TestHelper.getGroupMock({id: '345', name: 'bar3'});
|
||||||
|
const mockItems = [mockItem1, mockItem2];
|
||||||
|
const mockItemsPage2 = [mockItem3];
|
||||||
const mockSearchTerm = 'ar3';
|
const mockSearchTerm = 'ar3';
|
||||||
const mockItemsSearch = mockItems.concat(mockItemsPage2).filter((item) => item.foo.includes(mockSearchTerm));
|
const mockItemsSearch = mockItems.concat(mockItemsPage2).filter((item) => item.name.includes(mockSearchTerm));
|
||||||
const totalCount = mockItems.length + mockItemsPage2.length;
|
const totalCount = mockItems.length + mockItemsPage2.length;
|
||||||
|
|
||||||
const baseProps = {
|
const baseProps = {
|
||||||
loadItems: async (pageNumber, searchTerm) => {
|
loadItems: async (pageNumber: number, searchTerm: string) => {
|
||||||
if (searchTerm === mockSearchTerm) {
|
if (searchTerm === mockSearchTerm) {
|
||||||
return {items: mockItemsSearch, totalCount};
|
return {items: mockItemsSearch, totalCount};
|
||||||
}
|
}
|
||||||
@ -23,18 +28,21 @@ describe('components/ListModal', () => {
|
|||||||
}
|
}
|
||||||
return {items: mockItemsPage2, totalCount};
|
return {items: mockItemsPage2, totalCount};
|
||||||
},
|
},
|
||||||
renderRow: (item) => {
|
renderRow: (item: Group) => {
|
||||||
return (
|
return (
|
||||||
<div
|
<div
|
||||||
className='item'
|
className='item'
|
||||||
key={item.id}
|
key={item.id}
|
||||||
>
|
>
|
||||||
{item.foo}
|
{item.id}
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
titleText: 'foo list modal',
|
titleText: 'list modal',
|
||||||
searchPlaceholderText: 'search for foos',
|
searchPlaceholderText: 'search for name',
|
||||||
|
numPerPage: DEFAULT_NUM_PER_PAGE,
|
||||||
|
titleBarButtonText: 'DEFAULT',
|
||||||
|
titleBarButtonTextOnClick: () => {},
|
||||||
};
|
};
|
||||||
|
|
||||||
it('should match snapshot', () => {
|
it('should match snapshot', () => {
|
||||||
@ -45,7 +53,7 @@ describe('components/ListModal', () => {
|
|||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
expect(wrapper.state('items')).toEqual(mockItems);
|
expect(wrapper.state('items')).toEqual(mockItems);
|
||||||
expect(wrapper.state('totalCount')).toEqual(totalCount);
|
expect(wrapper.state('totalCount')).toEqual(totalCount);
|
||||||
expect(wrapper.state('numPerPage')).toEqual(ListModal.DEFAULT_NUM_PER_PAGE);
|
expect(wrapper.state('numPerPage')).toEqual(DEFAULT_NUM_PER_PAGE);
|
||||||
}, 0);
|
}, 0);
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -77,7 +85,7 @@ describe('components/ListModal', () => {
|
|||||||
const wrapper = shallow(
|
const wrapper = shallow(
|
||||||
<ListModal {...props}/>,
|
<ListModal {...props}/>,
|
||||||
);
|
);
|
||||||
wrapper.instance().handleExit();
|
(wrapper.instance() as ListModal).handleExit();
|
||||||
expect(onHide).toHaveBeenCalledTimes(1);
|
expect(onHide).toHaveBeenCalledTimes(1);
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -85,12 +93,12 @@ describe('components/ListModal', () => {
|
|||||||
const wrapper = shallow(
|
const wrapper = shallow(
|
||||||
<ListModal {...baseProps}/>,
|
<ListModal {...baseProps}/>,
|
||||||
);
|
);
|
||||||
wrapper.instance().onNext();
|
(wrapper.instance() as ListModal).onNext();
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
expect(wrapper.state('page')).toEqual(1);
|
expect(wrapper.state('page')).toEqual(1);
|
||||||
expect(wrapper.state('items')).toEqual(mockItemsPage2);
|
expect(wrapper.state('items')).toEqual(mockItemsPage2);
|
||||||
}, 0);
|
}, 0);
|
||||||
wrapper.instance().onPrev();
|
(wrapper.instance() as ListModal).onPrev();
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
expect(wrapper.state('page')).toEqual(0);
|
expect(wrapper.state('page')).toEqual(0);
|
||||||
expect(wrapper.state('items')).toEqual(mockItems);
|
expect(wrapper.state('items')).toEqual(mockItems);
|
||||||
@ -101,7 +109,7 @@ describe('components/ListModal', () => {
|
|||||||
const wrapper = shallow(
|
const wrapper = shallow(
|
||||||
<ListModal {...baseProps}/>,
|
<ListModal {...baseProps}/>,
|
||||||
);
|
);
|
||||||
wrapper.instance().onSearchInput({target: {value: mockSearchTerm}});
|
(wrapper.instance() as ListModal).onSearchInput({target: {value: mockSearchTerm}} as React.ChangeEvent<HTMLInputElement>);
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
expect(wrapper.state('searchTerm')).toEqual(mockSearchTerm);
|
expect(wrapper.state('searchTerm')).toEqual(mockSearchTerm);
|
||||||
expect(wrapper.state('items')).toEqual(mockItemsSearch);
|
expect(wrapper.state('items')).toEqual(mockItemsSearch);
|
Loading…
Reference in New Issue
Block a user