import getElementTextByIndex from "../action/getElementTextByIndex";
import {PageConfigTypes} from "../../../custom-types/pageConfig-types";
import {CustomExpect} from "../../common-helpers/custom-expect";

export default async function (elementPosition: number = 0, pageConfig: PageConfigTypes, falseCase: boolean, expectedText: string, ignoreCaseCheck = false) {

    let elementTextByIndex = (await getElementTextByIndex(elementPosition, pageConfig));

    if (ignoreCaseCheck) {
        elementTextByIndex = expectedText.toLowerCase();
        expectedText = expectedText.toLowerCase();
    }

    if (falseCase) {
        CustomExpect.expectNotToContain(elementTextByIndex, expectedText, `Element "${pageConfig.pageId}.${pageConfig.elementKey}" at position "${elementPosition}" contains the text "${expectedText}"`);
    } else {
        CustomExpect.expectToContain(elementTextByIndex, expectedText, `Element "${pageConfig.pageId}.${pageConfig.elementKey}" at position "${elementPosition}" does not contain the text "${expectedText}", text found : "${elementTextByIndex}"`);
    }
};
