{"version":3,"file":"skyux-help-inline-testing.mjs","sources":["../../../../../libs/components/help-inline/testing/src/modules/help-inline/help-inline-harness.ts","../../../../../libs/components/help-inline/testing/src/skyux-help-inline-testing.ts"],"sourcesContent":["import { HarnessPredicate } from '@angular/cdk/testing';\nimport { SkyComponentHarness } from '@skyux/core/testing';\nimport {\n  SkyPopoverContentHarness,\n  SkyPopoverHarness,\n} from '@skyux/popovers/testing';\n\nimport { SkyHelpInlineHarnessFilters } from './help-inline-harness.filters';\n\n/**\n * Harness for interacting with a help inline button component in tests.\n */\nexport class SkyHelpInlineHarness extends SkyComponentHarness {\n  /**\n   * @internal\n   */\n  public static hostSelector = 'sky-help-inline';\n\n  #getInlineHelpButton = this.locatorFor('.sky-help-inline');\n\n  /**\n   * Gets a `HarnessPredicate` that can be used to search for a\n   * `SkyHelpInlineHarness` that meets certain criteria.\n   */\n  public static with(\n    filters: SkyHelpInlineHarnessFilters,\n  ): HarnessPredicate<SkyHelpInlineHarness> {\n    return SkyHelpInlineHarness.getDataSkyIdPredicate(filters);\n  }\n\n  /**\n   * Clicks the help inline button.\n   */\n  public async click(): Promise<void> {\n    const button = await this.#getInlineHelpButton();\n\n    if (await button.hasClass('sky-help-inline-hidden')) {\n      throw new Error(\n        'Unable to click the help inline button because it is hidden.',\n      );\n    }\n\n    await button.click();\n  }\n\n  /**\n   * Gets the `aria-controls` value.\n   */\n  public async getAriaControls(): Promise<string | null> {\n    return await (\n      await this.#getInlineHelpButton()\n    ).getAttribute('aria-controls');\n  }\n\n  /**\n   * Gets the `aria-expanded` value.\n   */\n  public async getAriaExpanded(): Promise<boolean> {\n    if ((await this.getAriaControls()) === null) {\n      throw new Error('aria-expanded is only set when `ariaControls` is set.');\n    }\n\n    return (\n      (await (\n        await this.#getInlineHelpButton()\n      ).getAttribute('aria-expanded')) === 'true'\n    );\n  }\n\n  /**\n   * Gets the `aria-label` value.\n   */\n  public async getAriaLabel(): Promise<string | null> {\n    return await (await this.#getInlineHelpButton()).getAttribute('aria-label');\n  }\n\n  /**\n   * Gets the `aria-labelledby` value.\n   * @internal\n   */\n  public async getAriaLabelledBy(): Promise<string | null> {\n    return await (await this.#getInlineHelpButton())\n      .getAttribute('aria-labelledby')\n      .then((ref) => {\n        if (ref) {\n          // Remove the 'aria-labelledby' prefix id.\n          return ref.substring(ref.indexOf(' ') + 1);\n        }\n        return null;\n      });\n  }\n\n  /**\n   * Gets the label text.\n   */\n  public async getLabelText(): Promise<string | undefined> {\n    const ariaLabel = await this.getAriaLabel();\n\n    if (ariaLabel?.startsWith('Show help content ')) {\n      return ariaLabel.replace('Show help content for ', '');\n    }\n\n    return undefined;\n  }\n\n  /**\n   * Gets the help popover content.\n   */\n  public async getPopoverContent(): Promise<string | undefined> {\n    return await (await this.#getPopoverHarnessContent())?.getBodyText();\n  }\n\n  /**\n   * Gets the help popover title.\n   */\n  public async getPopoverTitle(): Promise<string | undefined> {\n    return await (await this.#getPopoverHarnessContent())?.getTitleText();\n  }\n\n  async #getPopoverHarnessContent(): Promise<\n    SkyPopoverContentHarness | undefined\n  > {\n    return await (\n      await this.locatorForOptional(SkyPopoverHarness)()\n    )?.getPopoverContent();\n  }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;AASA;;AAEG;AACG,MAAO,oBAAqB,SAAQ,mBAAmB,CAAA;AAC3D;;AAEG;aACW,IAAA,CAAA,YAAY,GAAG,iBAAiB,CAAC;AAE/C,IAAA,oBAAoB,GAAG,IAAI,CAAC,UAAU,CAAC,kBAAkB,CAAC;AAE1D;;;AAGG;IACI,OAAO,IAAI,CAChB,OAAoC,EAAA;AAEpC,QAAA,OAAO,oBAAoB,CAAC,qBAAqB,CAAC,OAAO,CAAC;IAC5D;AAEA;;AAEG;AACI,IAAA,MAAM,KAAK,GAAA;AAChB,QAAA,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,oBAAoB,EAAE;QAEhD,IAAI,MAAM,MAAM,CAAC,QAAQ,CAAC,wBAAwB,CAAC,EAAE;AACnD,YAAA,MAAM,IAAI,KAAK,CACb,8DAA8D,CAC/D;QACH;AAEA,QAAA,MAAM,MAAM,CAAC,KAAK,EAAE;IACtB;AAEA;;AAEG;AACI,IAAA,MAAM,eAAe,GAAA;AAC1B,QAAA,OAAO,MAAM,CACX,MAAM,IAAI,CAAC,oBAAoB,EAAE,EACjC,YAAY,CAAC,eAAe,CAAC;IACjC;AAEA;;AAEG;AACI,IAAA,MAAM,eAAe,GAAA;QAC1B,IAAI,CAAC,MAAM,IAAI,CAAC,eAAe,EAAE,MAAM,IAAI,EAAE;AAC3C,YAAA,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC;QAC1E;AAEA,QAAA,QACE,CAAC,MAAM,CACL,MAAM,IAAI,CAAC,oBAAoB,EAAE,EACjC,YAAY,CAAC,eAAe,CAAC,MAAM,MAAM;IAE/C;AAEA;;AAEG;AACI,IAAA,MAAM,YAAY,GAAA;AACvB,QAAA,OAAO,MAAM,CAAC,MAAM,IAAI,CAAC,oBAAoB,EAAE,EAAE,YAAY,CAAC,YAAY,CAAC;IAC7E;AAEA;;;AAGG;AACI,IAAA,MAAM,iBAAiB,GAAA;AAC5B,QAAA,OAAO,MAAM,CAAC,MAAM,IAAI,CAAC,oBAAoB,EAAE;aAC5C,YAAY,CAAC,iBAAiB;AAC9B,aAAA,IAAI,CAAC,CAAC,GAAG,KAAI;YACZ,IAAI,GAAG,EAAE;;AAEP,gBAAA,OAAO,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAC5C;AACA,YAAA,OAAO,IAAI;AACb,QAAA,CAAC,CAAC;IACN;AAEA;;AAEG;AACI,IAAA,MAAM,YAAY,GAAA;AACvB,QAAA,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE;AAE3C,QAAA,IAAI,SAAS,EAAE,UAAU,CAAC,oBAAoB,CAAC,EAAE;YAC/C,OAAO,SAAS,CAAC,OAAO,CAAC,wBAAwB,EAAE,EAAE,CAAC;QACxD;AAEA,QAAA,OAAO,SAAS;IAClB;AAEA;;AAEG;AACI,IAAA,MAAM,iBAAiB,GAAA;QAC5B,OAAO,MAAM,CAAC,MAAM,IAAI,CAAC,yBAAyB,EAAE,GAAG,WAAW,EAAE;IACtE;AAEA;;AAEG;AACI,IAAA,MAAM,eAAe,GAAA;QAC1B,OAAO,MAAM,CAAC,MAAM,IAAI,CAAC,yBAAyB,EAAE,GAAG,YAAY,EAAE;IACvE;AAEA,IAAA,MAAM,yBAAyB,GAAA;AAG7B,QAAA,OAAO,MAAM,CACX,MAAM,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,EAAE,GACjD,iBAAiB,EAAE;IACxB;;;AC7HF;;AAEG;;;;"}