import 'codeceptjs'; import { logger } from "../Logger/logger"; import { DewLoader } from "./dewLoader"; import { CommonKeyword } from './commonKeyword'; import { DewElement } from './element'; /** * Sort column class */ export class SortColumn { /** * Filter Column in listing Grid in ascending order * * ```js * SortColumn.filterByAscending("Status"); * ``` * * @param {String} columnname // Column Name you want to filter * */ static async filterByAscending(columnname: string) { try { await CommonKeyword.clickElement(`.//dew-row[not(@hidden)]/dew-col/span[contains(text(),'${columnname}')]/following-sibling::dew-icon | .//dew-row[not(@hidden)]/dew-col/span[contains(text(),'${columnname}')]/following-sibling::img | .//dew-row[not(@hidden)]/dew-col/span[contains(text(),'${columnname}')]/following-sibling::div/img`); await DewLoader.waitForSpinner(); let numOfElements = await DewElement.grabNumberOfVisibleElements(`.//dew-row[not(@hidden)]/dew-col/span[contains(text(),'${columnname}')]/following-sibling::img[contains(@alt,'ascending')] | .//dew-row[not(@hidden)]/dew-col/span[contains(text(),'${columnname}')]/following-sibling::div/img[contains(@alt,'ascending')]`); logger.info(numOfElements); while (numOfElements <= 0) { await CommonKeyword.clickElement(`.//dew-row[not(@hidden)]/dew-col/span[contains(text(),'${columnname}')]/following-sibling::img | .//dew-row[not(@hidden)]/dew-col/span[contains(text(),'${columnname}')]/following-sibling::dew-icon | .//dew-row[not(@hidden)]/dew-col/span[contains(text(),'${columnname}')]/following-sibling::div/img`); await DewLoader.waitForSpinner(); numOfElements = await DewElement.grabNumberOfVisibleElements(`.//dew-row[not(@hidden)]/dew-col/span[contains(text(),'${columnname}')]/following-sibling::img[contains(@alt,'ascending')] | .//dew-row[not(@hidden)]/dew-col/span[contains(text(),'${columnname}')]/following-sibling::div/img[contains(@alt,'ascending')]`); logger.info(numOfElements); } await DewElement.verifyIfISeeElement(`.//dew-row[not(@hidden)]/dew-col/span[contains(text(),'${columnname}')]/following-sibling::img[contains(@alt,'ascending')] | .//dew-row[not(@hidden)]/dew-col/span[contains(text(),'${columnname}')]/following-sibling::div/img[contains(@alt,'ascending')]`); } catch (error) { logger.log(`Issue while performing operation in DDCC: Error while filtering column by ascending order`); throw error; } } /** * Filter Column in listing Grid in descending order * * ```js * SortColumn.filterByDescending("Status"); * ``` * * @param {String} columnname // Column Name you want to filter * */ static async filterByDescending(columnname: string) { try { await CommonKeyword.clickElement(`.//dew-row[not(@hidden)]/dew-col/span[contains(text(),'${columnname}')]/following-sibling::dew-icon | .//dew-row[not(@hidden)]/dew-col/span[contains(text(),'${columnname}')]/following-sibling::img | .//dew-row[not(@hidden)]/dew-col/span[contains(text(),'${columnname}')]/following-sibling::div/img`); await DewLoader.waitForSpinner(); let numOfElements = await DewElement.grabNumberOfVisibleElements(`.//dew-row[not(@hidden)]/dew-col/span[contains(text(),'${columnname}')]/following-sibling::img[contains(@alt,'descending')] | .//dew-row[not(@hidden)]/dew-col/span[contains(text(),'${columnname}')]/following-sibling::div/img[contains(@alt,'descending')]`); logger.info(numOfElements); while (numOfElements <= 0) { await CommonKeyword.clickElement(`.//dew-row[not(@hidden)]/dew-col/span[contains(text(),'${columnname}')]/following-sibling::img | .//dew-row[not(@hidden)]/dew-col/span[contains(text(),'${columnname}')]/following-sibling::dew-icon | .//dew-row[not(@hidden)]/dew-col/span[contains(text(),'${columnname}')]/following-sibling::div/img`); await DewLoader.waitForSpinner(); numOfElements = await DewElement.grabNumberOfVisibleElements(`.//dew-row[not(@hidden)]/dew-col/span[contains(text(),'${columnname}')]/following-sibling::img[contains(@alt,'descending')] | .//dew-row[not(@hidden)]/dew-col/span[contains(text(),'${columnname}')]/following-sibling::div/img[contains(@alt,'descending')]`); logger.info(numOfElements); } await DewElement.verifyIfISeeElement(`.//dew-row[not(@hidden)]/dew-col/span[contains(text(),'${columnname}')]/following-sibling::img[contains(@alt,'descending')] | .//dew-row[not(@hidden)]/dew-col/span[contains(text(),'${columnname}')]/following-sibling::div/img[contains(@alt,'descending')]`); } catch (error) { logger.log(`Issue while performing operation in DDCC: Error while filtering column by descending order`); throw error; } } }