gristlabs_grist-core/test/client/lib/PluginApi.ts
Jarosław Sadziński a52d56f613 (core) Moving client and common tests to core
Summary:
- Moved /test/client and /test/common to core.
- Moved two files (CircularArray and RecentItems) from app/common to core/app/common.
- Moved resetOrg test to gen-server.
- `testrun.sh` is now invoking common and client test from core.
- Added missing packages to core's package.json (and revealed underscore as it is used in the main app).
- Removed Coord.js as it is not used anywhere.

Test Plan: Existing tests

Reviewers: paulfitz

Reviewed By: paulfitz

Subscribers: paulfitz

Differential Revision: https://phab.getgrist.com/D3590
2022-08-23 19:20:10 +02:00

57 lines
2.0 KiB
TypeScript

import {assert} from 'chai';
import {ColumnsToMap, mapColumnNames, mapColumnNamesBack} from 'app/plugin/grist-plugin-api';
describe('PluginApi', function () {
it('should map columns according to configuration', function () {
const columns: ColumnsToMap = ['Foo', {name: 'Bar', allowMultiple: true}, {name: 'Baz', optional: true}];
let mappings: any = {Foo: null, Bar: ['A', 'B'], Baz: null};
const record = {A: 1, B: 2, id: 1};
// When there are not mappings, it should return original data.
assert.deepEqual(
record,
mapColumnNames(record)
);
assert.deepEqual(
record,
mapColumnNamesBack(record)
);
// Foo is not mapped, should be null.
assert.isNull(
mapColumnNames(record, {
mappings,
columns,
})
);
assert.isNull(
mapColumnNames([record], {
mappings,
columns,
})
);
// Map Foo to A
mappings = {...mappings, Foo: 'A'};
// Should map as Foo is mapped
assert.deepEqual(mapColumnNames(record, {mappings, columns}), {id: 1, Foo: 1, Bar: [1, 2]});
assert.deepEqual(mapColumnNames([record], {mappings, columns}), [{id: 1, Foo: 1, Bar: [1, 2]}]);
assert.deepEqual(mapColumnNamesBack([{id: 1, Foo: 1, Bar: [1, 2]}], {mappings, columns}), [record]);
// Map Baz
mappings = {...mappings, Baz: 'B'};
assert.deepEqual(mapColumnNames(record, {mappings, columns}), {id: 1, Foo: 1, Bar: [1, 2], Baz: 2});
assert.deepEqual(mapColumnNames([record], {mappings, columns}), [{id: 1, Foo: 1, Bar: [1, 2], Baz: 2}]);
assert.deepEqual(mapColumnNamesBack([{id: 1, Foo: 1, Bar: [1, 2], Baz: 5}], {mappings, columns}),
[{id: 1, A: 1, B: 5}]);
});
it('should ignore when there are not mappings requested', function () {
const columns: ColumnsToMap|undefined = undefined;
const mappings: any = undefined;
const record = {A: 1, B: 2, id: 1};
assert.deepEqual(
mapColumnNames(record, {
mappings,
columns,
}),
record
);
});
});