{"version":3,"file":"skyux-pages-testing.mjs","sources":["../../../../../libs/components/pages/testing/src/modules/link-list/link-list-item-harness.ts","../../../../../libs/components/pages/testing/src/modules/link-list/link-list-harness.ts","../../../../../libs/components/pages/testing/src/modules/needs-attention/needs-attention-harness.ts","../../../../../libs/components/pages/testing/src/modules/needs-attention/needs-attention-item-harness.ts","../../../../../libs/components/pages/testing/src/modules/page-header/page-header-harness.ts","../../../../../libs/components/pages/testing/src/modules/action-hub/action-hub-harness.ts","../../../../../libs/components/pages/testing/src/modules/page/page-harness.ts","../../../../../libs/components/pages/testing/src/skyux-pages-testing.ts"],"sourcesContent":["import { HarnessPredicate } from '@angular/cdk/testing';\nimport { SkyComponentHarness } from '@skyux/core/testing';\n\nimport { SkyLinkListItemHarnessFilters } from './link-list-item-harness-filters';\n\n/**\n * Harness for interacting with a linked list item in tests.\n */\nexport class SkyLinkListItemHarness extends SkyComponentHarness {\n  /**\n   * @internal\n   */\n  public static hostSelector =\n    'a.sky-link-list-item, button.sky-link-list-item';\n\n  /**\n   * Gets a `HarnessPredicate` that can be used to search for a\n   * `SkyLinkListItemHarness` that meets certain criteria.\n   */\n  public static with(\n    filters: SkyLinkListItemHarnessFilters,\n  ): HarnessPredicate<SkyLinkListItemHarness> {\n    return SkyLinkListItemHarness.getDataSkyIdPredicate(filters).addOption(\n      'text',\n      filters.text,\n      async (harness, text) => {\n        const itemText = await harness.getText();\n        return await HarnessPredicate.stringMatches(itemText, text);\n      },\n    );\n  }\n\n  /**\n   * Gets the text content of the item.\n   */\n  public async getText(): Promise<string> {\n    return await (await this.host()).text();\n  }\n\n  /**\n   * Clicks the item.\n   */\n  public async click(): Promise<void> {\n    return await (await this.host()).click();\n  }\n}\n","import { HarnessPredicate } from '@angular/cdk/testing';\nimport { SkyComponentHarness } from '@skyux/core/testing';\nimport { SkyWaitHarness } from '@skyux/indicators/testing';\n\nimport { SkyLinkListHarnessFilters } from './link-list-harness-filters';\nimport { SkyLinkListItemHarness } from './link-list-item-harness';\nimport { SkyLinkListItemHarnessFilters } from './link-list-item-harness-filters';\n\n/**\n * Harness for interacting with a link list component in tests.\n */\nexport class SkyLinkListHarness extends SkyComponentHarness {\n  /**\n   * @internal\n   */\n  public static hostSelector =\n    'sky-link-list, sky-link-list-recently-accessed, sky-modal-link-list';\n\n  #getHeading = this.locatorFor('h2.sky-font-heading-4');\n  #getList = this.locatorFor('ul.sky-link-list');\n\n  /**\n   * Gets a `HarnessPredicate` that can be used to search for a\n   * `SkyLinkListHarness` that meets certain criteria.\n   */\n  public static with(\n    filters: SkyLinkListHarnessFilters,\n  ): HarnessPredicate<SkyLinkListHarness> {\n    return SkyLinkListHarness.getDataSkyIdPredicate(filters);\n  }\n\n  /**\n   * Gets the link list's heading text. If there are no links, this will return `undefined`.\n   */\n  public async getHeadingText(): Promise<string | undefined> {\n    return await this.#getHeading().then(\n      (el) => el.text(),\n      () => undefined,\n    );\n  }\n\n  /**\n   * Whether the link list is showing a list of links.\n   */\n  public async isVisible(): Promise<boolean> {\n    return await this.#getList().then(\n      () => true,\n      () => false,\n    );\n  }\n\n  /**\n   * Gets the status of the wait indicator.\n   */\n  public async isWaiting(): Promise<boolean> {\n    const waitHarness = await this.locatorFor(SkyWaitHarness)();\n    return await waitHarness.isWaiting();\n  }\n\n  /**\n   * Gets a specific link list item based on the filter criteria.\n   * @param filter The filter criteria.\n   */\n  public async getListItem(\n    filter: SkyLinkListItemHarnessFilters,\n  ): Promise<SkyLinkListItemHarness> {\n    return await this.locatorFor(SkyLinkListItemHarness.with(filter))();\n  }\n\n  /**\n   * Gets an array of link list items based on the filter criteria.\n   * If no filter is provided, returns all link list items.\n   * @param filter The optional filter criteria.\n   */\n  public async getListItems(\n    filter?: SkyLinkListItemHarnessFilters,\n  ): Promise<SkyLinkListItemHarness[]> {\n    return await this.locatorForAll(\n      SkyLinkListItemHarness.with(filter || {}),\n    )();\n  }\n}\n","import { HarnessPredicate } from '@angular/cdk/testing';\nimport { SkyComponentHarness } from '@skyux/core/testing';\nimport { SkyBoxHarness } from '@skyux/layout/testing';\n\nimport { SkyNeedsAttentionHarnessFilters } from './needs-attention-harness-filters';\n\n/**\n * Harness for interacting with the needs-attention component in tests.\n */\nexport class SkyNeedsAttentionHarness extends SkyComponentHarness {\n  /**\n   * @internal\n   */\n  public static hostSelector = 'sky-needs-attention';\n\n  readonly #boxHarness = this.locatorFor(SkyBoxHarness);\n  readonly #getContent = this.locatorFor('sky-box-content');\n  readonly #getList = this.locatorFor('ul.sky-needs-attention-list');\n\n  /**\n   * Gets a `HarnessPredicate` that can be used to search for a\n   * `SkyNeedsAttentionHarness` that meets certain criteria.\n   */\n  public static with(\n    filters: SkyNeedsAttentionHarnessFilters,\n  ): HarnessPredicate<SkyNeedsAttentionHarness> {\n    return SkyNeedsAttentionHarness.getDataSkyIdPredicate(filters);\n  }\n\n  /**\n   * Gets the component's heading text. If there are no links, this will return `undefined`.\n   */\n  public async getTitle(): Promise<string | undefined> {\n    return await (await this.#boxHarness()).getHeadingText();\n  }\n\n  /**\n   * Gets the text from an empty list. If there are items in the list, this will return `undefined`.\n   */\n  public async getEmptyListText(): Promise<string | undefined> {\n    return await this.hasItems().then(async (hasItems) => {\n      if (hasItems) {\n        return undefined;\n      }\n      return (await (await this.#getContent()).text()).trim();\n    });\n  }\n\n  /**\n   * Whether the link list is showing a list of links.\n   */\n  public async hasItems(): Promise<boolean> {\n    return await this.#getList().then(\n      () => true,\n      () => false,\n    );\n  }\n}\n","import { HarnessPredicate } from '@angular/cdk/testing';\nimport { SkyComponentHarness } from '@skyux/core/testing';\n\nimport { SkyNeedsAttentionItemHarnessFilters } from './needs-attention-item-harness-filters';\n\n/**\n * Harness for interacting with a needs attention item in tests.\n */\nexport class SkyNeedsAttentionItemHarness extends SkyComponentHarness {\n  /**\n   * @internal\n   */\n  public static hostSelector =\n    'li.sky-needs-attention-item-wrapper > a.sky-needs-attention-item, li.sky-needs-attention-item-wrapper > button.sky-needs-attention-item';\n\n  /**\n   * Gets a `HarnessPredicate` that can be used to search for a\n   * `SkyNeedsAttentionItemHarness` that meets certain criteria.\n   */\n  public static with(\n    filters: SkyNeedsAttentionItemHarnessFilters,\n  ): HarnessPredicate<SkyNeedsAttentionItemHarness> {\n    return SkyNeedsAttentionItemHarness.getDataSkyIdPredicate(\n      filters,\n    ).addOption('text', filters.text, async (harness, text) => {\n      const itemText = await harness.getText();\n      return await HarnessPredicate.stringMatches(itemText, text);\n    });\n  }\n\n  /**\n   * Gets the text content of the item.\n   */\n  public async getText(): Promise<string> {\n    return await (await this.host()).text();\n  }\n\n  /**\n   * Clicks the item.\n   */\n  public async click(): Promise<void> {\n    return await (await this.host()).click();\n  }\n}\n","import { HarnessPredicate } from '@angular/cdk/testing';\nimport { SkyComponentHarness } from '@skyux/core/testing';\n\nimport { SkyPageHeaderHarnessFilters } from './page-header-harness-filters';\n\n/**\n * Harness for interacting with a page header component in tests.\n */\nexport class SkyPageHeaderHarness extends SkyComponentHarness {\n  /**\n   * @internal\n   */\n  public static hostSelector = 'sky-page-header';\n\n  #getTitle = this.locatorFor('.sky-page-header-page-title');\n  #getParentLink = this.locatorForOptional('.sky-page-header-parent-link');\n\n  /**\n   * Gets a `HarnessPredicate` that can be used to search for a\n   * `SkyPageHeaderHarness` that meets certain criteria.\n   */\n  public static with(\n    filters: SkyPageHeaderHarnessFilters,\n  ): HarnessPredicate<SkyPageHeaderHarness> {\n    return SkyPageHeaderHarness.getDataSkyIdPredicate(filters);\n  }\n\n  /**\n   * Gets the current page title.\n   */\n  public async getPageTitle(): Promise<string | undefined> {\n    const title = await this.#getTitle();\n\n    return await title.text();\n  }\n\n  /**\n   * Gets the current page title.\n   */\n  public async getParentLinkText(): Promise<string> {\n    const parentLink = await this.#getParentLink();\n\n    if (parentLink) {\n      return await parentLink.text();\n    }\n\n    throw new Error('No parent link was found in the page header.');\n  }\n}\n","import { HarnessPredicate } from '@angular/cdk/testing';\nimport { SkyComponentHarness } from '@skyux/core/testing';\n\nimport { SkyLinkListHarness } from '../link-list/link-list-harness';\nimport { SkyNeedsAttentionHarness } from '../needs-attention/needs-attention-harness';\nimport { SkyNeedsAttentionItemHarness } from '../needs-attention/needs-attention-item-harness';\nimport { SkyNeedsAttentionItemHarnessFilters } from '../needs-attention/needs-attention-item-harness-filters';\nimport { SkyPageHeaderHarness } from '../page-header/page-header-harness';\n\nimport { SkyActionHubHarnessFilters } from './action-hub-harness-filters';\n\n/**\n * Harness for interacting with an action hub component in tests.\n */\nexport class SkyActionHubHarness extends SkyComponentHarness {\n  /**\n   * @internal\n   */\n  public static hostSelector = 'sky-action-hub';\n\n  readonly #pageHeader = this.locatorFor(SkyPageHeaderHarness);\n  readonly #needsAttention = this.locatorFor(SkyNeedsAttentionHarness);\n  readonly #relatedLinks = this.locatorFor(\n    SkyLinkListHarness.with({\n      selector: 'sky-page-links > sky-link-list',\n    }),\n  );\n  readonly #recentLinks = this.locatorFor(\n    SkyLinkListHarness.with({\n      selector: 'sky-page-links > sky-link-list-recently-accessed',\n    }),\n  );\n  readonly #settingsLinks = this.locatorFor(\n    SkyLinkListHarness.with({\n      selector: 'sky-page-links > sky-modal-link-list',\n    }),\n  );\n\n  /**\n   * Gets a `HarnessPredicate` that can be used to search for a\n   * `SkyLinkListHarness` that meets certain criteria.\n   */\n  public static with(\n    filters: SkyActionHubHarnessFilters,\n  ): HarnessPredicate<SkyActionHubHarness> {\n    return SkyActionHubHarness.getDataSkyIdPredicate(filters);\n  }\n\n  /**\n   * Gets the title of the action hub.\n   */\n  public async getTitle(): Promise<string | undefined> {\n    return await (await this.#pageHeader()).getPageTitle();\n  }\n\n  /**\n   * Get the testing harness for the needs attention block.\n   */\n  public async getNeedsAttentionBlock(): Promise<SkyNeedsAttentionHarness> {\n    return await this.#needsAttention();\n  }\n\n  /**\n   * Gets a specific needs attention item based on the filter criteria.\n   * @param filter The filter criteria.\n   */\n  public async getNeedsAttentionItem(\n    filter: SkyNeedsAttentionItemHarnessFilters,\n  ): Promise<SkyNeedsAttentionItemHarness> {\n    return await this.locatorFor(SkyNeedsAttentionItemHarness.with(filter))();\n  }\n\n  /**\n   * Gets an array of needs attention items based on the filter criteria.\n   * If no filter is provided, returns all needs attention items.\n   * @param filters The optional filter criteria.\n   */\n  public async getNeedsAttentionItems(\n    filters?: SkyNeedsAttentionItemHarnessFilters,\n  ): Promise<SkyNeedsAttentionItemHarness[]> {\n    return await this.locatorForAll(\n      SkyNeedsAttentionItemHarness.with(filters || {}),\n    )();\n  }\n\n  /**\n   * Get the testing harness for the related links block.\n   */\n  public async getRelatedLinks(): Promise<SkyLinkListHarness> {\n    return await this.#relatedLinks();\n  }\n\n  /**\n   * Get the testing harness for the recent links block.\n   */\n  public async getRecentLinks(): Promise<SkyLinkListHarness> {\n    return await this.#recentLinks();\n  }\n\n  /**\n   * Get the testing harness for the settings links block.\n   */\n  public async getSettingsLinks(): Promise<SkyLinkListHarness> {\n    return await this.#settingsLinks();\n  }\n}\n","import { HarnessPredicate } from '@angular/cdk/testing';\nimport { SkyComponentHarness } from '@skyux/core/testing';\nimport { SkyPageLayoutType } from '@skyux/pages';\n\nimport { SkyPageHeaderHarness } from '../page-header/page-header-harness';\nimport { SkyPageHeaderHarnessFilters } from '../page-header/page-header-harness-filters';\n\nimport { SkyPageHarnessFilters } from './page-harness-filters';\n\nconst LAYOUT_PREFIX = 'sky-layout-host-';\nconst LAYOUT_TYPES: SkyPageLayoutType[] = ['blocks', 'fit', 'list', 'tabs'];\n\n/**\n * Harness for interacting with a page component in tests.\n */\nexport class SkyPageHarness extends SkyComponentHarness {\n  /**\n   * @internal\n   */\n  public static hostSelector = 'sky-page';\n\n  /**\n   * Gets a `HarnessPredicate` that can be used to search for a\n   * `SkyPageHarness` that meets certain criteria.\n   */\n  public static with(\n    filters: SkyPageHarnessFilters,\n  ): HarnessPredicate<SkyPageHarness> {\n    return SkyPageHarness.getDataSkyIdPredicate(filters);\n  }\n\n  /**\n   * Gets the current layout.\n   */\n  public async getLayout(): Promise<SkyPageLayoutType> {\n    const page = await this.host();\n\n    for (const layout of LAYOUT_TYPES) {\n      if (await page.hasClass(`${LAYOUT_PREFIX}${layout}`)) {\n        return layout;\n      }\n    }\n\n    return 'none';\n  }\n\n  /**\n   * Gets the first page header that matches the given filters.\n   * @param filters filters for which page header to return\n   */\n  public async getPageHeader(\n    filters?: SkyPageHeaderHarnessFilters,\n  ): Promise<SkyPageHeaderHarness> {\n    const pageHeader = await this.locatorForOptional(\n      SkyPageHeaderHarness.with(filters || {}),\n    )();\n    if (pageHeader) {\n      return pageHeader;\n    }\n\n    throw new Error(\n      `Unable to find a page header with filter(s): ${JSON.stringify(\n        filters,\n      )}.`,\n    );\n  }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}