Advertisement
djbob2000

Untitled

May 2nd, 2025
148
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import { UiTester } from "@fernir2/saas-kit/test/fd-test-ui-tester";
  2. import { LoginPo } from "./page-objects/staging-login-po";
  3. import { ListPo, TablePo, EditPo } from "@fernir2/saas-kit/fd-meta-tester-ui/page-objects";
  4. import { resourceNames } from "@fernir2/saas-kit/fd-toolbox/resources";
  5. import { MaterialUiTester } from "@fernir2/saas-kit/fd-meta-tester-ui/materials";
  6. import test, { Page } from "@playwright/test";
  7. import { personProps } from "@fernir2/saas-kit/dev/props";
  8. import { elementSuffixes } from "@fernir2/saas-kit/meta/constants";
  9. import { expect } from "@playwright/test";
  10.  
  11. const baseUrl = process.env["BASE_URL"] ?? "https://saas-kit-staging.fernir.biz";
  12.  
  13. const person = {
  14.     id: "2e300f29-11c8-4429-8f63-63b5d53348e4",
  15.     name: "EricTest",
  16.     age: 69,
  17.     imageUrl: "",
  18.     description: "This is a test description",
  19.     isMarried: false,
  20.     maritalStatus: 0,
  21.     workspaceId: "",
  22.     createdDate: new Date(),
  23.     favoriteNumber: 0,
  24.     hasKids: false,
  25.     areKidsVaccinated: false,
  26.     firstbornName: "",
  27.     education: "",
  28.     bio: "",
  29.     createdByUserId: "",
  30.     modifiedDate: new Date(),
  31.     modifiedByUserId: "",
  32. };
  33.  
  34. const personsTable = "#ResourceListPersonTable";
  35.  
  36. export async function assertInputValue(page: Page, propertyName: string, expectedValue: string) {
  37.     const elementId = propertyName + elementSuffixes.edit;
  38.     await expect(page.locator(`#${elementId}`)).toHaveValue(expectedValue);
  39. }
  40.  
  41. test("Edit person test", async ({ page }) => {
  42.     //Arrange
  43.     const uiTester = new UiTester(page);
  44.     const loginPo = new LoginPo(page);
  45.     const listPo = new ListPo(uiTester);
  46.     const tablePo = new TablePo(uiTester);
  47.     const materialUiTester = new MaterialUiTester(uiTester);
  48.     const editPo = new EditPo(uiTester, materialUiTester);
  49.     await loginPo.login();
  50.  
  51.     //Act
  52.  
  53.     await page.goto(`${baseUrl}/view?resource=Person`);
  54.     await page.waitForURL("**/view?resource=Person");
  55.  
  56.     await tablePo.clickEditButton(person.id);
  57.     await editPo.setInputValue(personProps.name, person.name);
  58.     await editPo.setInputValue(personProps.age, person.age.toString());
  59.     await editPo.clickBackButton(resourceNames.person);
  60.     await page.waitForURL("**/view?resource=Person");
  61.  
  62.     // const rowIndex = await tablePo.getResourceIndexByResourceId(person.id);
  63.     const row = page.locator(`${personsTable} [id^=\"ResourceListPersonTableRow\"]`, {
  64.        hasText: person.name,
  65.    });
  66.    await expect(row).toBeVisible();
  67.    await expect(row.locator("p", { hasText: `${person.name} Malone` })).toBeVisible();
  68. });
  69.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement