UNPKG

playwright-fluent

Version:
187 lines (186 loc) 7.41 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const tslib_1 = require("tslib"); const path = tslib_1.__importStar(require("path")); const SUT = tslib_1.__importStar(require("../../playwright-fluent")); const utils_1 = require("../../../utils"); describe('Playwright Fluent - expectThat isVisible in viewport', () => { let p; beforeEach(() => { p = new SUT.PlaywrightFluent(); }); afterEach(async () => { await p.close(); }); test('should give back an error when selector does not exists', async () => { // Given const url = `file:${path.join(__dirname, 'expect-is-visible-in-viewport.test.html')}`; const selector = 'foobar'; // When let result = undefined; try { await p .withBrowser('chromium') .withOptions({ headless: false }) .withCursor() .navigateTo(url) .expectThatSelector(selector) .isVisibleInViewport({ timeoutInMilliseconds: 2000 }); } catch (error) { result = error; } // Then expect(result && result.message).toContain("Selector 'foobar' was not found in DOM."); }); test('should give back an error when selector object does not exists', async () => { // Given const url = `file:${path.join(__dirname, 'expect-is-visible-in-viewport.test.html')}`; const selector = p.selector('foobar'); // When let result = undefined; try { await p .withBrowser('chromium') .withOptions({ headless: false }) .withCursor() .navigateTo(url) .expectThatSelector(selector) .isVisibleInViewport({ timeoutInMilliseconds: 2000 }); } catch (error) { result = error; } // Then expect(result && result.message).toContain("Selector 'selector(foobar)' was not found in DOM."); }); test('should wait until selector exists and is visible in the viweport - chromium', async () => { // Given const url = `file:${path.join(__dirname, 'expect-is-visible-in-viewport.test.html')}`; const selector = '#dynamically-added-paragraph'; // When await p .withBrowser('chromium') .withOptions({ headless: false }) .withCursor() .navigateTo(url) .expectThatSelector(selector) .isVisibleInViewport(); // Then const isVisible = await p.isVisibleInViewport(selector, utils_1.noWaitNoThrowOptions); expect(isVisible).toBe(true); }); test('should wait until selector object exists and is visible - chromium', async () => { // Given const url = `file:${path.join(__dirname, 'expect-is-visible-in-viewport.test.html')}`; const selector = p.selector('p').withText('dynamically added'); // When await p .withBrowser('chromium') .withOptions({ headless: false }) .withCursor() .navigateTo(url) .expectThatSelector(selector) .isVisibleInViewport(); // Then const isVisible = await p.isVisibleInViewport(selector, utils_1.noWaitNoThrowOptions); expect(isVisible).toBe(true); }); test('should give back an error when selector is hidden - chromium', async () => { // Given const url = `file:${path.join(__dirname, 'expect-is-visible-in-viewport.test.html')}`; const selector = '#hidden'; // When let result = undefined; try { await p .withBrowser('chromium') .withOptions({ headless: false }) .withCursor() .navigateTo(url) .expectThatSelector(selector) .isVisibleInViewport({ timeoutInMilliseconds: 2000 }); } catch (error) { result = error; } // Then const isVisible = await p.isVisibleInViewport(selector, utils_1.noWaitNoThrowOptions); expect(isVisible).toBe(false); expect(result && result.message).toContain("Selector '#hidden' is not visible."); }); test('should give back an error when selector object is hidden - chromium', async () => { // Given const url = `file:${path.join(__dirname, 'expect-is-visible-in-viewport.test.html')}`; const selector = p.selector('p').withText('I am hidden'); // When let result = undefined; try { await p .withBrowser('chromium') .withOptions({ headless: false }) .withCursor() .navigateTo(url) .expectThatSelector(selector) .isVisibleInViewport({ timeoutInMilliseconds: 2000 }); } catch (error) { result = error; } // Then const isVisible = await p.isVisibleInViewport(selector, utils_1.noWaitNoThrowOptions); expect(isVisible).toBe(false); const expectedMessage = `selector(p) .withText(I am hidden)' is not visible.`; expect(result && result.message).toContain(expectedMessage); }); test('should give back an error when selector is out of the viewport - chromium', async () => { // Given const url = `file:${path.join(__dirname, 'expect-is-visible-in-viewport.test.html')}`; const selector = '#out-of-viewport'; // When let result = undefined; try { await p .withBrowser('chromium') .withOptions({ headless: false }) .withCursor() .navigateTo(url) .expectThatSelector(selector) .isVisibleInViewport({ timeoutInMilliseconds: 2000 }); } catch (error) { result = error; } // Then const isVisible = await p.isVisibleInViewport(selector, utils_1.noWaitNoThrowOptions); expect(isVisible).toBe(false); expect(result && result.message).toContain("Selector '#out-of-viewport' is not visible."); }); test('should give back an error when selector object is out of the viewport - chromium', async () => { // Given const url = `file:${path.join(__dirname, 'expect-is-visible-in-viewport.test.html')}`; const selector = p.selector('p').withText('I am out of viewport'); // When let result = undefined; try { await p .withBrowser('chromium') .withOptions({ headless: false }) .withCursor() .navigateTo(url) .expectThatSelector(selector) .isVisibleInViewport({ timeoutInMilliseconds: 2000 }); } catch (error) { result = error; } // Then const isVisible = await p.isVisibleInViewport(selector, utils_1.noWaitNoThrowOptions); expect(isVisible).toBe(false); const expectedMessage = `selector(p) .withText(I am out of viewport)' is not visible. Either this selector is hidden or is outside of the current viewport.`; expect(result && result.message).toContain(expectedMessage); }); });