{"version":3,"file":"skyux-toast-testing.mjs","sources":["../../../../../libs/components/toast/testing/src/modules/toast/toast-harness.ts","../../../../../libs/components/toast/testing/src/modules/toast/toaster-harness.ts","../../../../../libs/components/toast/testing/src/skyux-toast-testing.ts"],"sourcesContent":["import { HarnessPredicate } from '@angular/cdk/testing';\nimport { SkyQueryableComponentHarness } from '@skyux/core/testing';\nimport { SkyToastType } from '@skyux/toast';\n\nimport { SkyToastHarnessFilters } from './toast-harness-filters';\n\n/**\n * Harness for interacting with the toast component in tests.\n */\nexport class SkyToastHarness extends SkyQueryableComponentHarness {\n  /**\n   * @internal\n   */\n  public static hostSelector = 'sky-toast';\n\n  #getToast = this.locatorFor('.sky-toast');\n\n  /**\n   * Gets a `HarnessPredicate` that can be used to search for a\n   * `SkyToastHarness` that meets certain criteria.\n   */\n  public static with(\n    filters: SkyToastHarnessFilters,\n  ): HarnessPredicate<SkyToastHarness> {\n    return new HarnessPredicate(SkyToastHarness, filters).addOption(\n      'message',\n      filters.message,\n      async (harness, message) => {\n        const harnessMessage = await harness.getMessage();\n        return await HarnessPredicate.stringMatches(message, harnessMessage);\n      },\n    );\n  }\n\n  /**\n   * Clicks the toast close button.\n   */\n  public async close(): Promise<void> {\n    const button = await this.locatorFor('.sky-toast-btn-close')();\n    return await button.click();\n  }\n\n  /**\n   * Gets the toast message.\n   */\n  public async getMessage(): Promise<string> {\n    const toastBody = await this.locatorForOptional('.sky-toast-body')();\n\n    if (toastBody) {\n      return (await toastBody.text()).trim();\n    } else {\n      throw new Error(\n        'No toast message found. This method cannot be used to query toasts with custom components.',\n      );\n    }\n  }\n\n  /**\n   * Gets the toast type.\n   */\n  public async getType(): Promise<SkyToastType> {\n    const toast = await this.#getToast();\n    if (await toast.hasClass('sky-toast-danger')) {\n      return SkyToastType.Danger;\n    } else if (await toast.hasClass('sky-toast-warning')) {\n      return SkyToastType.Warning;\n    } else if (await toast.hasClass('sky-toast-success')) {\n      return SkyToastType.Success;\n    }\n    return SkyToastType.Info;\n  }\n}\n","import { ComponentHarness } from '@angular/cdk/testing';\n\nimport { SkyToastHarness } from './toast-harness';\n\n/**\n * Harness for interacting with toasts' host component in tests.\n * Use this harness to query and interact with `SkyToastHarness` for open toast components.\n */\nexport class SkyToasterHarness extends ComponentHarness {\n  /**\n   * @internal\n   */\n  public static hostSelector = 'sky-toaster';\n\n  public async getNumberOfToasts(): Promise<number> {\n    const toasts = await this.getToasts();\n    return toasts.length;\n  }\n\n  /**\n   * Gets all open toast harnesses.\n   */\n  public async getToasts(): Promise<SkyToastHarness[]> {\n    return await this.locatorForAll(SkyToastHarness)();\n  }\n\n  /**\n   * Gets a toast harness that matches the `message`.\n   */\n  public async getToastByMessage(message: string): Promise<SkyToastHarness> {\n    return await this.locatorFor(SkyToastHarness.with({ message: message }))();\n  }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;AAMA;;AAEG;AACG,MAAO,eAAgB,SAAQ,4BAA4B,CAAA;AAC/D;;AAEG;aACW,IAAA,CAAA,YAAY,GAAG,WAAW,CAAC;AAEzC,IAAA,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC;AAEzC;;;AAGG;IACI,OAAO,IAAI,CAChB,OAA+B,EAAA;QAE/B,OAAO,IAAI,gBAAgB,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC,SAAS,CAC7D,SAAS,EACT,OAAO,CAAC,OAAO,EACf,OAAO,OAAO,EAAE,OAAO,KAAI;AACzB,YAAA,MAAM,cAAc,GAAG,MAAM,OAAO,CAAC,UAAU,EAAE;YACjD,OAAO,MAAM,gBAAgB,CAAC,aAAa,CAAC,OAAO,EAAE,cAAc,CAAC;AACtE,QAAA,CAAC,CACF;IACH;AAEA;;AAEG;AACI,IAAA,MAAM,KAAK,GAAA;QAChB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,sBAAsB,CAAC,EAAE;AAC9D,QAAA,OAAO,MAAM,MAAM,CAAC,KAAK,EAAE;IAC7B;AAEA;;AAEG;AACI,IAAA,MAAM,UAAU,GAAA;QACrB,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,EAAE;QAEpE,IAAI,SAAS,EAAE;YACb,OAAO,CAAC,MAAM,SAAS,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE;QACxC;aAAO;AACL,YAAA,MAAM,IAAI,KAAK,CACb,4FAA4F,CAC7F;QACH;IACF;AAEA;;AAEG;AACI,IAAA,MAAM,OAAO,GAAA;AAClB,QAAA,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE;QACpC,IAAI,MAAM,KAAK,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE;YAC5C,OAAO,YAAY,CAAC,MAAM;QAC5B;aAAO,IAAI,MAAM,KAAK,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE;YACpD,OAAO,YAAY,CAAC,OAAO;QAC7B;aAAO,IAAI,MAAM,KAAK,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE;YACpD,OAAO,YAAY,CAAC,OAAO;QAC7B;QACA,OAAO,YAAY,CAAC,IAAI;IAC1B;;;AClEF;;;AAGG;AACG,MAAO,iBAAkB,SAAQ,gBAAgB,CAAA;AACrD;;AAEG;aACW,IAAA,CAAA,YAAY,GAAG,aAAa,CAAC;AAEpC,IAAA,MAAM,iBAAiB,GAAA;AAC5B,QAAA,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE;QACrC,OAAO,MAAM,CAAC,MAAM;IACtB;AAEA;;AAEG;AACI,IAAA,MAAM,SAAS,GAAA;QACpB,OAAO,MAAM,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,EAAE;IACpD;AAEA;;AAEG;IACI,MAAM,iBAAiB,CAAC,OAAe,EAAA;AAC5C,QAAA,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE;IAC5E;;;AC/BF;;AAEG;;;;"}