mirror of
https://github.com/nocodb/nocodb.git
synced 2026-04-29 11:46:48 +00:00
refactor: rename column test files
Signed-off-by: Raju Udava <86527202+dstala@users.noreply.github.com>
This commit is contained in:
committed by
Muhammed Mustafa
parent
d9f34c3d86
commit
137b721e71
119
scripts/playwright/tests/columnFormula.spec.ts
Normal file
119
scripts/playwright/tests/columnFormula.spec.ts
Normal file
@@ -0,0 +1,119 @@
|
||||
import { test } from "@playwright/test";
|
||||
import { DashboardPage } from "../pages/Dashboard";
|
||||
import setup from "../setup";
|
||||
|
||||
// Add formula to be verified here & store expected results for 5 rows
|
||||
// Column data from City table (Sakila DB)
|
||||
/**
|
||||
* City LastUpdate Address List Country
|
||||
* A Corua (La Corua) 2006-02-15 04:45:25 939 Probolinggo Loop Spain
|
||||
* Abha 2006-02-15 04:45:25 733 Mandaluyong Place Saudi Arabia
|
||||
* Abu Dhabi 2006-02-15 04:45:25 535 Ahmadnagar Manor United Arab Emirates
|
||||
* Acua 2006-02-15 04:45:25 1789 Saint-Denis Parkway Mexico
|
||||
* Adana 2006-02-15 04:45:25 663 Baha Blanca Parkway Turkey
|
||||
*/
|
||||
const formulaData = [
|
||||
{
|
||||
formula: "1 + 1",
|
||||
result: ["2", "2", "2", "2", "2"],
|
||||
},
|
||||
{
|
||||
formula:
|
||||
"ADD({CityId}, {CountryId}) + AVG({CityId}, {CountryId}) + LEN({City})",
|
||||
result: ["150", "130", "165", "100", "158"],
|
||||
},
|
||||
{
|
||||
formula: `WEEKDAY("2022-07-19")`,
|
||||
result: ["1", "1", "1", "1", "1"],
|
||||
},
|
||||
{
|
||||
formula: `WEEKDAY("2022-07-19", "sunday")`,
|
||||
result: ["2", "2", "2", "2", "2"],
|
||||
},
|
||||
{
|
||||
formula: `CONCAT(UPPER({City}), LOWER({City}), TRIM(' trimmed '))`,
|
||||
result: [
|
||||
'"A CORUA (LA CORUA)a corua (la corua)trimmed"',
|
||||
'"ABHAabhatrimmed"',
|
||||
'"ABU DHABIabu dhabitrimmed"',
|
||||
'"ACUAacuatrimmed"',
|
||||
'"ADANAadanatrimmed"',
|
||||
],
|
||||
},
|
||||
{
|
||||
formula: `CEILING(1.4) + FLOOR(1.6) + ROUND(2.5) + MOD({CityId}, 3) + MIN({CityId}, {CountryId}) + MAX({CityId}, {CountryId})`,
|
||||
result: ['"95"', '"92"', '"110"', '"71"', '"110"'],
|
||||
},
|
||||
{
|
||||
formula: `LOG({CityId}) + EXP({CityId}) + POWER({CityId}, 3) + SQRT({CountryId})`,
|
||||
result: [
|
||||
"13.04566088154786",
|
||||
"25.137588417628013",
|
||||
"58.23402483297667",
|
||||
"127.73041108667896",
|
||||
"284.8714548168068",
|
||||
],
|
||||
},
|
||||
{
|
||||
formula: `NOW()`,
|
||||
result: ["1", "1", "1", "1", "1"],
|
||||
},
|
||||
];
|
||||
|
||||
test.describe("Virtual Columns", () => {
|
||||
let dashboard: DashboardPage;
|
||||
let context: any;
|
||||
|
||||
test.beforeEach(async ({ page }) => {
|
||||
context = await setup({ page });
|
||||
dashboard = new DashboardPage(page, context.project);
|
||||
});
|
||||
|
||||
async function formulaResultVerify({
|
||||
title,
|
||||
result,
|
||||
}: {
|
||||
title: string;
|
||||
result: string[];
|
||||
}) {
|
||||
for (let i = 0; i < result.length; i++) {
|
||||
await dashboard.grid.cell.verify({
|
||||
index: i,
|
||||
columnHeader: title,
|
||||
value: result[i],
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
test("Formula", async () => {
|
||||
// close 'Team & Auth' tab
|
||||
await dashboard.closeTab({ title: "Team & Auth" });
|
||||
|
||||
await dashboard.treeView.openTable({ title: "City" });
|
||||
|
||||
// Create formula column
|
||||
await dashboard.grid.column.create({
|
||||
title: "NC_MATH_0",
|
||||
type: "Formula",
|
||||
formula: formulaData[1].formula,
|
||||
});
|
||||
|
||||
// verify different formula's
|
||||
for (let i = 1; i < formulaData.length; i++) {
|
||||
await dashboard.grid.column.openEdit({
|
||||
title: "NC_MATH_0",
|
||||
type: "Formula",
|
||||
formula: formulaData[i].formula,
|
||||
});
|
||||
await dashboard.grid.column.save({ isUpdated: true });
|
||||
if (formulaData[i].formula !== `NOW()`) {
|
||||
await formulaResultVerify({
|
||||
title: "NC_MATH_0",
|
||||
result: formulaData[i].result,
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
await dashboard.closeTab({ title: "City" });
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user