UNPKG

playwright-fluent

Version:
64 lines (63 loc) 3.06 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.expectThatSelectorIsVisibleInViewport = exports.isVisibleInViewport = void 0; const tslib_1 = require("tslib"); const utils_1 = require("../../utils"); const action = tslib_1.__importStar(require("../../actions")); const fluent_api_1 = require("../../fluent-api"); async function isVisibleInViewport(selector, page, options = utils_1.defaultWaitUntilOptions) { const waitOptions = { ...utils_1.defaultWaitUntilOptions, ...options, }; if (typeof selector === 'string') { const result = await action.isSelectorVisibleInViewport(selector, page, waitOptions); return result; } { const result = await action.isSelectorObjectVisibleInViewport(selector, page, waitOptions); return result; } } exports.isVisibleInViewport = isVisibleInViewport; async function expectThatCssSelectorIsVisibleInViewport(selector, page, options = fluent_api_1.defaultAssertOptions) { const waitOptions = { ...utils_1.defaultWaitUntilOptions, ...fluent_api_1.defaultAssertOptions, ...options, throwOnTimeout: true, }; await (0, utils_1.waitUntil)(() => isVisibleInViewport(selector, page, utils_1.noWaitNoThrowOptions), async () => { const exists = await action.exists(selector, page); if (!exists) { return `Selector '${selector}' was not found in DOM.`; } return `Selector '${selector}' is not visible. Either this selector is hidden or is outside of the current viewport. In that case you should hover over it before the assert, or you should use the assertion 'isVisible()' instead of 'isVisibleInViewport'.`; }, waitOptions); } async function expectThatSelectorObjectIsVisibleInViewport(selector, page, options = fluent_api_1.defaultAssertOptions) { const waitOptions = { ...utils_1.defaultWaitUntilOptions, ...fluent_api_1.defaultAssertOptions, ...options, throwOnTimeout: true, }; await (0, utils_1.waitUntil)(() => isVisibleInViewport(selector, page, utils_1.noWaitNoThrowOptions), async () => { const exists = await selector.exists(); if (!exists) { return `Selector '${selector.toString()}' was not found in DOM.`; } return `Selector '${selector.toString()}' is not visible. Either this selector is hidden or is outside of the current viewport. In that case you should hover over it before the assert, or you should use the assertion 'isVisible()' instead of 'isVisibleInViewport'.`; }, waitOptions); } async function expectThatSelectorIsVisibleInViewport(selector, page, options = fluent_api_1.defaultAssertOptions) { if (typeof selector === 'string') { return await expectThatCssSelectorIsVisibleInViewport(selector, page, options); } return await expectThatSelectorObjectIsVisibleInViewport(selector, page, options); } exports.expectThatSelectorIsVisibleInViewport = expectThatSelectorIsVisibleInViewport;