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], }); } } }); });