You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I'm starting to use Cypress and the harness devkit because of the deprecation of Protractor. I'm currently facing the following issue when invoking methods on a harness.
This is my test:
`describe('Test with harness', () => {
before(() => {
cy.login()
});
it('should go to the properties page', () => {
cy.visit('/admin/content-properties').then(() => {
cy.wait(6000);
});
})
it('should click a menu item but fails', () => {
const list = getHarness(ItemMenuComponentHarness);
list.getItems({label: 'Category'})[0].clickOnItem();
})
it('should click a menu item and succeeds', () => {
const item = getHarness(ItemMenuItemComponentHarness.with({label: 'Category'}));
item.clickOnItem();
})
it('should select a tab but fails', () => {
const tab = getHarness(MatTabHarness.with({label: 'Type specific settings'}));
tab.select();
})
it('should select a tab and succeeds with the use of pipe', () => {
const tab = getHarness(MatTabHarness.with({label: 'Type specific settings'}));
tab.pipe(t => t.select());
})
})`
There are 2 cases in which the method is not working the way I would expect.
The first case is when i'm getting a harness, invoke a method on it (getItems) and on that result I also invoke a method. This throws an error:
If I use the same method directly on the harness (2nd test case) it works as expected.
The second case is when the method is also a cypress method like click or select. I get this error:
In both cases I can use pipe to make it work, but I would be better if it just works without also.
The text was updated successfully, but these errors were encountered:
Hi @Heines1983, sorry for responding so late.
Concerning your first issue, this is actually related to the fact that you are using a synchronous access [0] on getItems() return value... while the return value is not an array. It's a cypress wrapper.
I've got to check this but this could work with .eq(0) instead of [0].
Otherwise, you can use the pipe method to chain operations.
Concerning the second issue, Cypress methods gain precendency so you have a collision between cypress's select and the harness's select. Could you try replacing select with .invoke('select') or simply .pipe(el => el.select()) as the previous issue.
I'm starting to use Cypress and the harness devkit because of the deprecation of Protractor. I'm currently facing the following issue when invoking methods on a harness.
This is my test:
`describe('Test with harness', () => {
it('should select a tab but fails', () => {
})`
There are 2 cases in which the method is not working the way I would expect.
The first case is when i'm getting a harness, invoke a method on it (getItems) and on that result I also invoke a method. This throws an error:
If I use the same method directly on the harness (2nd test case) it works as expected.
The second case is when the method is also a cypress method like click or select. I get this error:
In both cases I can use pipe to make it work, but I would be better if it just works without also.
The text was updated successfully, but these errors were encountered: