Update unit test
parent
2f4c7ed216
commit
11fd11091e
|
@ -5,7 +5,7 @@ import React, {Component} from 'react'
|
||||||
import {ErrorHandling} from 'src/shared/decorators/errors'
|
import {ErrorHandling} from 'src/shared/decorators/errors'
|
||||||
|
|
||||||
interface Props {
|
interface Props {
|
||||||
children: JSX.Element[] | JSX.Element
|
children?: JSX.Element[] | JSX.Element
|
||||||
emptyState: JSX.Element
|
emptyState: JSX.Element
|
||||||
columnCount: number
|
columnCount: number
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,96 +1,71 @@
|
||||||
import React from 'react'
|
import React from 'react'
|
||||||
import {mount} from 'enzyme'
|
import {mount} from 'enzyme'
|
||||||
|
|
||||||
import {Alignment} from 'src/clockface'
|
|
||||||
import IndexList from 'src/shared/components/index_views/IndexList'
|
import IndexList from 'src/shared/components/index_views/IndexList'
|
||||||
|
|
||||||
describe('IndexList', () => {
|
describe('IndexList', () => {
|
||||||
let wrapper
|
let wrapper
|
||||||
|
|
||||||
const wrapperSetup = (override = {}) => {
|
const wrapperSetup = (empty: boolean) => {
|
||||||
const emptyState = <div>Empty</div>
|
const emptyState = <div>Empty</div>
|
||||||
|
|
||||||
const columns = [
|
const header = (
|
||||||
{
|
<IndexList.Header key="index-header">
|
||||||
key: 'test--fruit',
|
<IndexList.HeaderCell columnName="Fruit" width="50%" />
|
||||||
size: 500,
|
<IndexList.HeaderCell columnName="Calories" width="50%" />
|
||||||
title: 'Fruit',
|
</IndexList.Header>
|
||||||
align: Alignment.Left,
|
)
|
||||||
showOnHover: false,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
key: 'test--calories',
|
|
||||||
size: 500,
|
|
||||||
title: 'Calories',
|
|
||||||
align: Alignment.Left,
|
|
||||||
showOnHover: false,
|
|
||||||
},
|
|
||||||
]
|
|
||||||
|
|
||||||
const rows = [
|
const body = (
|
||||||
{
|
<IndexList.Body key="index-body" columnCount={2} emptyState={emptyState}>
|
||||||
disabled: false,
|
<IndexList.Row>
|
||||||
columns: [
|
<IndexList.Cell>Apple</IndexList.Cell>
|
||||||
{
|
<IndexList.Cell>500</IndexList.Cell>
|
||||||
key: 'test--fruit',
|
</IndexList.Row>
|
||||||
contents: 'Apple',
|
<IndexList.Row>
|
||||||
},
|
<IndexList.Cell>Pear</IndexList.Cell>
|
||||||
{
|
<IndexList.Cell>1000</IndexList.Cell>
|
||||||
key: 'test--calories',
|
</IndexList.Row>
|
||||||
contents: '500',
|
<IndexList.Row>
|
||||||
},
|
<IndexList.Cell>Banana</IndexList.Cell>
|
||||||
],
|
<IndexList.Cell>100</IndexList.Cell>
|
||||||
},
|
</IndexList.Row>
|
||||||
{
|
</IndexList.Body>
|
||||||
disabled: false,
|
)
|
||||||
columns: [
|
|
||||||
{
|
const emptyBody = (
|
||||||
key: 'test--fruit',
|
<IndexList.Body
|
||||||
contents: 'Pear',
|
key="index-body"
|
||||||
},
|
columnCount={2}
|
||||||
{
|
emptyState={emptyState}
|
||||||
key: 'test--calories',
|
/>
|
||||||
contents: '1000',
|
)
|
||||||
},
|
|
||||||
],
|
let children = [header, body]
|
||||||
},
|
|
||||||
{
|
if (empty) {
|
||||||
disabled: false,
|
children = [header, emptyBody]
|
||||||
columns: [
|
}
|
||||||
{
|
|
||||||
key: 'test--fruit',
|
|
||||||
contents: 'Banana',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
key: 'test--calories',
|
|
||||||
contents: '200',
|
|
||||||
},
|
|
||||||
],
|
|
||||||
},
|
|
||||||
]
|
|
||||||
|
|
||||||
const props = {
|
const props = {
|
||||||
columns,
|
children,
|
||||||
rows,
|
|
||||||
emptyState,
|
|
||||||
...override,
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return mount(<IndexList {...props} />)
|
return mount(<IndexList {...props} />)
|
||||||
}
|
}
|
||||||
|
|
||||||
it('mounts without exploding', () => {
|
it('mounts without exploding', () => {
|
||||||
wrapper = wrapperSetup()
|
wrapper = wrapperSetup(false)
|
||||||
expect(wrapper).toHaveLength(1)
|
expect(wrapper).toHaveLength(1)
|
||||||
})
|
})
|
||||||
|
|
||||||
it('matches snapshot with minimal props', () => {
|
it('matches snapshot with minimal props', () => {
|
||||||
wrapper = wrapperSetup()
|
wrapper = wrapperSetup(false)
|
||||||
expect(wrapper).toMatchSnapshot()
|
expect(wrapper).toMatchSnapshot()
|
||||||
})
|
})
|
||||||
|
|
||||||
it('renders empty state when 0 rows exist', () => {
|
it('renders empty state when 0 rows exist', () => {
|
||||||
wrapper = wrapperSetup({rows: []})
|
wrapper = wrapperSetup(true)
|
||||||
|
|
||||||
const emptyDiv = wrapper
|
const emptyDiv = wrapper
|
||||||
.find('div')
|
.find('div')
|
||||||
|
@ -100,7 +75,7 @@ describe('IndexList', () => {
|
||||||
})
|
})
|
||||||
|
|
||||||
it('matches snapshot when 0 rows exist', () => {
|
it('matches snapshot when 0 rows exist', () => {
|
||||||
wrapper = wrapperSetup({rows: []})
|
wrapper = wrapperSetup(true)
|
||||||
expect(wrapper).toMatchSnapshot()
|
expect(wrapper).toMatchSnapshot()
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
|
@ -1,397 +1,255 @@
|
||||||
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
||||||
|
|
||||||
exports[`IndexList matches snapshot when 0 rows exist 1`] = `
|
exports[`IndexList matches snapshot when 0 rows exist 1`] = `
|
||||||
<IndexList
|
<IndexList>
|
||||||
columns={
|
|
||||||
Array [
|
|
||||||
Object {
|
|
||||||
"align": "left",
|
|
||||||
"key": "test--fruit",
|
|
||||||
"showOnHover": false,
|
|
||||||
"size": 500,
|
|
||||||
"title": "Fruit",
|
|
||||||
},
|
|
||||||
Object {
|
|
||||||
"align": "left",
|
|
||||||
"key": "test--calories",
|
|
||||||
"showOnHover": false,
|
|
||||||
"size": 500,
|
|
||||||
"title": "Calories",
|
|
||||||
},
|
|
||||||
]
|
|
||||||
}
|
|
||||||
emptyState={
|
|
||||||
<div>
|
|
||||||
Empty
|
|
||||||
</div>
|
|
||||||
}
|
|
||||||
rows={Array []}
|
|
||||||
>
|
|
||||||
<table
|
<table
|
||||||
className="index-list"
|
className="index-list"
|
||||||
>
|
>
|
||||||
<IndexListHeader
|
<IndexListHeader
|
||||||
columns={
|
key="index-header"
|
||||||
Array [
|
|
||||||
Object {
|
|
||||||
"align": "left",
|
|
||||||
"key": "test--fruit",
|
|
||||||
"showOnHover": false,
|
|
||||||
"size": 500,
|
|
||||||
"title": "Fruit",
|
|
||||||
},
|
|
||||||
Object {
|
|
||||||
"align": "left",
|
|
||||||
"key": "test--calories",
|
|
||||||
"showOnHover": false,
|
|
||||||
"size": 500,
|
|
||||||
"title": "Calories",
|
|
||||||
},
|
|
||||||
]
|
|
||||||
}
|
|
||||||
getColumnWidthPercent={[Function]}
|
|
||||||
>
|
>
|
||||||
<thead
|
<thead
|
||||||
className="index-list--header"
|
className="index-list--header"
|
||||||
>
|
>
|
||||||
<tr>
|
<tr>
|
||||||
<th
|
<IndexListHeaderCell
|
||||||
className="index-list--header-cell index-list--align-left"
|
alignment="left"
|
||||||
key="test--fruit"
|
columnName="Fruit"
|
||||||
style={
|
width="50%"
|
||||||
Object {
|
|
||||||
"width": "50%",
|
|
||||||
}
|
|
||||||
}
|
|
||||||
>
|
>
|
||||||
Fruit
|
<th
|
||||||
</th>
|
className="index-list--header-cell index-list--align-left"
|
||||||
<th
|
style={
|
||||||
className="index-list--header-cell index-list--align-left"
|
Object {
|
||||||
key="test--calories"
|
"width": "50%",
|
||||||
style={
|
}
|
||||||
Object {
|
|
||||||
"width": "50%",
|
|
||||||
}
|
}
|
||||||
}
|
>
|
||||||
|
Fruit
|
||||||
|
</th>
|
||||||
|
</IndexListHeaderCell>
|
||||||
|
<IndexListHeaderCell
|
||||||
|
alignment="left"
|
||||||
|
columnName="Calories"
|
||||||
|
width="50%"
|
||||||
>
|
>
|
||||||
Calories
|
<th
|
||||||
</th>
|
className="index-list--header-cell index-list--align-left"
|
||||||
|
style={
|
||||||
|
Object {
|
||||||
|
"width": "50%",
|
||||||
|
}
|
||||||
|
}
|
||||||
|
>
|
||||||
|
Calories
|
||||||
|
</th>
|
||||||
|
</IndexListHeaderCell>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
</IndexListHeader>
|
</IndexListHeader>
|
||||||
<tbody
|
<IndexListBody
|
||||||
className="index-list--empty"
|
columnCount={2}
|
||||||
|
emptyState={
|
||||||
|
<div>
|
||||||
|
Empty
|
||||||
|
</div>
|
||||||
|
}
|
||||||
|
key="index-body"
|
||||||
>
|
>
|
||||||
<tr
|
<tbody
|
||||||
className="index-list--empty-row"
|
className="index-list--empty"
|
||||||
>
|
>
|
||||||
<td
|
<tr
|
||||||
colSpan={2}
|
className="index-list--empty-row"
|
||||||
>
|
>
|
||||||
<div
|
<td
|
||||||
className="index-list--empty-cell"
|
colSpan={2}
|
||||||
data-test="empty-state"
|
|
||||||
>
|
>
|
||||||
<div>
|
<div
|
||||||
Empty
|
className="index-list--empty-cell"
|
||||||
|
data-test="empty-state"
|
||||||
|
>
|
||||||
|
<div>
|
||||||
|
Empty
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</td>
|
||||||
</td>
|
</tr>
|
||||||
</tr>
|
</tbody>
|
||||||
</tbody>
|
</IndexListBody>
|
||||||
</table>
|
</table>
|
||||||
</IndexList>
|
</IndexList>
|
||||||
`;
|
`;
|
||||||
|
|
||||||
exports[`IndexList matches snapshot with minimal props 1`] = `
|
exports[`IndexList matches snapshot with minimal props 1`] = `
|
||||||
<IndexList
|
<IndexList>
|
||||||
columns={
|
|
||||||
Array [
|
|
||||||
Object {
|
|
||||||
"align": "left",
|
|
||||||
"key": "test--fruit",
|
|
||||||
"showOnHover": false,
|
|
||||||
"size": 500,
|
|
||||||
"title": "Fruit",
|
|
||||||
},
|
|
||||||
Object {
|
|
||||||
"align": "left",
|
|
||||||
"key": "test--calories",
|
|
||||||
"showOnHover": false,
|
|
||||||
"size": 500,
|
|
||||||
"title": "Calories",
|
|
||||||
},
|
|
||||||
]
|
|
||||||
}
|
|
||||||
emptyState={
|
|
||||||
<div>
|
|
||||||
Empty
|
|
||||||
</div>
|
|
||||||
}
|
|
||||||
rows={
|
|
||||||
Array [
|
|
||||||
Object {
|
|
||||||
"columns": Array [
|
|
||||||
Object {
|
|
||||||
"contents": "Apple",
|
|
||||||
"key": "test--fruit",
|
|
||||||
},
|
|
||||||
Object {
|
|
||||||
"contents": "500",
|
|
||||||
"key": "test--calories",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
"disabled": false,
|
|
||||||
},
|
|
||||||
Object {
|
|
||||||
"columns": Array [
|
|
||||||
Object {
|
|
||||||
"contents": "Pear",
|
|
||||||
"key": "test--fruit",
|
|
||||||
},
|
|
||||||
Object {
|
|
||||||
"contents": "1000",
|
|
||||||
"key": "test--calories",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
"disabled": false,
|
|
||||||
},
|
|
||||||
Object {
|
|
||||||
"columns": Array [
|
|
||||||
Object {
|
|
||||||
"contents": "Banana",
|
|
||||||
"key": "test--fruit",
|
|
||||||
},
|
|
||||||
Object {
|
|
||||||
"contents": "200",
|
|
||||||
"key": "test--calories",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
"disabled": false,
|
|
||||||
},
|
|
||||||
]
|
|
||||||
}
|
|
||||||
>
|
|
||||||
<table
|
<table
|
||||||
className="index-list"
|
className="index-list"
|
||||||
>
|
>
|
||||||
<IndexListHeader
|
<IndexListHeader
|
||||||
columns={
|
key="index-header"
|
||||||
Array [
|
|
||||||
Object {
|
|
||||||
"align": "left",
|
|
||||||
"key": "test--fruit",
|
|
||||||
"showOnHover": false,
|
|
||||||
"size": 500,
|
|
||||||
"title": "Fruit",
|
|
||||||
},
|
|
||||||
Object {
|
|
||||||
"align": "left",
|
|
||||||
"key": "test--calories",
|
|
||||||
"showOnHover": false,
|
|
||||||
"size": 500,
|
|
||||||
"title": "Calories",
|
|
||||||
},
|
|
||||||
]
|
|
||||||
}
|
|
||||||
getColumnWidthPercent={[Function]}
|
|
||||||
>
|
>
|
||||||
<thead
|
<thead
|
||||||
className="index-list--header"
|
className="index-list--header"
|
||||||
>
|
>
|
||||||
<tr>
|
<tr>
|
||||||
<th
|
<IndexListHeaderCell
|
||||||
className="index-list--header-cell index-list--align-left"
|
alignment="left"
|
||||||
key="test--fruit"
|
columnName="Fruit"
|
||||||
style={
|
width="50%"
|
||||||
Object {
|
|
||||||
"width": "50%",
|
|
||||||
}
|
|
||||||
}
|
|
||||||
>
|
>
|
||||||
Fruit
|
<th
|
||||||
</th>
|
className="index-list--header-cell index-list--align-left"
|
||||||
<th
|
style={
|
||||||
className="index-list--header-cell index-list--align-left"
|
Object {
|
||||||
key="test--calories"
|
"width": "50%",
|
||||||
style={
|
}
|
||||||
Object {
|
|
||||||
"width": "50%",
|
|
||||||
}
|
}
|
||||||
}
|
>
|
||||||
|
Fruit
|
||||||
|
</th>
|
||||||
|
</IndexListHeaderCell>
|
||||||
|
<IndexListHeaderCell
|
||||||
|
alignment="left"
|
||||||
|
columnName="Calories"
|
||||||
|
width="50%"
|
||||||
>
|
>
|
||||||
Calories
|
<th
|
||||||
</th>
|
className="index-list--header-cell index-list--align-left"
|
||||||
|
style={
|
||||||
|
Object {
|
||||||
|
"width": "50%",
|
||||||
|
}
|
||||||
|
}
|
||||||
|
>
|
||||||
|
Calories
|
||||||
|
</th>
|
||||||
|
</IndexListHeaderCell>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
</IndexListHeader>
|
</IndexListHeader>
|
||||||
<tbody
|
<IndexListBody
|
||||||
className="index-list--body"
|
columnCount={2}
|
||||||
|
emptyState={
|
||||||
|
<div>
|
||||||
|
Empty
|
||||||
|
</div>
|
||||||
|
}
|
||||||
|
key="index-body"
|
||||||
>
|
>
|
||||||
<IndexListRow
|
<tbody
|
||||||
disabled={false}
|
className="index-list--body"
|
||||||
getColumnWidthPercent={[Function]}
|
|
||||||
getRowColumnClassName={[Function]}
|
|
||||||
key="index-list--row-0"
|
|
||||||
rowColumns={
|
|
||||||
Array [
|
|
||||||
Object {
|
|
||||||
"contents": "Apple",
|
|
||||||
"key": "test--fruit",
|
|
||||||
},
|
|
||||||
Object {
|
|
||||||
"contents": "500",
|
|
||||||
"key": "test--calories",
|
|
||||||
},
|
|
||||||
]
|
|
||||||
}
|
|
||||||
rowIndex={0}
|
|
||||||
>
|
>
|
||||||
<tr
|
<IndexListRow
|
||||||
className="index-list--row"
|
disabled={false}
|
||||||
>
|
>
|
||||||
<td
|
<tr
|
||||||
className="index-list--row-cell index-list--align-left"
|
className="index-list--row"
|
||||||
key="index-list--row-0-col-test--fruit"
|
|
||||||
style={
|
|
||||||
Object {
|
|
||||||
"width": "50%",
|
|
||||||
}
|
|
||||||
}
|
|
||||||
>
|
>
|
||||||
<div
|
<IndexListRowCell
|
||||||
className="index-list--cell"
|
alignment="left"
|
||||||
|
revealOnHover={false}
|
||||||
>
|
>
|
||||||
Apple
|
<td
|
||||||
</div>
|
className="index-list--row-cell index-list--align-left"
|
||||||
</td>
|
>
|
||||||
<td
|
<div
|
||||||
className="index-list--row-cell index-list--align-left"
|
className="index-list--cell"
|
||||||
key="index-list--row-0-col-test--calories"
|
>
|
||||||
style={
|
Apple
|
||||||
Object {
|
</div>
|
||||||
"width": "50%",
|
</td>
|
||||||
}
|
</IndexListRowCell>
|
||||||
}
|
<IndexListRowCell
|
||||||
>
|
alignment="left"
|
||||||
<div
|
revealOnHover={false}
|
||||||
className="index-list--cell"
|
|
||||||
>
|
>
|
||||||
500
|
<td
|
||||||
</div>
|
className="index-list--row-cell index-list--align-left"
|
||||||
</td>
|
>
|
||||||
</tr>
|
<div
|
||||||
</IndexListRow>
|
className="index-list--cell"
|
||||||
<IndexListRow
|
>
|
||||||
disabled={false}
|
500
|
||||||
getColumnWidthPercent={[Function]}
|
</div>
|
||||||
getRowColumnClassName={[Function]}
|
</td>
|
||||||
key="index-list--row-1"
|
</IndexListRowCell>
|
||||||
rowColumns={
|
</tr>
|
||||||
Array [
|
</IndexListRow>
|
||||||
Object {
|
<IndexListRow
|
||||||
"contents": "Pear",
|
disabled={false}
|
||||||
"key": "test--fruit",
|
|
||||||
},
|
|
||||||
Object {
|
|
||||||
"contents": "1000",
|
|
||||||
"key": "test--calories",
|
|
||||||
},
|
|
||||||
]
|
|
||||||
}
|
|
||||||
rowIndex={1}
|
|
||||||
>
|
|
||||||
<tr
|
|
||||||
className="index-list--row"
|
|
||||||
>
|
>
|
||||||
<td
|
<tr
|
||||||
className="index-list--row-cell index-list--align-left"
|
className="index-list--row"
|
||||||
key="index-list--row-1-col-test--fruit"
|
|
||||||
style={
|
|
||||||
Object {
|
|
||||||
"width": "50%",
|
|
||||||
}
|
|
||||||
}
|
|
||||||
>
|
>
|
||||||
<div
|
<IndexListRowCell
|
||||||
className="index-list--cell"
|
alignment="left"
|
||||||
|
revealOnHover={false}
|
||||||
>
|
>
|
||||||
Pear
|
<td
|
||||||
</div>
|
className="index-list--row-cell index-list--align-left"
|
||||||
</td>
|
>
|
||||||
<td
|
<div
|
||||||
className="index-list--row-cell index-list--align-left"
|
className="index-list--cell"
|
||||||
key="index-list--row-1-col-test--calories"
|
>
|
||||||
style={
|
Pear
|
||||||
Object {
|
</div>
|
||||||
"width": "50%",
|
</td>
|
||||||
}
|
</IndexListRowCell>
|
||||||
}
|
<IndexListRowCell
|
||||||
>
|
alignment="left"
|
||||||
<div
|
revealOnHover={false}
|
||||||
className="index-list--cell"
|
|
||||||
>
|
>
|
||||||
1000
|
<td
|
||||||
</div>
|
className="index-list--row-cell index-list--align-left"
|
||||||
</td>
|
>
|
||||||
</tr>
|
<div
|
||||||
</IndexListRow>
|
className="index-list--cell"
|
||||||
<IndexListRow
|
>
|
||||||
disabled={false}
|
1000
|
||||||
getColumnWidthPercent={[Function]}
|
</div>
|
||||||
getRowColumnClassName={[Function]}
|
</td>
|
||||||
key="index-list--row-2"
|
</IndexListRowCell>
|
||||||
rowColumns={
|
</tr>
|
||||||
Array [
|
</IndexListRow>
|
||||||
Object {
|
<IndexListRow
|
||||||
"contents": "Banana",
|
disabled={false}
|
||||||
"key": "test--fruit",
|
|
||||||
},
|
|
||||||
Object {
|
|
||||||
"contents": "200",
|
|
||||||
"key": "test--calories",
|
|
||||||
},
|
|
||||||
]
|
|
||||||
}
|
|
||||||
rowIndex={2}
|
|
||||||
>
|
|
||||||
<tr
|
|
||||||
className="index-list--row"
|
|
||||||
>
|
>
|
||||||
<td
|
<tr
|
||||||
className="index-list--row-cell index-list--align-left"
|
className="index-list--row"
|
||||||
key="index-list--row-2-col-test--fruit"
|
|
||||||
style={
|
|
||||||
Object {
|
|
||||||
"width": "50%",
|
|
||||||
}
|
|
||||||
}
|
|
||||||
>
|
>
|
||||||
<div
|
<IndexListRowCell
|
||||||
className="index-list--cell"
|
alignment="left"
|
||||||
|
revealOnHover={false}
|
||||||
>
|
>
|
||||||
Banana
|
<td
|
||||||
</div>
|
className="index-list--row-cell index-list--align-left"
|
||||||
</td>
|
>
|
||||||
<td
|
<div
|
||||||
className="index-list--row-cell index-list--align-left"
|
className="index-list--cell"
|
||||||
key="index-list--row-2-col-test--calories"
|
>
|
||||||
style={
|
Banana
|
||||||
Object {
|
</div>
|
||||||
"width": "50%",
|
</td>
|
||||||
}
|
</IndexListRowCell>
|
||||||
}
|
<IndexListRowCell
|
||||||
>
|
alignment="left"
|
||||||
<div
|
revealOnHover={false}
|
||||||
className="index-list--cell"
|
|
||||||
>
|
>
|
||||||
200
|
<td
|
||||||
</div>
|
className="index-list--row-cell index-list--align-left"
|
||||||
</td>
|
>
|
||||||
</tr>
|
<div
|
||||||
</IndexListRow>
|
className="index-list--cell"
|
||||||
</tbody>
|
>
|
||||||
|
100
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</IndexListRowCell>
|
||||||
|
</tr>
|
||||||
|
</IndexListRow>
|
||||||
|
</tbody>
|
||||||
|
</IndexListBody>
|
||||||
</table>
|
</table>
|
||||||
</IndexList>
|
</IndexList>
|
||||||
`;
|
`;
|
||||||
|
|
Loading…
Reference in New Issue