{"version":3,"file":"ngx-com-components-collapsible-testing.mjs","sources":["../../../projects/com/components/collapsible/testing/collapsible.harness.ts","../../../projects/com/components/collapsible/testing/index.ts","../../../projects/com/components/collapsible/testing/ngx-com-components-collapsible-testing.ts"],"sourcesContent":["import {\n  ComponentHarness,\n  HarnessPredicate,\n} from '@angular/cdk/testing';\nimport type { BaseHarnessFilters } from '@angular/cdk/testing';\n\n/** Harness filters for ComCollapsibleHarness. */\nexport interface ComCollapsibleHarnessFilters extends BaseHarnessFilters {\n  /** Filter by whether the collapsible is expanded. */\n  expanded?: boolean;\n  /** Filter by whether the collapsible is disabled. */\n  disabled?: boolean;\n}\n\n/**\n * Harness for interacting with a ComCollapsible in tests.\n */\nexport class ComCollapsibleHarness extends ComponentHarness {\n  static hostSelector = '[comCollapsible]';\n\n  private readonly trigger = this.locatorFor('[comCollapsibleTrigger]');\n  private readonly content = this.locatorFor('com-collapsible-content');\n\n  /**\n   * Gets a HarnessPredicate for matching collapsibles.\n   * @param options Filter options.\n   */\n  static with(options: ComCollapsibleHarnessFilters = {}): HarnessPredicate<ComCollapsibleHarness> {\n    return new HarnessPredicate(ComCollapsibleHarness, options)\n      .addOption('expanded', options.expanded, async (harness, expanded) => {\n        return (await harness.isExpanded()) === expanded;\n      })\n      .addOption('disabled', options.disabled, async (harness, disabled) => {\n        return (await harness.isDisabled()) === disabled;\n      });\n  }\n\n  /** Whether the collapsible is currently expanded. */\n  async isExpanded(): Promise<boolean> {\n    const triggerEl = await this.trigger();\n    return (await triggerEl.getAttribute('aria-expanded')) === 'true';\n  }\n\n  /** Whether the collapsible is disabled. */\n  async isDisabled(): Promise<boolean> {\n    const triggerEl = await this.trigger();\n    return (await triggerEl.getAttribute('aria-disabled')) === 'true';\n  }\n\n  /** Toggles the collapsible by clicking the trigger. */\n  async toggle(): Promise<void> {\n    const triggerEl = await this.trigger();\n    return triggerEl.click();\n  }\n\n  /** Expands the collapsible if it is currently collapsed. */\n  async expand(): Promise<void> {\n    if (!(await this.isExpanded())) {\n      await this.toggle();\n    }\n  }\n\n  /** Collapses the collapsible if it is currently expanded. */\n  async collapse(): Promise<void> {\n    if (await this.isExpanded()) {\n      await this.toggle();\n    }\n  }\n\n  /** Gets the text content of the trigger element. */\n  async getTriggerText(): Promise<string> {\n    const triggerEl = await this.trigger();\n    return triggerEl.text();\n  }\n\n  /** Gets the text content of the content element. */\n  async getContentText(): Promise<string> {\n    const contentEl = await this.content();\n    return contentEl.text();\n  }\n\n  /** Gets the role attribute of the content element. */\n  async getContentRole(): Promise<string | null> {\n    const contentEl = await this.content();\n    return contentEl.getAttribute('role');\n  }\n\n  /** Gets the aria-controls attribute from the trigger. */\n  async getAriaControls(): Promise<string | null> {\n    const triggerEl = await this.trigger();\n    return triggerEl.getAttribute('aria-controls');\n  }\n\n  /** Gets the aria-labelledby attribute from the content. */\n  async getAriaLabelledby(): Promise<string | null> {\n    const contentEl = await this.content();\n    return contentEl.getAttribute('aria-labelledby');\n  }\n\n  /** Whether the content element has the inert attribute. */\n  async isContentInert(): Promise<boolean> {\n    const contentEl = await this.content();\n    return (await contentEl.getAttribute('inert')) !== null;\n  }\n\n  /** Focuses the trigger element. */\n  async focus(): Promise<void> {\n    const triggerEl = await this.trigger();\n    return triggerEl.focus();\n  }\n\n  /** Blurs the trigger element. */\n  async blur(): Promise<void> {\n    const triggerEl = await this.trigger();\n    return triggerEl.blur();\n  }\n\n  /** Whether the trigger element is focused. */\n  async isFocused(): Promise<boolean> {\n    const triggerEl = await this.trigger();\n    return triggerEl.isFocused();\n  }\n}\n","// Testing utilities for the collapsible component\n\nexport { ComCollapsibleHarness } from './collapsible.harness';\n\nexport type { ComCollapsibleHarnessFilters } from './collapsible.harness';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}