mirror of https://github.com/nocodb/nocodb
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
153 lines
3.4 KiB
153 lines
3.4 KiB
2 years ago
|
import { test } from "@playwright/test";
|
||
|
import { DashboardPage } from "../pages/Dashboard";
|
||
|
import setup from "../setup";
|
||
|
|
||
|
// Storing one additional dummy value "10" at end of every input array
|
||
|
// this will trigger update to previously committed data
|
||
|
const durationData = [
|
||
|
{
|
||
|
format: "h:mm (e.g. 1:23)",
|
||
|
input: ["1:30", "30", "60", "80", "12:34", "15:130", "123123", "10"],
|
||
|
output: ["01:30", "00:30", "01:00", "01:20", "12:34", "17:10", "2052:03"],
|
||
|
},
|
||
|
{
|
||
|
format: "h:mm:ss (e.g. 3:45, 1:23:40)",
|
||
|
input: [
|
||
|
"11:22:33",
|
||
|
"1234",
|
||
|
"50",
|
||
|
"1:1111",
|
||
|
"1:11:1111",
|
||
|
"15:130",
|
||
|
"123123",
|
||
|
"10",
|
||
|
],
|
||
|
output: [
|
||
|
"11:22:33",
|
||
|
"00:20:34",
|
||
|
"00:00:50",
|
||
|
"00:19:31",
|
||
|
"01:29:31",
|
||
|
"00:17:10",
|
||
|
"34:12:03",
|
||
|
],
|
||
|
},
|
||
|
{
|
||
|
format: "h:mm:ss.s (e.g. 3:34.6, 1:23:40.0)",
|
||
|
input: [
|
||
|
"1234",
|
||
|
"12:34",
|
||
|
"12:34:56",
|
||
|
"12:34:999",
|
||
|
"12:999:56",
|
||
|
"12:34:56.12",
|
||
|
"12:34:56.199",
|
||
|
"10",
|
||
|
],
|
||
|
output: [
|
||
|
"00:20:34.0",
|
||
|
"00:12:34.0",
|
||
|
"12:34:56.0",
|
||
|
"12:50:39.0",
|
||
|
"28:39:56.0",
|
||
|
"12:34:56.1",
|
||
|
"12:34:56.2",
|
||
|
],
|
||
|
},
|
||
|
{
|
||
|
format: "h:mm:ss.ss (e.g. 3.45.67, 1:23:40.00)",
|
||
|
input: [
|
||
|
"1234",
|
||
|
"12:34",
|
||
|
"12:34:56",
|
||
|
"12:34:999",
|
||
|
"12:999:56",
|
||
|
"12:34:56.12",
|
||
|
"12:34:56.199",
|
||
|
"10",
|
||
|
],
|
||
|
output: [
|
||
|
"00:20:34.00",
|
||
|
"00:12:34.00",
|
||
|
"12:34:56.00",
|
||
|
"12:50:39.00",
|
||
|
"28:39:56.00",
|
||
|
"12:34:56.12",
|
||
|
"12:34:56.20",
|
||
|
],
|
||
|
},
|
||
|
{
|
||
|
format: "h:mm:ss.sss (e.g. 3.45.678, 1:23:40.000)",
|
||
|
input: [
|
||
|
"1234",
|
||
|
"12:34",
|
||
|
"12:34:56",
|
||
|
"12:34:999",
|
||
|
"12:999:56",
|
||
|
"12:34:56.12",
|
||
|
"12:34:56.199",
|
||
|
"10",
|
||
|
],
|
||
|
output: [
|
||
|
"00:20:34.000",
|
||
|
"00:12:34.000",
|
||
|
"12:34:56.000",
|
||
|
"12:50:39.000",
|
||
|
"28:39:56.000",
|
||
|
"12:34:56.012",
|
||
|
"12:34:56.199",
|
||
|
],
|
||
|
},
|
||
|
];
|
||
|
|
||
|
test.describe("Duration column", () => {
|
||
|
let dashboard: DashboardPage;
|
||
|
let context: any;
|
||
|
|
||
|
test.beforeEach(async ({ page }) => {
|
||
|
context = await setup({ page });
|
||
|
dashboard = new DashboardPage(page, context.project);
|
||
|
});
|
||
|
|
||
|
test("Create duration column", async () => {
|
||
|
await dashboard.treeView.createTable({ title: "tablex" });
|
||
|
// Create duration column
|
||
|
await dashboard.grid.column.create({
|
||
|
title: "NC_DURATION_0",
|
||
|
type: "Duration",
|
||
|
format: durationData[0].format,
|
||
|
});
|
||
|
for (let i = 0; i < 8; i++) {
|
||
|
await dashboard.grid.addNewRow({
|
||
|
index: i,
|
||
|
columnHeader: "NC_DURATION_0",
|
||
|
value: i.toString(),
|
||
|
});
|
||
|
}
|
||
|
|
||
|
for (let i = 0; i < durationData.length; i++) {
|
||
|
// Edit duration column
|
||
|
await dashboard.grid.column.openEdit({
|
||
|
title: "NC_DURATION_0",
|
||
|
type: "Duration",
|
||
|
format: durationData[i].format,
|
||
|
});
|
||
|
await dashboard.grid.column.save({ isUpdated: true });
|
||
|
for (let i = 0; i < durationData[i].input.length; i++) {
|
||
|
await dashboard.grid.editRow({
|
||
|
index: i,
|
||
|
columnHeader: "NC_DURATION_0",
|
||
|
value: durationData[i].input[i],
|
||
|
});
|
||
|
}
|
||
|
for (let i = 0; i < durationData[i].output.length; i++) {
|
||
|
await dashboard.grid.cell.verify({
|
||
|
index: i,
|
||
|
columnHeader: "NC_DURATION_0",
|
||
|
value: durationData[i].output[i],
|
||
|
});
|
||
|
}
|
||
|
}
|
||
|
});
|
||
|
});
|