UNPKG

@vtex/styleguide

Version:

> VTEX Styleguide React components ([Docs](https://vtex.github.io/styleguide))

134 lines (124 loc) 4.09 kB
"use strict"; var _reactHooks = require("@testing-library/react-hooks"); var _useTableVisibility = require("../useTableVisibility"); var _useTableVisibility2 = _interopRequireDefault(_useTableVisibility); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } describe('Table V2 @ hooks/useTableVisibility spec', function () { var columns = [{ id: 'name' }, { id: 'location' }, { id: 'company' }]; var ids = columns.map(function (col) { return col.id; }); it('toggles correctly', function () { var _renderHook = (0, _reactHooks.renderHook)(function () { return (0, _useTableVisibility2.default)({ columns: columns, hiddenColumns: ['name'] }); }), result = _renderHook.result; expect(result.current.hiddenColumns).toEqual(['name']); expect(result.current.visibleColumns).toEqual([{ id: 'location' }, { id: 'company' }]); (0, _reactHooks.act)(function () { result.current.toggleColumn('name'); }); expect(result.current.hiddenColumns).toEqual([]); expect(result.current.visibleColumns).toEqual(columns); (0, _reactHooks.act)(function () { result.current.toggleColumn('location'); }); expect(result.current.hiddenColumns).toEqual(['location']); expect(result.current.visibleColumns).toEqual([{ id: 'name' }, { id: 'company' }]); (0, _reactHooks.act)(function () { result.current.toggleColumn('company'); }); expect(result.current.hiddenColumns).toEqual(['location', 'company']); expect(result.current.visibleColumns).toEqual([{ id: 'name' }]); }); it('shows a column correctly', function () { var _renderHook2 = (0, _reactHooks.renderHook)(function () { return (0, _useTableVisibility2.default)({ columns: columns, hiddenColumns: ['name'] }); }), result = _renderHook2.result; expect(result.current.visibleColumns).toEqual([{ id: 'location' }, { id: 'company' }]); (0, _reactHooks.act)(function () { result.current.showColumn('name'); }); expect(result.current.hiddenColumns).toEqual([]); expect(result.current.visibleColumns).toEqual(columns); }); it('hides a column correctly', function () { var _renderHook3 = (0, _reactHooks.renderHook)(function () { return (0, _useTableVisibility2.default)({ columns: columns, hiddenColumns: ['name'] }); }), result = _renderHook3.result; expect(result.current.visibleColumns).toEqual([{ id: 'location' }, { id: 'company' }]); (0, _reactHooks.act)(function () { result.current.hideColumn('location'); }); expect(result.current.hiddenColumns).toEqual(['name', 'location']); expect(result.current.visibleColumns).toEqual([{ id: 'company' }]); }); it('hiddes all columns', function () { var _renderHook4 = (0, _reactHooks.renderHook)(function () { return (0, _useTableVisibility2.default)({ columns: columns }); }), result = _renderHook4.result; expect(result.current.hiddenColumns).toEqual([]); expect(result.current.visibleColumns).toEqual(columns); (0, _reactHooks.act)(function () { result.current.hideAllColumns(); }); expect(result.current.hiddenColumns).toEqual(ids); expect(result.current.visibleColumns).toEqual([]); }); it('shows all columns', function () { var _renderHook5 = (0, _reactHooks.renderHook)(function () { return (0, _useTableVisibility2.default)({ columns: columns, hiddenColumns: ['name', 'location', 'company'] }); }), result = _renderHook5.result; expect(result.current.hiddenColumns).toEqual(ids); expect(result.current.visibleColumns).toEqual([]); (0, _reactHooks.act)(function () { result.current.showAllColumns(); }); expect(result.current.hiddenColumns).toEqual([]); expect(result.current.visibleColumns).toEqual(columns); }); });