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
80 lines
2.0 KiB
JavaScript
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]);
|
|
});
|