import * as React from "react"
import { mount } from "enzyme"
import Table from ".."
window.ResizeObserver =
window.ResizeObserver ||
jest.fn().mockImplementation(() => ({
disconnect: jest.fn(),
observe: jest.fn(),
unobserve: jest.fn(),
}))
const { Column } = Table
class SortMounter extends React.Component {
state = {
sortOrder: undefined,
}
render() {
const { sortOrder } = this.state
return (
this.setState({ sortOrder: argSortOrder })}
/>
)
}
}
describe("排序功能", () => {
it("是否能够内部驱动", () => {
const onSort = jest.fn()
const wrapper = mount(
)
expect(wrapper).toMatchSnapshot()
const th = wrapper.find("[role='columnheader']").at(0)
th.simulate("click")
expect(onSort).toHaveBeenCalledWith("desc")
th.simulate("click")
expect(onSort).toHaveBeenCalledWith("asc")
th.simulate("click")
expect(onSort).toHaveBeenCalledWith("")
})
// it("onSort Prop 是否能验证 function", () => {
// const stub = sinon.stub(console, 'error')
// const wrapper = render(
//
// )
// expect(stub.callCount).toBe(1)
// stub.restore()
// })
it("是否能够外部控制", () => {
const wrapper = mount()
const th = wrapper.find("[role='columnheader']").at(0)
th.simulate("click")
expect(wrapper.find(".adui-table-sort").at(0).props()["data-sort"]).toBe(
"desc"
)
th.simulate("click")
expect(wrapper.find(".adui-table-sort").at(0).props()["data-sort"]).toBe(
"asc"
)
th.simulate("click")
expect(wrapper.find(".adui-table-sort").at(0).props()["data-sort"]).toBe("")
})
it("是否支持键盘操作", () => {
const onSort = jest.fn()
const wrapper = mount(
)
wrapper
.find("[role='columnheader']")
.at(0)
.simulate("keyPress", { key: "Enter", keyCode: 13 })
expect(onSort).toHaveBeenCalled()
})
})