• CMSnpm version

    • Overview
    • ContentBuilder
    • InviteUserForm
    • LoginForm
    • RenewPasswordForm
  • UInpm version

    • Overview
    • Accordion
    • AlertBubble
    • AnnouncementBar
    • Avatar
    • AvatarFileInput
    • Badge
    • Button
    • ButtonGroup
    • ButtonList
    • Calendar
    • Checkbox
    • CheckboxButton
    • CheckboxInput
    • CheckboxList
    • Chip
    • ColorRadio
    • ColorRadioGroup
    • Combobox
    • DatePicker
    • DatePickerInput
    • DateRangePicker
    • DateRangePickerInput
    • DatetimePicker
    • DatetimePickerInput
    • Dialog
    • Dropdown
    • Dropzone
    • ErrorMessage
    • FileInput
    • FlashMessages
    • FormComponent
    • Icon
    • IconButton
    • ImageGallery
    • InfoBox
    • Input
    • Label
    • Layout
    • Lightbox
    • ListItem
    • Loader
    • Lozenge
    • Menu
    • Message
    • Modal
    • ✅ ModalDialog
    • ✅ ModalHeader
    • MultiCombobox
    • MultiSelect
    • Pagination
    • Paper
    • Popover
    • Radio
    • RadioGroup
    • RasterImage
    • Select
    • ✅ Tabs
    • TextInput
    • TextLink
    • Textarea
    • TimePicker
    • TimePickerInput
    • Toggle
    • Tooltip
    • Typography
  • Formnpm version

    • Overview
    • AvatarFileInput
    • CheckboxButton
    • CheckboxInput
    • CheckboxList
    • ColorRadioGroup
    • Combobox
    • DatePickerInput
    • DateRangePickerInput
    • DatetimePickerInput
    • Dropzone
    • FileInput
    • Form
    • FormRenderer
    • GpsInput
    • MoneyInput
    • MultiCombobox
    • MultiSelect
    • NumberInput
    • PasswordInput
    • RadioGroup
    • Select
    • TextInput
    • Textarea
    • TimePickerInput
    • Toggle
  • DataGridnpm version

    • Overview
    • DataGrid
    • DataGridCustomExample
    • ExportButton
    • FilterList
    • Filters
    • FiltersButton
    • FulltextInput
    • HiddenColumns
    • HiddenColumnsButton
    • Pagination
    • RowCounts
    • RowsPerPageSelect
    • SelectedRowsToolbar
    • TableV2
    • ToolbarControl
    • ToolbarCustoms
    • ToolbarTabs
  • Wysiwygnpm version

    • Overview
  • Resizernpm version

    • Overview
  • Routernpm version

    • Overview
  • Corenpm version

    • Overview
  • Core-Reactnpm version

    • Overview
  • Stylesnpm version

    • Overview
  • Localizenpm version

    • Overview
  • Analyticsnpm version

    • Overview
  • Datepickernpm version

    • Overview
  • Icons-generatornpm version

    • Overview
  • Smart-addressnpm version

    • Overview
  • E2Enpm version

    • Overview
  • E2E-Playwrightnpm version

    • Overview

@uxf/e2e-playwright

Playwright helper classes a factory funkce pro testování UXF komponent.

npm install @uxf/e2e-playwright

Použití

Všechny helpery se vytváří přes createUi(page), které vrací objekt se všemi factory funkcemi:

import { createUi } from "@uxf/e2e-playwright";

test("example", async ({ page }) => {
  const ui = createUi(page);

  await ui.textInput({ $name: "username" }).change("john");
  await ui.button({ text: "Uložit" }).click();
  await ui.flashMessages().shouldExistMessage("Uloženo");
});

Přehled helperů

UI helpery

HelperPopis
buttonKliknutí na tlačítko
flashMessagesOvěření flash zpráv
h1Ověření nadpisu stránky

Formulářové helpery

HelperTyp hodnotyPopis
checkboxInputbooleanCheckbox
comboboxstringVyhledávací combobox
datePickerInputDateVýběr data
datetimePickerInputDateVýběr data a času
dropzonestring[]Upload souborů
multiComboboxstring[]Vícenásobný vyhledávací combobox
multiSelectstring[]Vícenásobný dropdown select
radioGroupstringRadio skupina
selectstringDropdown select
textareastringVíceřádkový textový vstup
textInputstringTextový vstup
timePickerInput`${number}:${number}`Výběr času
togglebooleanToggle/switch

Data Grid helpery

HelperPopis
dataGridTableInterakce s data grid tabulkou

UI helpery

UI helpery slouží pro interakci s obecnými prvky stránky (tlačítka, nadpisy, flash zprávy).


button

Klikne na tlačítko podle textu.

ui.button({ text: "Uložit" }).click();
ui.button({ text: "Smazat", nth: 1 }).click(); // druhé tlačítko se stejným textem
FinderTypPopis
textstringText tlačítka
nth?numberIndex při více tlačítkách se stejným textem (výchozí: 0)
parent?LocatorVolitelný rodičovský locator
MetodaParametrPopis
click()—Klikne na tlačítko
shouldExist()—Ověří, že tlačítko je viditelné
shouldNotExist()—Ověří, že tlačítko není viditelné

flashMessages

Ověří přítomnost flash zprávy na stránce.

ui.flashMessages().shouldExistMessage("Záznam byl úspěšně uložen");
MetodaParametrPopis
shouldExistMessage(text)stringOvěří, že se zobrazila flash zpráva s daným textem
shouldExist()—Ověří, že je kontejner flash zpráv viditelný
shouldNotExist()—Ověří, že kontejner flash zpráv není viditelný

h1

Ověří text nadpisu <h1> na stránce. Porovnání je přesná shoda (case-insensitive).

ui.h1().shouldHaveText("Přehled uživatelů");
MetodaParametrPopis
shouldHaveText(text)stringOvěří, že <h1> přesně odpovídá danému textu (case-insensitive)
shouldExist()—Ověří, že <h1> je viditelný
shouldNotExist()—Ověří, že <h1> není viditelný

Formulářové helpery

Formulářové helpery jsou komponentám lokalizovány přes data-component a data-name atributy. Všechny vyžadují finder s polem $name (hodnota atributu data-name).

Všechny formulářové helpery dědí z FormComponentModel a mají:

  • change(value) — nastaví hodnotu komponenty
  • shouldExist() — ověří, že komponenta je viditelná
  • shouldNotExist() — ověří, že komponenta není viditelná
  • shouldBeInvalid() — ověří, že komponenta má třídu IS_INVALID

checkboxInput

Ovládá checkbox — přepne stav pokud neodpovídá požadované hodnotě.

ui.checkboxInput({ $name: "agree" }).change(true);
FinderTypPopis
$namestringHodnota atributu data-name
MetodaParametrPopis
change(value)booleanNastaví checkbox na požadovaný stav

combobox

Vyplní vyhledávací vstup a vybere první odpovídající položku z dropdownu.

ui.combobox({ $name: "city" }).change("Praha");
FinderTypPopis
$namestringHodnota atributu data-name
MetodaParametrPopis
change(value)stringVyplní vstup a vybere odpovídající položku

datePickerInput

Vyplní vstup pro výběr data. Hodnota se formátuje jako DD.MM.YYYY.

ui.datePickerInput({ $name: "birthDate" }).change(new Date("1990-05-15"));
FinderTypPopis
$namestringHodnota atributu data-name
MetodaParametrPopis
change(value)DateVyplní vstup datem ve formátu DD.MM.YYYY

datetimePickerInput

Vyplní vstup pro výběr data a času. Hodnota se formátuje jako DD.MM.YYYY HH:mm:ss.

ui.datetimePickerInput({ $name: "scheduledAt" }).change(new Date("2025-01-15T14:30:00"));
FinderTypPopis
$namestringHodnota atributu data-name
MetodaParametrPopis
change(value)DateVyplní vstup datem a časem ve formátu DD.MM.YYYY HH:mm:ss

dropzone

Nahraje soubory do dropzone komponenty a počká na potvrzení úspěšného nahrání (data-state="OK").

ui.dropzone({ $name: "avatar" }).change(["path/to/image.png"]);
FinderTypPopis
$namestringHodnota atributu data-name
MetodaParametrPopis
change(value)string[]Nastaví soubory na file input a ověří úspěšné nahrání

multiCombobox

Vyplní vyhledávací vstup a vybere více položek z dropdownu.

ui.multiCombobox({ $name: "skills" }).change(["JavaScript", "CSS"]);
FinderTypPopis
$namestringHodnota atributu data-name
MetodaParametrPopis
change(value)string[]Pro každou hodnotu vyplní vstup a vybere odpovídající položku

multiSelect

Otevře dropdown a vybere více možností podle textu.

ui.multiSelect({ $name: "tags" }).change(["React", "TypeScript"]);
FinderTypPopis
$namestringHodnota atributu data-name
MetodaParametrPopis
change(value)string[]Vybere všechny zadané možnosti

radioGroup

Vybere radio button s odpovídajícím textem.

ui.radioGroup({ $name: "gender" }).change("Muž");
FinderTypPopis
$namestringHodnota atributu data-name
MetodaParametrPopis
change(value)stringKlikne na radio option s odpovídajícím textem

select

Otevře dropdown a vybere možnost podle textu.

ui.select({ $name: "country" }).change("Česká republika");
FinderTypPopis
$namestringHodnota atributu data-name
MetodaParametrPopis
change(value)stringVybere možnost s odpovídajícím textem

textarea

Vyplní textarea.

ui.textarea({ $name: "description" }).change("Popis...");
FinderTypPopis
$namestringHodnota atributu data-name
MetodaParametrPopis
change(value)stringVyplní textarea hodnotou

textInput

Vyplní textový vstup.

ui.textInput({ $name: "email" }).change("test@example.com");
FinderTypPopis
$namestringHodnota atributu data-name
MetodaParametrPopis
change(value)stringVyplní vstup hodnotou
getValue()—Vrátí aktuální hodnotu vstupu

timePickerInput

Vyplní vstup pro výběr času. Hodnota musí být ve formátu HH:MM.

ui.timePickerInput({ $name: "startTime" }).change("09:30");
FinderTypPopis
$namestringHodnota atributu data-name
MetodaParametrPopis
change(value)`${number}:${number}`Vyplní vstup časem ve formátu HH:MM

toggle

Ovládá toggle/switch — přepne stav pokud neodpovídá požadované hodnotě.

ui.toggle({ $name: "notifications" }).change(true);
FinderTypPopis
$namestringHodnota atributu data-name
MetodaParametrPopis
change(value)booleanNastaví toggle na požadovaný stav

Data Grid helpery


dataGridTable

Interaguje s data grid tabulkou — zjišťuje počet řádků a ověřuje obsah buněk.

const table = ui.dataGridTable({});

await table.getRowCount(); // vrátí počet řádků
await table.shouldHaveCellValue({ column: "Jméno", content: "Jan Novák" });
await table.shouldHaveCellValue({ column: "Jméno", content: "Jana Nováková", row: 1 });
FinderTypPopis
nth?numberIndex při více tabulkách na stránce (výchozí: 0)
parent?LocatorVolitelný rodičovský locator
MetodaParametrPopis
getRowCount()—Vrátí počet řádků v těle tabulky
shouldHaveCellValue(data)viz nížeOvěří hodnotu buňky
shouldExist()—Ověří, že tabulka je viditelná
shouldNotExist()—Ověří, že tabulka není viditelná

Parametry shouldHaveCellValue:

PoleTypPopis
contentstringOčekávaný text buňky
columnnumber | stringIndex sloupce nebo text záhlaví
row?numberIndex řádku (výchozí: 0)

Poznámka: Při použití číselného indexu sloupce se počítají i sloupce s checkboxem a akcemi.