1
0
mirror of https://gitlab.com/bramw/baserow.git synced 2024-11-21 23:37:55 +00:00
bramw_baserow/web-frontend/test/unit/database/richTextPasting.spec.js

159 lines
3.4 KiB
JavaScript

import { MultipleSelectFieldType } from '@baserow/modules/database/fieldTypes'
import papa from '@baserow/modules/core/plugins/papa'
const richTextValuesForPasting = [
{
input: {
clipboardData: 'test,nonsense,test',
field: {
select_options: [
{ value: 'test', id: 1 },
{ value: 'test2', id: 2 },
],
},
},
output: [{ value: 'test', id: 1 }],
},
{
input: {
richClipboardData: [{ value: 'test', id: 10 }],
field: {
select_options: [
{ value: 'test', id: 1 },
{ value: 'test2', id: 2 },
],
},
},
output: [{ value: 'test', id: 1 }],
},
{
input: {
richClipboardData: [{ value: 'test', id: 2 }],
field: {
select_options: [
{ value: 'test', id: 1 },
{ value: 'test2', id: 2 },
],
},
},
output: [{ value: 'test2', id: 2 }],
},
{
input: {
richClipboardData: [{ value: 'random', id: 2 }],
field: {
select_options: [
{ value: 'test', id: 1 },
{ value: 'test', id: 2 },
],
},
},
output: [{ value: 'test', id: 2 }],
},
{
input: {
richClipboardData: [
{ value: 'test', id: 2 },
{ value: 'test', id: 50 },
{ value: 'unknown', id: 60 },
],
field: {
select_options: [
{ value: 'test', id: 1 },
{ value: 'test2', id: 2 },
],
},
},
output: [
{ value: 'test2', id: 2 },
{ value: 'test', id: 1 },
],
},
{
input: {
richClipboardData: [
{ value: 'test', id: 2 },
{ value: 'test', id: 2 },
],
field: {
select_options: [
{ value: 'test', id: 1 },
{ value: 'test2', id: 2 },
],
},
},
output: [{ value: 'test2', id: 2 }],
},
{
input: {
clipboardData: 'test,test2',
richClipboardData: 'invalid',
field: {
select_options: [
{ value: 'test', id: 1 },
{ value: 'test2', id: 2 },
],
},
},
output: [
{ value: 'test', id: 1 },
{ value: 'test2', id: 2 },
],
},
{
input: {
clipboardData: 'test,test',
richClipboardData: 'invalid',
field: {
select_options: [
{ value: 'test', id: 1 },
{ value: 'test', id: 2 },
],
},
},
output: [
{ value: 'test', id: 1 },
{ value: 'test', id: 2 },
],
},
{
input: {
clipboardData: 'test,test2,test,test3',
richClipboardData: 'invalid',
field: {
select_options: [
{ value: 'test', id: 1 },
{ value: 'test2', id: 10 },
{ value: 'test', id: 3 },
],
},
},
output: [
{ value: 'test', id: 1 },
{ value: 'test2', id: 10 },
{ value: 'test', id: 3 },
],
},
]
describe('Rich test pasting tests', () => {
test.each(richTextValuesForPasting)(
'Verify that prepareValueForPaste returns the expected output for multi select' +
' type: %j',
({ input, output }) => {
const app = {}
papa(app, (key, value) => {
app['$' + key] = value
})
expect(
new MultipleSelectFieldType({ app }).prepareValueForPaste(
input.field,
input.clipboardData,
input.richClipboardData
)
).toStrictEqual(output)
}
)
})