"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.expectComboboxValue = expectComboboxValue;
exports.expectMultiComboboxValues = expectMultiComboboxValues;
const test_1 = require("@playwright/test");
const timeouts_1 = require("../../../../timeouts");
const FormFieldValueUtils_1 = require("./FormFieldValueUtils");
/**
 * Проверяет отображаемое значение combobox (editable и notEditable).
 * Поднимается к mat-form-field, если локатор указывает на role=combobox.
 * @param field — локатор combobox или mat-form-field
 * @param expectedValue — ожидаемое значение (префикс `=` для exact)
 * @param options — опции assert (soft для bulk-проверок)
 */
async function expectComboboxValue(field, expectedValue, options) {
    const parsed = (0, FormFieldValueUtils_1.parseSelectValue)(expectedValue);
    const container = (0, FormFieldValueUtils_1.resolveComboboxValueContainer)(field);
    const assertion = options?.soft ? test_1.expect.soft : test_1.expect;
    if (parsed.exact) {
        await assertion(container.getByText(parsed.value, { exact: true })).toBeVisible({ timeout: (0, timeouts_1.getTimeouts)().EXPECT });
        return;
    }
    await assertion(container).toContainText(parsed.value, { timeout: (0, timeouts_1.getTimeouts)().EXPECT });
}
/**
 * Проверяет отображаемые значения multi-combobox.
 * @param field — локатор multi-combobox поля
 * @param expectedValues — ожидаемые отображаемые значения
 */
async function expectMultiComboboxValues(field, expectedValues) {
    for (const expectedValue of expectedValues) {
        await test_1.expect.soft(field).toContainText(expectedValue, { timeout: (0, timeouts_1.getTimeouts)().EXPECT });
    }
}
