diff --git a/packages/core/src/components/tabs/test/basic/e2e.js b/packages/core/src/components/tabs/test/basic/e2e.js index 5c2a423853..6d9336dd52 100644 --- a/packages/core/src/components/tabs/test/basic/e2e.js +++ b/packages/core/src/components/tabs/test/basic/e2e.js @@ -15,5 +15,40 @@ platforms.forEach(platform => { const page = new E2ETestPage(driver, platform); return page.navigate(); }); + + register('should check each tab', async (driver, testContext) => { + testContext.timeout(60000); + const page = new E2ETestPage(driver, platform); + + await waitForTransition(300); + + const tabTwoButton = await waitAndGetElementById(driver, 'tab-t-0-1'); + tabTwoButton.click(); + await waitForTransition(600); + + const tabThreeButton = await waitAndGetElementById(driver, 'tab-t-0-2'); + tabThreeButton.click(); + await waitForTransition(600); + }); }); }); + +async function waitAndGetElement(driver, selector) { + driver.wait(until.elementLocated(By.css(selector))); + const element = driver.findElement(By.css(selector)); + await driver.wait(until.elementIsVisible(driver.findElement(By.css(selector)))); + return element; +} + +async function waitAndGetElementById(driver, selector) { + driver.wait(until.elementLocated(By.id(selector))); + const element = driver.findElement(By.id(selector)); + await driver.wait(until.elementIsVisible(driver.findElement(By.id(selector)))); + return element; +} + +function waitForTransition(duration) { + return new Promise(resolve => { + setTimeout(resolve, duration); + }) +} \ No newline at end of file diff --git a/packages/core/src/components/tabs/test/vanilla/e2e.js b/packages/core/src/components/tabs/test/vanilla/e2e.js index f2580835ce..4818fe37ba 100644 --- a/packages/core/src/components/tabs/test/vanilla/e2e.js +++ b/packages/core/src/components/tabs/test/vanilla/e2e.js @@ -15,5 +15,40 @@ platforms.forEach(platform => { const page = new E2ETestPage(driver, platform); return page.navigate(); }); + + register('should check each tab', async (driver, testContext) => { + testContext.timeout(60000); + const page = new E2ETestPage(driver, platform); + + await waitForTransition(300); + + const tabTwoButton = await waitAndGetElementById(driver, 'tab-t-0-1'); + tabTwoButton.click(); + await waitForTransition(600); + + const tabThreeButton = await waitAndGetElementById(driver, 'tab-t-0-2'); + tabThreeButton.click(); + await waitForTransition(600); + }); }); }); + +async function waitAndGetElement(driver, selector) { + driver.wait(until.elementLocated(By.css(selector))); + const element = driver.findElement(By.css(selector)); + await driver.wait(until.elementIsVisible(driver.findElement(By.css(selector)))); + return element; +} + +async function waitAndGetElementById(driver, selector) { + driver.wait(until.elementLocated(By.id(selector))); + const element = driver.findElement(By.id(selector)); + await driver.wait(until.elementIsVisible(driver.findElement(By.id(selector)))); + return element; +} + +function waitForTransition(duration) { + return new Promise(resolve => { + setTimeout(resolve, duration); + }) +} \ No newline at end of file