{"version":3,"file":"skyux-core-testing.mjs","sources":["../../../../../libs/components/core/testing/src/legacy/mock-media-query.service.ts","../../../../../libs/components/core/testing/src/legacy/mock-ui-config.service.ts","../../../../../libs/components/core/testing/src/legacy/core-testing.module.ts","../../../../../libs/components/core/testing/src/legacy/resize-observer-mock.ts","../../../../../libs/components/core/testing/src/modules/file-reader/file-reader-testing.service.ts","../../../../../libs/components/core/testing/src/modules/file-reader/provide-file-reader-testing.ts","../../../../../libs/components/core/testing/src/modules/help/help-testing-controller.ts","../../../../../libs/components/core/testing/src/modules/help/help-testing.service.ts","../../../../../libs/components/core/testing/src/modules/help/help-testing.module.ts","../../../../../libs/components/core/testing/src/modules/media-query/breakpoint-observer-testing.ts","../../../../../libs/components/core/testing/src/modules/media-query/media-query-testing-controller.ts","../../../../../libs/components/core/testing/src/modules/media-query/provide-media-query-testing.ts","../../../../../libs/components/core/testing/src/shared/component-harness.ts","../../../../../libs/components/core/testing/src/shared/queryable-component-harness.ts","../../../../../libs/components/core/testing/src/modules/overlay/overlay-harness.ts","../../../../../libs/components/core/testing/src/shared/harness-utility.ts","../../../../../libs/components/core/testing/src/shared/input-harness.ts","../../../../../libs/components/core/testing/src/skyux-core-testing.ts"],"sourcesContent":["import { Injectable, NgZone } from '@angular/core';\nimport {\n  SkyMediaBreakpoints,\n  SkyMediaQueryListener,\n  SkyMediaQueryService,\n} from '@skyux/core';\n\nimport { BehaviorSubject, Subscription } from 'rxjs';\n\n/**\n * @internal\n * @deprecated Use `provideSkyMediaQueryTesting()` coupled with `SkyMediaQueryTestingController`.\n */\n@Injectable()\nexport class MockSkyMediaQueryService extends SkyMediaQueryService {\n  public static override xs = '(max-width: 767px)';\n  public static override sm = '(min-width: 768px) and (max-width: 991px)';\n  public static override md = '(min-width: 992px) and (max-width: 1199px)';\n  public static override lg = '(min-width: 1200px)';\n\n  public override get current(): SkyMediaBreakpoints {\n    return this.currentBreakpoints;\n  }\n\n  public override set current(breakpoints: SkyMediaBreakpoints) {\n    this.currentBreakpoints = breakpoints;\n  }\n\n  public currentMockSubject = new BehaviorSubject<SkyMediaBreakpoints>(\n    this.current,\n  );\n\n  protected currentBreakpoints = SkyMediaBreakpoints.md;\n\n  constructor() {\n    super(\n      new NgZone({\n        enableLongStackTrace: true,\n      }),\n    );\n  }\n\n  public override subscribe(listener: SkyMediaQueryListener): Subscription {\n    return this.currentMockSubject.subscribe({\n      next: (breakpoints: SkyMediaBreakpoints) => {\n        listener(breakpoints);\n      },\n    });\n  }\n\n  public fire(args: SkyMediaBreakpoints): void {\n    this.currentBreakpoints = args;\n    this.currentMockSubject.next(this.currentBreakpoints);\n  }\n\n  /* istanbul ignore next */\n  // eslint-disable-next-line @typescript-eslint/no-empty-function\n  public override destroy(): void {}\n}\n","import { Injectable } from '@angular/core';\nimport { SkyUIConfigService } from '@skyux/core';\n\nimport { Observable, of as observableOf } from 'rxjs';\n\n/**\n * @internal\n */\n@Injectable()\nexport class MockSkyUIConfigService extends SkyUIConfigService {\n  public override getConfig(key: string, defaultConfig?: any): Observable<any> {\n    switch (key) {\n      case 'defaultSettings':\n        return observableOf(defaultConfig);\n      case 'badData':\n        return observableOf({ invalidProperty: 'invalidData' });\n      default: {\n        return observableOf({\n          settings: {\n            userSettings: {\n              singleColumn: {\n                tiles: [\n                  {\n                    id: 'tile-1',\n                    isCollapsed: true,\n                  },\n                  {\n                    id: 'tile-2',\n                    isCollapsed: true,\n                  },\n                ],\n              },\n              multiColumn: [\n                {\n                  tiles: [\n                    {\n                      id: 'tile-2',\n                      isCollapsed: true,\n                    },\n                  ],\n                },\n                {\n                  tiles: [\n                    {\n                      id: 'tile-1',\n                      isCollapsed: true,\n                    },\n                  ],\n                },\n              ],\n            },\n            defaultSettings: ['tile-1', 'tile-2'],\n          },\n        });\n      }\n    }\n  }\n}\n","import { NgModule } from '@angular/core';\nimport { SkyMediaQueryService, SkyUIConfigService } from '@skyux/core';\n\nimport { MockSkyMediaQueryService } from './mock-media-query.service';\nimport { MockSkyUIConfigService } from './mock-ui-config.service';\n\n/**\n * @internal\n */\n@NgModule({\n  providers: [\n    { provide: SkyMediaQueryService, useClass: MockSkyMediaQueryService },\n    {\n      provide: SkyUIConfigService,\n      useClass: MockSkyUIConfigService,\n    },\n  ],\n})\nexport class SkyCoreTestingModule {}\n","/* istanbul ignore file: these are used in @skyux/core */\n\n/**\n * @internal\n */\nexport const mockResizeObserverEntry: ResizeObserverEntry = {\n  target: {} as Element,\n  borderBoxSize: [],\n  contentBoxSize: [],\n  contentRect: {\n    width: 20,\n    height: 20,\n    x: 20,\n    y: 20,\n    top: 20,\n    bottom: 20,\n    left: 20,\n    right: 20,\n    toJSON: () => 'true',\n  } as DOMRectReadOnly,\n  devicePixelContentBoxSize: [],\n};\n\nconst defaultCallback: ResizeObserverCallback = (\n  entries: ResizeObserverEntry[],\n  observer: ResizeObserver,\n) => {};\n\n/**\n * @internal\n */\nexport const mockResizeObserverHandle = {\n  callback: defaultCallback,\n  emit: (entries: ResizeObserverEntry[], observer?: ResizeObserver): void => {\n    mockResizeObserverHandle.callback(entries, observer!);\n  },\n};\n\n/**\n * @internal\n */\nexport function mockResizeObserver(): void {\n  (window as any).requestAnimationFrame = (callback: () => void): number => {\n    callback();\n    return 0;\n  };\n  (window as any).cancelAnimationFrame = (_: number): void => undefined;\n  window.ResizeObserver = class {\n    constructor(callback: ResizeObserverCallback) {\n      mockResizeObserverHandle.callback = callback;\n    }\n\n    public disconnect(): void {}\n\n    public observe(target: Element, options?: ResizeObserverOptions): void {}\n\n    public unobserve(element: HTMLElement): void {}\n  };\n}\n","import { Injectable } from '@angular/core';\nimport { SkyFileReaderService } from '@skyux/core';\n\n/**\n * @internal\n */\n@Injectable()\nexport class SkyFileReaderTestingService extends SkyFileReaderService {\n  public override async readAsDataURL(file: File): Promise<string> {\n    return await new Promise((resolve) => {\n      resolve(`data:${file.type};base64,MOCK_DATA`);\n    });\n  }\n}\n","import { Provider } from '@angular/core';\nimport { SkyFileReaderService } from '@skyux/core';\n\nimport { SkyFileReaderTestingService } from './file-reader-testing.service';\n\n/**\n * Provides mocks for file reader testing.\n * @internal\n * @example\n * ```typescript\n * TestBed.configureTestingModule({\n *   providers: [provideSkyFileReaderTesting()]\n * });\n * ```\n */\nexport function provideSkyFileReaderTesting(): Provider[] {\n  return [\n    SkyFileReaderTestingService,\n    {\n      provide: SkyFileReaderService,\n      useClass: SkyFileReaderTestingService,\n    },\n  ];\n}\n","import { inject } from '@angular/core';\nimport { SkyHelpService } from '@skyux/core';\n\nimport { SkyHelpTestingService } from './help-testing.service';\n\nfunction formatHelpKeyForError(helpKey: string | undefined): string {\n  return helpKey === undefined ? 'undefined' : `'${helpKey}'`;\n}\n\n/**\n * Provides methods for validating global help in unit tests.\n */\nexport class SkyHelpTestingController {\n  #helpSvc = inject(SkyHelpService) as SkyHelpTestingService;\n\n  /**\n   * Validates the current help key and throws an error if the current help key does not match the expected help key.\n   * @param expectedHelpKey The expected help key.\n   */\n  public expectCurrentHelpKey(expectedHelpKey: string | undefined): void {\n    const currentHelpKey = this.#helpSvc.getCurrentHelpKey();\n\n    if (currentHelpKey !== expectedHelpKey) {\n      throw new Error(\n        `Expected current help key to be ${formatHelpKeyForError(expectedHelpKey)}, but the current help key is ${formatHelpKeyForError(currentHelpKey)}.`,\n      );\n    }\n  }\n\n  /**\n   * Close the current help.\n   */\n  public closeHelp(): void {\n    this.#helpSvc.closeHelp();\n  }\n}\n","import { Injectable } from '@angular/core';\nimport {\n  SkyHelpOpenArgs,\n  SkyHelpService,\n  SkyHelpUpdateArgs,\n} from '@skyux/core';\n\nimport { Observable, of } from 'rxjs';\n\n/**\n * @internal\n */\n@Injectable()\nexport class SkyHelpTestingService extends SkyHelpService {\n  public override get widgetReadyStateChange(): Observable<boolean> {\n    return of(true);\n  }\n\n  #currentHelpKey: string | undefined;\n  #currentPageHelpKey: string | undefined;\n\n  public override openHelp(args?: SkyHelpOpenArgs): void {\n    this.#currentHelpKey = args?.helpKey;\n  }\n\n  public override updateHelp(args: SkyHelpUpdateArgs): void {\n    if ('pageDefaultHelpKey' in args) {\n      this.#currentPageHelpKey = args.pageDefaultHelpKey;\n    }\n\n    if ('helpKey' in args) {\n      this.#currentHelpKey = args.helpKey;\n    }\n  }\n\n  public getCurrentHelpKey(): string | undefined {\n    return this.#currentHelpKey || this.#currentPageHelpKey;\n  }\n\n  public closeHelp(): void {\n    this.#currentHelpKey = undefined;\n  }\n}\n","import { NgModule } from '@angular/core';\nimport { SkyHelpService } from '@skyux/core';\n\nimport { SkyHelpTestingController } from './help-testing-controller';\nimport { SkyHelpTestingService } from './help-testing.service';\n\n/**\n * Mocks SkyHelpService to enable testing of global help.\n */\n@NgModule({\n  providers: [\n    {\n      provide: SkyHelpService,\n      useClass: SkyHelpTestingService,\n    },\n    SkyHelpTestingController,\n  ],\n})\nexport class SkyHelpTestingModule {}\n","import { Injectable } from '@angular/core';\nimport { SkyBreakpoint, SkyBreakpointObserver } from '@skyux/core';\n\nimport { Observable, ReplaySubject } from 'rxjs';\n\n/**\n * Overrides the media and container breakpoint observers for testing.\n * @internal\n */\n@Injectable()\nexport class SkyBreakpointObserverTesting implements SkyBreakpointObserver {\n  public get breakpointChange(): Observable<SkyBreakpoint> {\n    return this.#breakpointChangeObs;\n  }\n\n  #breakpointChange = new ReplaySubject<SkyBreakpoint>(1);\n  #breakpointChangeObs = this.#breakpointChange.asObservable();\n\n  public destroy(): void {\n    this.#breakpointChange.complete();\n  }\n\n  public setBreakpoint(breakpoint: SkyBreakpoint): void {\n    this.#breakpointChange.next(breakpoint);\n  }\n}\n","import { Injectable, inject } from '@angular/core';\nimport { SkyBreakpoint } from '@skyux/core';\n\nimport { SkyBreakpointObserverTesting } from './breakpoint-observer-testing';\n\n/**\n * A controller to be injected into tests, which mocks the\n * `SkyMediaQueryService` and handles interactions with breakpoints.\n */\n@Injectable()\nexport class SkyMediaQueryTestingController {\n  readonly #observer = inject(SkyBreakpointObserverTesting);\n\n  /**\n   * Emits the provided breakpoint to all subscribers.\n   */\n  public setBreakpoint(breakpoint: SkyBreakpoint): void {\n    this.#observer.setBreakpoint(breakpoint);\n  }\n}\n","import { Provider } from '@angular/core';\nimport {\n  SKY_BREAKPOINT_OBSERVER,\n  SkyContainerBreakpointObserver,\n  SkyMediaBreakpointObserver,\n  SkyMediaQueryService,\n} from '@skyux/core';\n\nimport { SkyBreakpointObserverTesting } from './breakpoint-observer-testing';\nimport { SkyMediaQueryTestingController } from './media-query-testing-controller';\n\n/**\n * Adds mocks to allow interactions with breakpoints in tests.\n */\nexport function provideSkyMediaQueryTesting(): Provider[] {\n  return [\n    SkyMediaQueryService,\n    SkyBreakpointObserverTesting,\n    SkyMediaQueryTestingController,\n    {\n      provide: SkyContainerBreakpointObserver,\n      useExisting: SkyBreakpointObserverTesting,\n    },\n    {\n      provide: SkyMediaBreakpointObserver,\n      useExisting: SkyBreakpointObserverTesting,\n    },\n    {\n      provide: SKY_BREAKPOINT_OBSERVER,\n      useExisting: SkyBreakpointObserverTesting,\n    },\n  ];\n}\n","import {\n  ComponentHarness,\n  ComponentHarnessConstructor,\n  HarnessPredicate,\n} from '@angular/cdk/testing';\n\nimport { SkyHarnessFilters } from './harness-filters';\n\n/**\n * @internal\n */\nexport abstract class SkyComponentHarness extends ComponentHarness {\n  protected static getDataSkyIdPredicate<T extends SkyComponentHarness>(\n    this: ComponentHarnessConstructor<T>,\n    filters: SkyHarnessFilters,\n  ): HarnessPredicate<T> {\n    return new HarnessPredicate(this, filters).addOption(\n      'dataSkyId',\n      filters.dataSkyId,\n      (harness, text) =>\n        HarnessPredicate.stringMatches(harness.#getSkyId(), text),\n    );\n  }\n\n  async #getSkyId(): Promise<string | null> {\n    return await (await this.host()).getAttribute('data-sky-id');\n  }\n}\n","import {\n  ComponentHarness,\n  HarnessQuery,\n  TestElement,\n} from '@angular/cdk/testing';\n\nimport { SkyComponentHarness } from './component-harness';\n\n/**\n * @internal\n */\nexport abstract class SkyQueryableComponentHarness extends SkyComponentHarness {\n  /**\n   * Returns a child harness or throws an error if not found.\n   */\n  public async queryHarness<T extends ComponentHarness>(\n    query: HarnessQuery<T>,\n  ): Promise<T> {\n    return await this.locatorFor(query)();\n  }\n\n  /**\n   * Returns a child harness or null if not found.\n   */\n  public async queryHarnessOrNull<T extends ComponentHarness>(\n    query: HarnessQuery<T>,\n  ): Promise<T | null> {\n    return await this.locatorForOptional(query)();\n  }\n\n  /**\n   * Returns child harnesses.\n   */\n  public async queryHarnesses<T extends ComponentHarness>(\n    harness: HarnessQuery<T>,\n  ): Promise<T[]> {\n    return await this.locatorForAll(harness)();\n  }\n\n  /**\n   * Returns a child test element or throws an error if not found.\n   */\n  public async querySelector(selector: string): Promise<TestElement> {\n    return await this.locatorFor(selector)();\n  }\n\n  /**\n   * Returns a child test element or null if not found.\n   */\n  public async querySelectorOrNull(\n    selector: string,\n  ): Promise<TestElement | null> {\n    return await this.locatorForOptional(selector)();\n  }\n\n  /**\n   * Returns child test elements.\n   */\n  public async querySelectorAll(selector: string): Promise<TestElement[]> {\n    return await this.locatorForAll(selector)();\n  }\n}\n","import { HarnessPredicate } from '@angular/cdk/testing';\n\nimport { SkyQueryableComponentHarness } from '../../shared/queryable-component-harness';\n\nimport { SkyOverlayHarnessFilters } from './overlay-harness-filters';\n\n/**\n * Harness for interacting with an overlay component in tests.\n * @internal\n */\nexport class SkyOverlayHarness extends SkyQueryableComponentHarness {\n  /**\n   * @internal\n   */\n  public static hostSelector = 'sky-overlay';\n\n  /**\n   * Gets a `HarnessPredicate` that can be used to search for a\n   * `SkyOverlayHarness` that meets certain criteria.\n   */\n  public static with(\n    filters: SkyOverlayHarnessFilters,\n  ): HarnessPredicate<SkyOverlayHarness> {\n    return new HarnessPredicate(SkyOverlayHarness, filters);\n  }\n}\n","import { TestElement } from '@angular/cdk/testing';\n\nexport class SkyHarnessUtility {\n  public static async getBackgroundImageUrl(\n    el: TestElement,\n  ): Promise<string | undefined> {\n    const backgroundImage = await el.getCssValue('background-image');\n\n    return /url\\(('|\")([^'\"]+)('|\")\\)/gi.exec(backgroundImage)?.[2];\n  }\n}\n","import { ComponentHarness } from '@angular/cdk/testing';\n\n/**\n * Harness used to interact with native input elements in tests.\n */\nexport class SkyInputHarness extends ComponentHarness {\n  /**\n   * Blurs the input.\n   */\n  public async blur(): Promise<void> {\n    await (await this.host()).blur();\n  }\n\n  /**\n   * Clears the input value.\n   */\n  public async clear(): Promise<void> {\n    await (await this.host()).clear();\n  }\n\n  /**\n   * Focuses the input.\n   */\n  public async focus(): Promise<void> {\n    await (await this.host()).focus();\n  }\n\n  /**\n   * Gets the value of the input.\n   */\n  public async getValue(): Promise<string> {\n    return await (await this.host()).getProperty('value');\n  }\n\n  /**\n   * Whether the input is disabled.\n   */\n  public async isDisabled(): Promise<boolean> {\n    const disabled = await (await this.host()).getAttribute('disabled');\n    return disabled !== null;\n  }\n\n  /**\n   * Whether the input is focused.\n   */\n  public async isFocused(): Promise<boolean> {\n    return await (await this.host()).isFocused();\n  }\n\n  /**\n   * Sets the value of the input. The value will be set by simulating key\n   * presses that correspond to the given value.\n   */\n  public async setValue(value: string): Promise<void> {\n    const inputEl = await this.host();\n    await inputEl.clear();\n\n    // We don't want to send keys for the value if the value is an empty\n    // string in order to clear the value. Sending keys with an empty string\n    // still results in unnecessary focus events.\n    if (value) {\n      await inputEl.sendKeys(value);\n    }\n\n    // Some input types won't respond to key presses (e.g. `color`) so to be sure that the\n    // value is set, we also set the property after the keyboard sequence. Note that we don't\n    // want to do it before, because it can cause the value to be entered twice.\n    await inputEl.setInputValue(value);\n  }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["observableOf"],"mappings":"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"}