Files
flipper/src/__tests__/createTablePlugin.node.js
John Knox 3bfb7faf0a Convert plugin.js to plugin.tsx
Summary:
* Deletes plugin.js
* Adds plugin.tsx
* Adds plugin flow-typed module that has the old flow types

Reviewed By: passy

Differential Revision: D16668067

fbshipit-source-id: b2f0ce47c4cf7125b4e352821e921b97675d12a9
2019-08-08 12:06:11 -07:00

80 lines
2.0 KiB
JavaScript

/**
* Copyright 2018-present Facebook.
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
* @format
*/
import {createTablePlugin} from '../createTablePlugin.js';
import type {TableRows_immutable} from 'flipper';
//import type {PersistedState, RowData} from '../createTablePlugin.js';
import {FlipperPlugin} from '../plugin.tsx';
import {List, Map as ImmutableMap} from 'immutable';
const PROPS = {
method: 'method',
resetMethod: 'resetMethod',
columns: {},
columnSizes: {},
renderSidebar: (r: {id: string}) => {},
buildRow: (r: {id: string}) => {},
};
type PersistedState<T> = {|
rows: TableRows_immutable,
datas: ImmutableMap<string, T>,
|};
type RowData = {
id: string,
};
test('createTablePlugin returns FlipperPlugin', () => {
const tablePlugin = createTablePlugin({...PROPS});
expect(tablePlugin.prototype).toBeInstanceOf(FlipperPlugin);
});
test('persistedStateReducer is resetting data', () => {
const resetMethod = 'resetMethod';
const tablePlugin = createTablePlugin<RowData>({...PROPS, resetMethod});
const ps: PersistedState<RowData> = {
datas: ImmutableMap({'1': {id: '1'}}),
rows: List([
{
key: '1',
columns: {
id: {
value: '1',
},
},
},
]),
};
// $FlowFixMe persistedStateReducer exists for createTablePlugin
const {rows, datas} = tablePlugin.persistedStateReducer(ps, resetMethod, {});
expect(datas.toJSON()).toEqual({});
expect(rows.size).toBe(0);
});
test('persistedStateReducer is adding data', () => {
const method = 'method';
const tablePlugin = createTablePlugin({...PROPS, method});
const id = '1';
// $FlowFixMe persistedStateReducer exists for createTablePlugin
const {rows, datas} = tablePlugin.persistedStateReducer(
tablePlugin.defaultPersistedState,
method,
{id},
);
expect(rows.size).toBe(1);
expect([...datas.keys()]).toEqual([id]);
});