|
|
|
import { test } from "@playwright/test";
|
|
|
|
import { DashboardPage } from "../pages/Dashboard";
|
|
|
|
import { ToolbarPage } from "../pages/Dashboard/common/Toolbar";
|
|
|
|
|
|
|
|
import setup from "../setup";
|
|
|
|
|
|
|
|
test.describe("View", () => {
|
|
|
|
let dashboard: DashboardPage, toolbar: ToolbarPage;
|
|
|
|
let context: any;
|
|
|
|
|
|
|
|
test.beforeEach(async ({ page }) => {
|
|
|
|
context = await setup({ page });
|
|
|
|
dashboard = new DashboardPage(page, context.project);
|
|
|
|
toolbar = toolbar = dashboard.kanban.toolbar;
|
|
|
|
});
|
|
|
|
|
|
|
|
test("Kanban", async () => {
|
|
|
|
// close 'Team & Auth' tab
|
|
|
|
await dashboard.closeTab({ title: "Team & Auth" });
|
|
|
|
await dashboard.treeView.openTable({ title: "Film" });
|
|
|
|
|
|
|
|
await dashboard.viewSidebar.createKanbanView({
|
|
|
|
title: "Film Kanban",
|
|
|
|
});
|
|
|
|
await dashboard.viewSidebar.verifyView({
|
|
|
|
title: "Film Kanban",
|
|
|
|
index: 1,
|
|
|
|
});
|
|
|
|
|
|
|
|
// configure stack-by field
|
|
|
|
await toolbar.clickStackByField();
|
|
|
|
await toolbar.stackBy.click({ title: "Rating" });
|
|
|
|
// click again to close menu
|
|
|
|
await toolbar.clickStackByField();
|
|
|
|
|
|
|
|
const kanban = dashboard.kanban;
|
|
|
|
await kanban.verifyStackCount({ count: 6 });
|
|
|
|
await kanban.verifyStackOrder({
|
|
|
|
order: ["Uncategorized", "G", "PG", "PG-13", "R", "NC-17"],
|
|
|
|
});
|
|
|
|
await kanban.verifyStackFooter({
|
|
|
|
count: [0, 178, 194, 223, 195, 210],
|
|
|
|
});
|
|
|
|
await kanban.verifyCardCount({
|
|
|
|
count: [0, 25, 25, 25, 25, 25],
|
|
|
|
});
|
|
|
|
|
|
|
|
// hide fields
|
|
|
|
await toolbar.fields.hideAll();
|
|
|
|
await toolbar.fields.toggle({ title: "Title" });
|
|
|
|
await kanban.verifyCardCount({
|
|
|
|
count: [0, 25, 25, 25, 25, 25],
|
|
|
|
});
|
|
|
|
|
|
|
|
// verify card order
|
|
|
|
const order = [
|
|
|
|
["ACE GOLDFINGER", "AFFAIR PREJUDICE", "AFRICAN EGG"],
|
|
|
|
["ACADEMY DINOSAUR", "AGENT TRUMAN", "ALASKA PHANTOM"],
|
|
|
|
["AIRPLANE SIERRA", "ALABAMA DEVIL", "ALTER VICTORY"],
|
|
|
|
["AIRPORT POLLOCK", "ALONE TRIP", "AMELIE HELLFIGHTERS"],
|
|
|
|
["ADAPTATION HOLES", "ALADDIN CALENDAR", "ALICE FANTASIA"],
|
|
|
|
];
|
|
|
|
for (let i = 1; i <= order.length; i++)
|
|
|
|
await kanban.verifyCardOrder({
|
|
|
|
stackIndex: i,
|
|
|
|
order: order[i - 1],
|
|
|
|
});
|
|
|
|
|
|
|
|
// // verify inter stack drag-drop
|
|
|
|
// await kanban.dragDropCard({
|
|
|
|
// from: "ACE GOLDFINGER",
|
|
|
|
// to: "ACADEMY DINOSAUR",
|
|
|
|
// });
|
|
|
|
|
|
|
|
// verify drag drop stack
|
|
|
|
await kanban.dragDropStack({
|
|
|
|
from: 1, // G
|
|
|
|
to: 2, // PG
|
|
|
|
});
|
|
|
|
await kanban.verifyStackOrder({
|
|
|
|
order: ["Uncategorized", "PG", "G", "PG-13", "R", "NC-17"],
|
|
|
|
});
|
|
|
|
// verify drag drop stack
|
|
|
|
await kanban.dragDropStack({
|
|
|
|
from: 2, // G
|
|
|
|
to: 1, // PG
|
|
|
|
});
|
|
|
|
await kanban.verifyStackOrder({
|
|
|
|
order: ["Uncategorized", "G", "PG", "PG-13", "R", "NC-17"],
|
|
|
|
});
|
|
|
|
|
|
|
|
// verify sort
|
|
|
|
await toolbar.sort.addSort({
|
|
|
|
columnTitle: "Title",
|
|
|
|
isAscending: false,
|
|
|
|
isLocallySaved: false,
|
|
|
|
});
|
|
|
|
// verify card order
|
|
|
|
const order2 = [
|
|
|
|
["YOUNG LANGUAGE", "WEST LION"],
|
|
|
|
["WORST BANGER", "WORDS HUNTER"],
|
|
|
|
];
|
|
|
|
for (let i = 1; i <= order2.length; i++)
|
|
|
|
await kanban.verifyCardOrder({
|
|
|
|
stackIndex: i,
|
|
|
|
order: order2[i - 1],
|
|
|
|
});
|
|
|
|
await toolbar.sort.resetSort();
|
|
|
|
// verify card order
|
|
|
|
const order3 = [
|
|
|
|
["ACE GOLDFINGER", "AFFAIR PREJUDICE", "AFRICAN EGG"],
|
|
|
|
["ACADEMY DINOSAUR", "AGENT TRUMAN", "ALASKA PHANTOM"],
|
|
|
|
];
|
|
|
|
for (let i = 1; i <= order3.length; i++)
|
|
|
|
await kanban.verifyCardOrder({
|
|
|
|
stackIndex: i,
|
|
|
|
order: order3[i - 1],
|
|
|
|
});
|
|
|
|
|
|
|
|
// verify filter
|
|
|
|
await toolbar.filter.addNew({
|
|
|
|
columnTitle: "Title",
|
|
|
|
opType: "is like",
|
|
|
|
value: "BA",
|
|
|
|
isLocallySaved: false,
|
|
|
|
});
|
|
|
|
// verify card order
|
|
|
|
const order4 = [
|
|
|
|
["BAKED CLEOPATRA", "BALLROOM MOCKINGBIRD"],
|
|
|
|
["ARIZONA BANG", "EGYPT TENENBAUMS"],
|
|
|
|
];
|
|
|
|
for (let i = 1; i <= order4.length; i++)
|
|
|
|
await kanban.verifyCardOrder({
|
|
|
|
stackIndex: i,
|
|
|
|
order: order4[i - 1],
|
|
|
|
});
|
|
|
|
await toolbar.filter.resetFilter();
|
|
|
|
const order5 = [
|
|
|
|
["ACE GOLDFINGER", "AFFAIR PREJUDICE", "AFRICAN EGG"],
|
|
|
|
["ACADEMY DINOSAUR", "AGENT TRUMAN", "ALASKA PHANTOM"],
|
|
|
|
];
|
|
|
|
for (let i = 1; i <= order5.length; i++)
|
|
|
|
await kanban.verifyCardOrder({
|
|
|
|
stackIndex: i,
|
|
|
|
order: order5[i - 1],
|
|
|
|
});
|
|
|
|
|
|
|
|
await dashboard.rootPage.waitForTimeout(1000);
|
|
|
|
});
|
|
|
|
|
|
|
|
test("Kanban view operations", async () => {
|
|
|
|
test.slow();
|
|
|
|
// close 'Team & Auth' tab
|
|
|
|
await dashboard.closeTab({ title: "Team & Auth" });
|
|
|
|
await dashboard.treeView.openTable({ title: "Film" });
|
|
|
|
|
|
|
|
await dashboard.viewSidebar.createKanbanView({
|
|
|
|
title: "Film Kanban",
|
|
|
|
});
|
|
|
|
await dashboard.viewSidebar.verifyView({
|
|
|
|
title: "Film Kanban",
|
|
|
|
index: 1,
|
|
|
|
});
|
|
|
|
|
|
|
|
await toolbar.sort.addSort({
|
|
|
|
columnTitle: "Title",
|
|
|
|
isAscending: false,
|
|
|
|
isLocallySaved: false,
|
|
|
|
});
|
|
|
|
await toolbar.filter.addNew({
|
|
|
|
columnTitle: "Title",
|
|
|
|
opType: "is like",
|
|
|
|
value: "BA",
|
|
|
|
isLocallySaved: false,
|
|
|
|
});
|
|
|
|
await toolbar.fields.hideAll();
|
|
|
|
await toolbar.fields.toggle({ title: "Title" });
|
|
|
|
|
|
|
|
await dashboard.viewSidebar.copyView({ title: "Film Kanban" });
|
|
|
|
await dashboard.viewSidebar.verifyView({
|
|
|
|
title: "Kanban-1",
|
|
|
|
index: 2,
|
|
|
|
});
|
|
|
|
const kanban = dashboard.kanban;
|
|
|
|
await kanban.verifyStackCount({ count: 6 });
|
|
|
|
await kanban.verifyStackOrder({
|
|
|
|
order: ["Uncategorized", "G", "PG", "PG-13", "R", "NC-17"],
|
|
|
|
});
|
|
|
|
await kanban.verifyStackFooter({
|
|
|
|
count: [0, 4, 5, 8, 6, 6],
|
|
|
|
});
|
|
|
|
await kanban.verifyCardCount({
|
|
|
|
count: [0, 4, 5, 8, 6, 6],
|
|
|
|
});
|
|
|
|
// verify card order
|
|
|
|
const order2 = [
|
|
|
|
["BAREFOOT MANCHURIAN", "BARBARELLA STREETCAR"],
|
|
|
|
["WORST BANGER", "PRESIDENT BANG"],
|
|
|
|
];
|
|
|
|
for (let i = 1; i <= order2.length; i++)
|
|
|
|
await kanban.verifyCardOrder({
|
|
|
|
stackIndex: i,
|
|
|
|
order: order2[i - 1],
|
|
|
|
});
|
|
|
|
|
|
|
|
await dashboard.viewSidebar.deleteView({ title: "Kanban-1" });
|
|
|
|
///////////////////////////////////////////////
|
|
|
|
|
|
|
|
await dashboard.viewSidebar.openView({ title: "Film Kanban" });
|
|
|
|
|
|
|
|
// add new stack
|
|
|
|
await kanban.addNewStack({ title: "Test" });
|
|
|
|
await dashboard.rootPage.waitForTimeout(1000);
|
|
|
|
await kanban.verifyStackCount({ count: 7 });
|
|
|
|
await kanban.verifyStackOrder({
|
|
|
|
order: ["Uncategorized", "G", "PG", "PG-13", "R", "NC-17", "Test"],
|
|
|
|
});
|
|
|
|
|
|
|
|
// collapse stack
|
|
|
|
await kanban.verifyCollapseStackCount({ count: 0 });
|
|
|
|
await kanban.collapseStack({ index: 0 });
|
|
|
|
await kanban.verifyCollapseStackCount({ count: 1 });
|
|
|
|
await kanban.expandStack({ index: 0 });
|
|
|
|
await kanban.verifyCollapseStackCount({ count: 0 });
|
|
|
|
|
|
|
|
// add record to stack & verify
|
|
|
|
await toolbar.fields.hideAll();
|
|
|
|
await toolbar.fields.toggleShowSystemFields();
|
|
|
|
await toolbar.fields.toggle({ title: "LanguageId" });
|
|
|
|
await toolbar.fields.toggle({ title: "Title" });
|
|
|
|
await toolbar.sort.resetSort();
|
|
|
|
await toolbar.filter.resetFilter();
|
|
|
|
|
|
|
|
await kanban.addCard({ stackIndex: 6 });
|
|
|
|
await dashboard.expandedForm.fillField({
|
|
|
|
columnTitle: "Title",
|
|
|
|
value: "New record",
|
|
|
|
});
|
|
|
|
await dashboard.expandedForm.fillField({
|
|
|
|
columnTitle: "LanguageId",
|
|
|
|
value: "1",
|
|
|
|
});
|
|
|
|
// todo: Check why kanban doesnt reload the rows data
|
|
|
|
await dashboard.expandedForm.save({ waitForRowsData: false });
|
|
|
|
|
|
|
|
await kanban.verifyStackCount({ count: 7 });
|
|
|
|
await kanban.verifyStackOrder({
|
|
|
|
order: ["Uncategorized", "G", "PG", "PG-13", "R", "NC-17", "Test"],
|
|
|
|
});
|
|
|
|
await kanban.verifyCardCount({
|
|
|
|
count: [0, 25, 25, 25, 25, 25, 1],
|
|
|
|
});
|
|
|
|
|
|
|
|
// delete stack
|
|
|
|
await kanban.deleteStack({ index: 6 });
|
|
|
|
await dashboard.rootPage.waitForTimeout(1000);
|
|
|
|
await kanban.verifyStackCount({ count: 6 });
|
|
|
|
await kanban.verifyStackOrder({
|
|
|
|
order: ["Uncategorized", "G", "PG", "PG-13", "R", "NC-17"],
|
|
|
|
});
|
|
|
|
await kanban.verifyCardCount({
|
|
|
|
count: [1, 25, 25, 25, 25, 25],
|
|
|
|
});
|
|
|
|
});
|
|
|
|
});
|