UNPKG

@angular/material

Version:
1 lines 4.73 kB
{"version":3,"file":"badge-testing.mjs","sources":["../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/material/badge/testing/badge-harness.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {ComponentHarness, HarnessPredicate} from '@angular/cdk/testing';\nimport {MatBadgePosition, MatBadgeSize} from '../badge';\nimport {BadgeHarnessFilters} from './badge-harness-filters';\n\n/** Harness for interacting with a standard Material badge in tests. */\nexport class MatBadgeHarness extends ComponentHarness {\n static hostSelector = '.mat-badge';\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a badge with specific attributes.\n * @param options Options for narrowing the search:\n * - `text` finds a badge host with a particular text.\n * @return a `HarnessPredicate` configured with the given options.\n */\n static with(options: BadgeHarnessFilters = {}): HarnessPredicate<MatBadgeHarness> {\n return new HarnessPredicate(MatBadgeHarness, options).addOption(\n 'text',\n options.text,\n (harness, text) => HarnessPredicate.stringMatches(harness.getText(), text),\n );\n }\n\n private _badgeElement = this.locatorFor('.mat-badge-content');\n\n /** Gets a promise for the badge text. */\n async getText(): Promise<string> {\n return (await this._badgeElement()).text();\n }\n\n /** Gets whether the badge is overlapping the content. */\n async isOverlapping(): Promise<boolean> {\n return (await this.host()).hasClass('mat-badge-overlap');\n }\n\n /** Gets the position of the badge. */\n async getPosition(): Promise<MatBadgePosition> {\n const host = await this.host();\n let result = '';\n\n if (await host.hasClass('mat-badge-above')) {\n result += 'above';\n } else if (await host.hasClass('mat-badge-below')) {\n result += 'below';\n }\n\n if (await host.hasClass('mat-badge-before')) {\n result += ' before';\n } else if (await host.hasClass('mat-badge-after')) {\n result += ' after';\n }\n\n return result.trim() as MatBadgePosition;\n }\n\n /** Gets the size of the badge. */\n async getSize(): Promise<MatBadgeSize> {\n const host = await this.host();\n\n if (await host.hasClass('mat-badge-small')) {\n return 'small';\n } else if (await host.hasClass('mat-badge-large')) {\n return 'large';\n }\n\n return 'medium';\n }\n\n /** Gets whether the badge is hidden. */\n async isHidden(): Promise<boolean> {\n return (await this.host()).hasClass('mat-badge-hidden');\n }\n\n /** Gets whether the badge is disabled. */\n async isDisabled(): Promise<boolean> {\n return (await this.host()).hasClass('mat-badge-disabled');\n }\n}\n"],"names":["MatBadgeHarness","ComponentHarness","hostSelector","with","options","HarnessPredicate","addOption","text","harness","stringMatches","getText","_badgeElement","locatorFor","isOverlapping","host","hasClass","getPosition","result","trim","getSize","isHidden","isDisabled"],"mappings":";;AAaM,MAAOA,eAAgB,SAAQC,gBAAgB,CAAA;EACnD,OAAOC,YAAY,GAAG,YAAY;AAQlC,EAAA,OAAOC,IAAIA,CAACC,OAAA,GAA+B,EAAE,EAAA;AAC3C,IAAA,OAAO,IAAIC,gBAAgB,CAACL,eAAe,EAAEI,OAAO,CAAC,CAACE,SAAS,CAC7D,MAAM,EACNF,OAAO,CAACG,IAAI,EACZ,CAACC,OAAO,EAAED,IAAI,KAAKF,gBAAgB,CAACI,aAAa,CAACD,OAAO,CAACE,OAAO,EAAE,EAAEH,IAAI,CAAC,CAC3E;AACH;AAEQI,EAAAA,aAAa,GAAG,IAAI,CAACC,UAAU,CAAC,oBAAoB,CAAC;EAG7D,MAAMF,OAAOA,GAAA;IACX,OAAO,CAAC,MAAM,IAAI,CAACC,aAAa,EAAE,EAAEJ,IAAI,EAAE;AAC5C;EAGA,MAAMM,aAAaA,GAAA;IACjB,OAAO,CAAC,MAAM,IAAI,CAACC,IAAI,EAAE,EAAEC,QAAQ,CAAC,mBAAmB,CAAC;AAC1D;EAGA,MAAMC,WAAWA,GAAA;AACf,IAAA,MAAMF,IAAI,GAAG,MAAM,IAAI,CAACA,IAAI,EAAE;IAC9B,IAAIG,MAAM,GAAG,EAAE;AAEf,IAAA,IAAI,MAAMH,IAAI,CAACC,QAAQ,CAAC,iBAAiB,CAAC,EAAE;AAC1CE,MAAAA,MAAM,IAAI,OAAO;KACnB,MAAO,IAAI,MAAMH,IAAI,CAACC,QAAQ,CAAC,iBAAiB,CAAC,EAAE;AACjDE,MAAAA,MAAM,IAAI,OAAO;AACnB;AAEA,IAAA,IAAI,MAAMH,IAAI,CAACC,QAAQ,CAAC,kBAAkB,CAAC,EAAE;AAC3CE,MAAAA,MAAM,IAAI,SAAS;KACrB,MAAO,IAAI,MAAMH,IAAI,CAACC,QAAQ,CAAC,iBAAiB,CAAC,EAAE;AACjDE,MAAAA,MAAM,IAAI,QAAQ;AACpB;AAEA,IAAA,OAAOA,MAAM,CAACC,IAAI,EAAsB;AAC1C;EAGA,MAAMC,OAAOA,GAAA;AACX,IAAA,MAAML,IAAI,GAAG,MAAM,IAAI,CAACA,IAAI,EAAE;AAE9B,IAAA,IAAI,MAAMA,IAAI,CAACC,QAAQ,CAAC,iBAAiB,CAAC,EAAE;AAC1C,MAAA,OAAO,OAAO;KAChB,MAAO,IAAI,MAAMD,IAAI,CAACC,QAAQ,CAAC,iBAAiB,CAAC,EAAE;AACjD,MAAA,OAAO,OAAO;AAChB;AAEA,IAAA,OAAO,QAAQ;AACjB;EAGA,MAAMK,QAAQA,GAAA;IACZ,OAAO,CAAC,MAAM,IAAI,CAACN,IAAI,EAAE,EAAEC,QAAQ,CAAC,kBAAkB,CAAC;AACzD;EAGA,MAAMM,UAAUA,GAAA;IACd,OAAO,CAAC,MAAM,IAAI,CAACP,IAAI,EAAE,EAAEC,QAAQ,CAAC,oBAAoB,CAAC;AAC3D;;;;;"}