import * as React from "react" import { act } from "react-dom/test-utils" import TestRenderer from "react-test-renderer" import { mount } from "enzyme" import Tabs from ".." window.ResizeObserver = window.ResizeObserver || jest.fn().mockImplementation(() => ({ disconnect: jest.fn(), observe: jest.fn(), unobserve: jest.fn(), })) const { Tab } = Tabs describe("Tabs", () => { beforeAll(() => { jest.useFakeTimers() }) afterAll(() => { jest.useRealTimers() }) it("验证快照", () => { const wrapper0 = TestRenderer.create( ) const wrapper1 = TestRenderer.create(string) expect(wrapper0).toMatchSnapshot() expect(wrapper1).toMatchSnapshot() }) it("验证 setIndicatorStyle 快照", () => { const wrapper0 = mount( ) const wrapper1 = mount( ) act(() => { // 等待 0ms,这样才能触发 setIndicatorStyle 方法 jest.advanceTimersByTime(0) }) expect(wrapper0).toMatchSnapshot() expect(wrapper1).toMatchSnapshot() }) it("是否能够内部驱动", () => { const wrapper = mount( ) expect(wrapper.find("div").at(0).props()["data-value"]).toEqual("1") wrapper.find("[role='tab']").at(1).simulate("click") expect(wrapper.find("div").at(0).props()["data-value"]).toEqual("2") }) it("是否能受外部控制", () => { const wrapper0 = mount( ) expect(wrapper0.find("div").at(0).props()["data-value"]).toEqual("1") wrapper0.find("[role='tab']").at(1).simulate("click") expect(wrapper0.find("div").at(0).props()["data-value"]).toEqual("1") }) })