Browse Source

test: updates to include other datatypes

Signed-off-by: Raju Udava <86527202+dstala@users.noreply.github.com>
temp-5c4a2f8331a3f36534606c6dcdb34a67f95aea6d
Raju Udava 1 year ago
parent
commit
2e468d94de
  1. 59
      tests/playwright/tests/megaTable.spec.ts

59
tests/playwright/tests/megaTable.spec.ts

@ -11,14 +11,22 @@ let api: Api<any>;
// Add row count as required to megaTblRows
const megaTblColumns = [
{ type: 'SingleLineText', count: 3 },
{ type: 'Number', count: 3 },
{ type: 'Checkbox', count: 3 },
{ type: 'SingleSelect', count: 3 },
{ type: 'MultiSelect', count: 3 },
{ type: 'SingleLineText', count: 30 },
{ type: 'LongText', count: 100 },
{ type: 'Number', count: 30 },
{ type: 'Checkbox', count: 30 },
{ type: 'SingleSelect', count: 30 },
{ type: 'MultiSelect', count: 100 },
{ type: 'Date', count: 100 },
{ type: 'DateTime', count: 100 },
{ type: 'Email', count: 100 },
{ type: 'Currency', count: 100 },
{ type: 'Duration', count: 100 },
{ type: 'Rating', count: 100 },
];
const megaTblRows = 50000;
const megaTblRows = 1000;
const bulkInsertAfterRows = 1000;
const formulaRowCnt = 100;
test.describe.serial('Test table', () => {
let context: any;
@ -55,6 +63,8 @@ test.describe.serial('Test table', () => {
for (let i = 0; i < megaTblColumns.length; i++) {
for (let j = 0; j < megaTblColumns[i].count; j++) {
// skip if Formula
if (megaTblColumns[i].type === 'Formula') continue;
const column = {
column_name: `${megaTblColumns[i].type}${j}`,
title: `${megaTblColumns[i].type}${j}`,
@ -63,6 +73,11 @@ test.describe.serial('Test table', () => {
if (megaTblColumns[i].type === 'SingleSelect' || megaTblColumns[i].type === 'MultiSelect') {
column['dtxp'] = "'jan','feb','mar','apr','may','jun','jul','aug','sep','oct','nov','dec'";
}
if (megaTblColumns[i].type === 'Email') {
column['meta'] = {
validate: true,
};
}
table_1_columns.push(column);
}
}
@ -75,12 +90,15 @@ test.describe.serial('Test table', () => {
columns: table_1_columns,
});
table_1 = await api.dbTableColumn.create(table_1.id, {
column_name: 'Formula',
title: 'Formula',
uidt: UITypes.Formula,
formula_raw: '{SingleLineText}',
});
// run loop for formula count
for (let i = 0; i < formulaRowCnt; i++) {
table_1 = await api.dbTableColumn.create(table_1.id, {
column_name: `Formula${i}`,
title: `Formula${i}`,
uidt: UITypes.Formula,
formula_raw: '{SingleLineText}',
});
}
const table_1_rows = [];
for (let rowCnt = 0; rowCnt < megaTblRows; rowCnt++) {
@ -89,11 +107,16 @@ test.describe.serial('Test table', () => {
SingleLineText: `SingleLineText${rowCnt + 1}`,
};
for (let colCnt = 0; colCnt < megaTblColumns.length; colCnt++) {
if (megaTblColumns[colCnt].type === 'Formula') continue;
for (let colInstanceCnt = 0; colInstanceCnt < megaTblColumns[colCnt].count; colInstanceCnt++) {
const columnName = `${megaTblColumns[colCnt].type}${colInstanceCnt}`;
if (megaTblColumns[colCnt].type === 'SingleLineText') {
row[columnName] = `SingleLineText${rowCnt + 1}`;
} else if (megaTblColumns[colCnt].type === 'Number') {
} else if (
megaTblColumns[colCnt].type === 'Number' ||
megaTblColumns[colCnt].type === 'Currency' ||
megaTblColumns[colCnt].type === 'Duration'
) {
row[columnName] = rowCnt + 1;
} else if (megaTblColumns[colCnt].type === 'Checkbox') {
row[columnName] = rowCnt % 2 === 0;
@ -101,6 +124,16 @@ test.describe.serial('Test table', () => {
row[columnName] = 'jan';
} else if (megaTblColumns[colCnt].type === 'MultiSelect') {
row[columnName] = 'jan,feb,mar,apr';
} else if (megaTblColumns[colCnt].type === 'LongText') {
row[columnName] = `Some length text here. Some length text here`;
} else if (megaTblColumns[colCnt].type === 'DateTime') {
row[columnName] = '2023-04-25 16:25:11+05:30';
} else if (megaTblColumns[colCnt].type === 'Date') {
row[columnName] = '2023-04-25 16:25:11+05:30';
} else if (megaTblColumns[colCnt].type === 'Email') {
row[columnName] = 'raju@nocodb.com';
} else if (megaTblColumns[colCnt].type === 'Rating') {
row[columnName] = (rowCnt % 5) + 1;
}
}
}

Loading…
Cancel
Save