Skip to content

Commit

Permalink
test fuzzyness
Browse files Browse the repository at this point in the history
  • Loading branch information
Lukas742 committed Apr 25, 2024
1 parent b5dddbf commit 3e5f5f5
Show file tree
Hide file tree
Showing 2 changed files with 81 additions and 81 deletions.
4 changes: 0 additions & 4 deletions .github/workflows/test.yml
Expand Up @@ -15,11 +15,7 @@ jobs:
strategy:
matrix:
spec:
- base
- charts
- cypress-commands
- main/src/components
- main/src/internal
fail-fast: false

steps:
Expand Down
158 changes: 81 additions & 77 deletions packages/cypress-commands/test/UI5WebComponentsChild.cy.tsx
Expand Up @@ -192,90 +192,94 @@ describe('UI5 Web Components - Child Commands', () => {
cy.get('@select').should('have.been.calledTwice');
});

it('clickDropdownMenuItemByText', () => {
const selectItemText =
'This very long item should be selected by first focusing it and then pressing it. A focus is applied first, because otherwise it wouldnt be visible. Strangely, longer items tend to result in occasional test failures compared to smaller ones, which is why this item has this text.';
const changeSpy = cy.spy().as('change');
let callCounter = 1;
const components = [
<ComboBox key="ui5-combobox" onSelectionChange={changeSpy}>
{...new Array(30).fill(<ComboBoxItem text="Item" />)}
<ComboBoxItem text={selectItemText} />
</ComboBox>,
<MultiComboBox key="ui5-multi-combobox" onSelectionChange={changeSpy}>
{...new Array(30).fill(<MultiComboBoxItem text="Item" />)}
<MultiComboBoxItem text={selectItemText} />
</MultiComboBox>,
<Select key="ui5-select" onChange={changeSpy}>
{...new Array(30).fill(<Option>Item</Option>)}
<Option>{selectItemText}</Option>
</Select>
];
for (let i = 0; i < 20; i++) {
it('clickDropdownMenuItemByText', () => {
const selectItemText =
'This very long item should be selected by first focusing it and then pressing it. A focus is applied first, because otherwise it wouldnt be visible. Strangely, longer items tend to result in occasional test failures compared to smaller ones, which is why this item has this text.';
const changeSpy = cy.spy().as('change');
let callCounter = 1;
const components = [
<ComboBox key="ui5-combobox" onSelectionChange={changeSpy}>
{...new Array(30).fill(<ComboBoxItem text="Item" />)}
<ComboBoxItem text={selectItemText} />
</ComboBox>,
<MultiComboBox key="ui5-multi-combobox" onSelectionChange={changeSpy}>
{...new Array(30).fill(<MultiComboBoxItem text="Item" />)}
<MultiComboBoxItem text={selectItemText} />
</MultiComboBox>,
<Select key="ui5-select" onChange={changeSpy}>
{...new Array(30).fill(<Option>Item</Option>)}
<Option>{selectItemText}</Option>
</Select>
];

components.forEach((component) => {
cy.mount(component);
cy.get(`[${component.key}]`).openDropDownByClick();
cy.get(`[${component.key}]`).clickDropdownMenuItemByText(selectItemText);
components.forEach((component) => {
cy.mount(component);
cy.get(`[${component.key}]`).openDropDownByClick();
cy.get(`[${component.key}]`).clickDropdownMenuItemByText(selectItemText);

switch (component.key) {
case 'ui5-combobox':
cy.get(`[${component.key}]`).should('have.value', selectItemText);
break;
case 'ui5-multi-combobox':
cy.get(`[${component.key}]`).find('[ui5-token]').contains(selectItemText);
break;
case 'ui5-select':
cy.get(`[${component.key}]`).should('have.value', selectItemText);
break;
}
switch (component.key) {
case 'ui5-combobox':
cy.get(`[${component.key}]`).should('have.value', selectItemText);
break;
case 'ui5-multi-combobox':
cy.get(`[${component.key}]`).find('[ui5-token]').contains(selectItemText);
break;
case 'ui5-select':
cy.get(`[${component.key}]`).should('have.value', selectItemText);
break;
}

cy.get('@change').should('have.callCount', callCounter);
callCounter++;
cy.wait(200);
cy.get('@change').should('have.callCount', callCounter);
callCounter++;
cy.wait(200);
});
});
});
}

it('clickDropDownMenuItem', () => {
const selectItemText = 'Select me';
const changeSpy = cy.spy().as('change');
let callCounter = 1;
const components = [
// todo: activate cb test once `getDomRef` returns correct value: https://github.com/SAP/ui5-webcomponents/issues/8841
// <ComboBox key="ui5-combobox">
// {...new Array(5).fill(<ComboBoxItem text="Item" onSelectionChange={changeSpy}/>)}
// <ComboBoxItem text={selectItemText} data-testid="selectItem" />
// </ComboBox>,
<MultiComboBox key="ui5-multi-combobox" onSelectionChange={changeSpy}>
{...new Array(5).fill(<MultiComboBoxItem text="Item" />)}
<MultiComboBoxItem text={selectItemText} data-testid="selectItem" />
</MultiComboBox>,
<Select key="ui5-select" onChange={changeSpy}>
{...new Array(5).fill(<Option>Item</Option>)}
<Option data-testid="selectItem">{selectItemText}</Option>
</Select>
];
for (let i = 0; i < 20; i++) {
it.only('clickDropDownMenuItem', () => {

Check failure on line 241 in packages/cypress-commands/test/UI5WebComponentsChild.cy.tsx

View workflow job for this annotation

GitHub Actions / lint

it.only not permitted
const selectItemText = 'Select me';
const changeSpy = cy.spy().as('change');
let callCounter = 1;
const components = [
// todo: activate cb test once `getDomRef` returns correct value: https://github.com/SAP/ui5-webcomponents/issues/8841
// <ComboBox key="ui5-combobox">
// {...new Array(5).fill(<ComboBoxItem text="Item" onSelectionChange={changeSpy}/>)}
// <ComboBoxItem text={selectItemText} data-testid="selectItem" />
// </ComboBox>,
<MultiComboBox key="ui5-multi-combobox" onSelectionChange={changeSpy}>
{...new Array(5).fill(<MultiComboBoxItem text="Item" />)}
<MultiComboBoxItem text={selectItemText} data-testid="selectItem" />
</MultiComboBox>,
<Select key="ui5-select" onChange={changeSpy}>
{...new Array(5).fill(<Option>Item</Option>)}
<Option data-testid="selectItem">{selectItemText}</Option>
</Select>
];

components.forEach((component) => {
cy.mount(component);
cy.get(`[${component.key}]`).openDropDownByClick();
cy.get('[ui5-responsive-popover][open]').should('be.visible');
cy.get(`[data-testid="selectItem"]`).clickDropdownMenuItem();
components.forEach((component) => {
cy.mount(component);
cy.get(`[${component.key}]`).openDropDownByClick();
cy.get('[ui5-responsive-popover][open]').should('be.visible');
cy.get(`[data-testid="selectItem"]`).clickDropdownMenuItem();

switch (component.key) {
case 'ui5-combobox':
cy.get(`[${component.key}]`).should('have.value', selectItemText);
break;
case 'ui5-multi-combobox':
cy.get(`[${component.key}]`).find('[ui5-token]').contains(selectItemText);
break;
case 'ui5-select':
cy.get(`[${component.key}]`).should('have.value', selectItemText);
break;
}
switch (component.key) {
case 'ui5-combobox':
cy.get(`[${component.key}]`).should('have.value', selectItemText);
break;
case 'ui5-multi-combobox':
cy.get(`[${component.key}]`).find('[ui5-token]').contains(selectItemText);
break;
case 'ui5-select':
cy.get(`[${component.key}]`).should('have.value', selectItemText);
break;
}

cy.get('@change').should('have.callCount', callCounter);
callCounter++;
cy.wait(200);
cy.get('@change').should('have.callCount', callCounter);
callCounter++;
cy.wait(200);
});
});
});
}
});

0 comments on commit 3e5f5f5

Please sign in to comment.