{"version":3,"file":"ngneat-spectator-vitest.mjs","sources":["../../../projects/spectator/vitest/src/lib/mock.ts","../../../projects/spectator/vitest/src/lib/spectator.ts","../../../projects/spectator/vitest/src/lib/spectator-http.ts","../../../projects/spectator/vitest/src/lib/spectator-directive.ts","../../../projects/spectator/vitest/src/lib/spectator-service.ts","../../../projects/spectator/vitest/src/lib/spectator-host.ts","../../../projects/spectator/vitest/src/lib/spectator-routing.ts","../../../projects/spectator/vitest/src/lib/spectator-pipe.ts","../../../projects/spectator/vitest/src/lib/spectator-injection-context.ts","../../../projects/spectator/vitest/src/public_api.ts","../../../projects/spectator/vitest/src/ngneat-spectator-vitest.ts"],"sourcesContent":["import { FactoryProvider, AbstractType, Type } from '@angular/core';\nimport { installProtoMethods, CompatibleSpy, SpyObject as BaseSpyObject } from '@ngneat/spectator';\nimport { Mock, vi } from 'vitest';\n\nexport type SpyObject<T> = BaseSpyObject<T> & {\n  [P in keyof T]: T[P] & (T[P] extends (...args: any[]) => infer R ? (R extends (...args: any[]) => any ? Mock<R> : Mock<T[P]>) : T[P]);\n};\n\n/**\n * @publicApi\n */\nexport function createSpyObject<T>(type: Type<T> | AbstractType<T>, template?: Partial<Record<keyof T, any>>): SpyObject<T> {\n  const mock: any = { ...template };\n\n  installProtoMethods(mock, type.prototype, () => {\n    const viFn = vi.fn();\n    const newSpy: CompatibleSpy = viFn as any;\n\n    newSpy.andCallFake = (fn: Function) => {\n      viFn.mockImplementation(fn as (...args: any[]) => any);\n\n      return newSpy;\n    };\n\n    newSpy.andReturn = (val: any) => {\n      viFn.mockReturnValue(val);\n    };\n\n    newSpy.reset = () => {\n      viFn.mockReset();\n    };\n\n    return newSpy;\n  });\n\n  return mock;\n}\n\n/**\n * @publicApi\n */\nexport function mockProvider<T>(type: Type<T> | AbstractType<T>, properties?: Partial<Record<keyof T, any>>): FactoryProvider {\n  return {\n    provide: type,\n    useFactory: () => createSpyObject(type, properties),\n  };\n}\n","import { Type } from '@angular/core';\nimport {\n  createComponentFactory as baseCreateComponentFactory,\n  isType,\n  Spectator as BaseSpectator,\n  SpectatorOptions,\n  SpectatorOverrides,\n  Token,\n} from '@ngneat/spectator';\n\nimport { mockProvider, SpyObject } from './mock';\n\n/**\n * @publicApi\n */\nexport type SpectatorFactory<C> = (options?: SpectatorOverrides<C>) => Spectator<C>;\n\nexport function createComponentFactory<C>(typeOrOptions: SpectatorOptions<C> | Type<C>): SpectatorFactory<C> {\n  return baseCreateComponentFactory({\n    mockProvider,\n    ...(isType(typeOrOptions) ? { component: typeOrOptions } : typeOrOptions),\n  }) as SpectatorFactory<C>;\n}\n\nexport class Spectator<C> extends BaseSpectator<C> {\n  public inject<T>(token: Token<T>, fromComponentInjector: boolean = false): SpyObject<T> {\n    return super.inject(token, fromComponentInjector) as SpyObject<T>;\n  }\n}\n","import { Type } from '@angular/core';\nimport {\n  createHttpFactory as baseCreateHttpFactory,\n  isType,\n  CreateHttpOverrides,\n  HttpMethod,\n  SpectatorHttp as BaseSpectatorHttp,\n  SpectatorHttpOptions,\n  Token,\n} from '@ngneat/spectator';\n\nimport { mockProvider, SpyObject } from './mock';\n\n/**\n * @publicApi\n */\nexport interface SpectatorHttp<S> extends BaseSpectatorHttp<S> {\n  inject<T>(token: Token<T>): SpyObject<T>;\n}\n\n/**\n * @publicApi\n */\nexport { HttpMethod };\n\n/**\n * @pubicApi\n */\nexport type SpectatorHttpFactory<S> = (overrides?: CreateHttpOverrides<S>) => SpectatorHttp<S>;\n\n/**\n * @publicApi\n */\nexport function createHttpFactory<S>(typeOrOptions: SpectatorHttpOptions<S> | Type<S>): SpectatorHttpFactory<S> {\n  return baseCreateHttpFactory({\n    mockProvider,\n    ...(isType(typeOrOptions) ? { service: typeOrOptions } : typeOrOptions),\n  }) as SpectatorHttpFactory<S>;\n}\n","import { Type } from '@angular/core';\nimport {\n  createDirectiveFactory as baseCreateDirectiveFactory,\n  SpectatorDirective as BaseSpectatorDirective,\n  HostComponent,\n  isType,\n  SpectatorDirectiveOptions,\n  SpectatorDirectiveOverrides,\n  Token,\n} from '@ngneat/spectator';\n\nimport { mockProvider, SpyObject } from './mock';\n\n/**\n * @publicApi\n */\nexport class SpectatorDirective<D, H = HostComponent> extends BaseSpectatorDirective<D, H> {\n  public inject<T>(token: Token<T>, fromComponentInjector: boolean = false): SpyObject<T> {\n    return super.inject(token, fromComponentInjector) as SpyObject<T>;\n  }\n}\n\n/**\n * @publicApi\n */\nexport type SpectatorDirectiveFactory<D, H = HostComponent> = <HP>(\n  template: string,\n  overrides?: SpectatorDirectiveOverrides<H, HP>,\n) => SpectatorDirective<D, H & HostComponent extends H ? HP : unknown>;\n\n/**\n * @publicApi\n */\nexport type PresetSpectatorDirectiveFactory<D, H> = <HP>(\n  template?: string,\n  overrides?: SpectatorDirectiveOverrides<H, HP>,\n) => SpectatorDirective<D, H & HostComponent extends H ? HP : unknown>;\n\n/**\n * @publicApi\n */\nexport function createDirectiveFactory<D, H = HostComponent>(\n  options: SpectatorDirectiveOptions<D, H> & { template: string },\n): PresetSpectatorDirectiveFactory<D, H>;\n/**\n * @publicApi\n */\nexport function createDirectiveFactory<D, H = HostComponent>(\n  typeOrOptions: Type<D> | SpectatorDirectiveOptions<D, H>,\n): SpectatorDirectiveFactory<D, H>;\nexport function createDirectiveFactory<D, H = HostComponent>(\n  typeOrOptions: Type<D> | SpectatorDirectiveOptions<D, H>,\n): SpectatorDirectiveFactory<D, H> {\n  return baseCreateDirectiveFactory({\n    mockProvider,\n    ...(isType(typeOrOptions) ? { directive: typeOrOptions } : typeOrOptions),\n  }) as SpectatorDirectiveFactory<D, H>;\n}\n","import { Type, InjectionToken, AbstractType } from '@angular/core';\nimport {\n  createServiceFactory as baseCreateServiceFactory,\n  isType,\n  SpectatorServiceOverrides,\n  SpectatorServiceOptions,\n  SpectatorService as BaseSpectatorService,\n  Token,\n} from '@ngneat/spectator';\n\nimport { mockProvider, SpyObject } from './mock';\n\n/**\n * @publicApi\n */\nexport interface SpectatorService<S> extends BaseSpectatorService<S> {\n  inject<T>(token: Type<T> | InjectionToken<T> | AbstractType<T>): SpyObject<T>;\n}\n\n/**\n * @publicApi\n */\nexport type SpectatorServiceFactory<S> = (overrides?: SpectatorServiceOverrides<S>) => SpectatorService<S>;\n\n/**\n * @publicApi\n */\nexport function createServiceFactory<S>(typeOrOptions: SpectatorServiceOptions<S> | Type<S>): SpectatorServiceFactory<S> {\n  return baseCreateServiceFactory({\n    mockProvider,\n    ...(isType(typeOrOptions) ? { service: typeOrOptions } : typeOrOptions),\n  }) as SpectatorServiceFactory<S>;\n}\n","import { Type } from '@angular/core';\nimport {\n  createHostFactory as baseCreateHostFactory,\n  SpectatorHost as BaseSpectatorHost,\n  HostComponent,\n  isType,\n  SpectatorHostOptions,\n  SpectatorHostOverrides,\n  Token,\n} from '@ngneat/spectator';\n\nimport { mockProvider, SpyObject } from './mock';\n\n/**\n * @publicApi\n */\nexport class SpectatorHost<C, H = HostComponent> extends BaseSpectatorHost<C, H> {\n  public inject<T>(token: Token<T>, fromComponentInjector: boolean = false): SpyObject<T> {\n    return super.inject(token, fromComponentInjector) as SpyObject<T>;\n  }\n}\n\n/**\n * @publicApi\n */\nexport type SpectatorHostFactory<C, H> = <HP>(\n  template: string,\n  overrides?: SpectatorHostOverrides<H, HP>,\n) => SpectatorHost<C, H & HostComponent extends H ? HP : unknown>;\n\n/**\n * @publicApi\n */\nexport type PresetSpectatorHostFactory<C, H> = <HP>(\n  template?: string,\n  overrides?: SpectatorHostOverrides<H, HP>,\n) => SpectatorHost<C, H & (HostComponent extends H ? HP : unknown)>;\n\n/**\n * @publicApi\n */\nexport function createHostFactory<C, H = HostComponent>(\n  options: SpectatorHostOptions<C, H> & { template: string },\n): PresetSpectatorHostFactory<C, H>;\n/**\n * @publicApi\n */\nexport function createHostFactory<C, H = HostComponent>(typeOrOptions: Type<C> | SpectatorHostOptions<C, H>): SpectatorHostFactory<C, H>;\nexport function createHostFactory<C, H = HostComponent>(typeOrOptions: Type<C> | SpectatorHostOptions<C, H>): SpectatorHostFactory<C, H> {\n  return baseCreateHostFactory({\n    mockProvider,\n    ...(isType(typeOrOptions) ? { component: typeOrOptions } : typeOrOptions),\n  }) as SpectatorHostFactory<C, H>;\n}\n","import { Type } from '@angular/core';\nimport {\n  createRoutingFactory as baseCreateRoutingFactory,\n  isType,\n  SpectatorRouting as BaseSpectatorRouting,\n  SpectatorRoutingOptions,\n  SpectatorRoutingOverrides,\n  Token,\n} from '@ngneat/spectator';\n\nimport { mockProvider, SpyObject } from './mock';\n\n/**\n * @publicApi\n */\nexport class SpectatorRouting<C> extends BaseSpectatorRouting<C> {\n  public inject<T>(token: Token<T>, fromComponentInjector: boolean = false): SpyObject<T> {\n    return super.inject(token, fromComponentInjector) as SpyObject<T>;\n  }\n}\n\n/**\n * @publicApi\n */\nexport type SpectatorRoutingFactory<C> = (overrides?: SpectatorRoutingOverrides<C>) => SpectatorRouting<C>;\n\n/**\n * @publicApi\n */\nexport function createRoutingFactory<C>(typeOrOptions: SpectatorRoutingOptions<C> | Type<C>): SpectatorRoutingFactory<C> {\n  return baseCreateRoutingFactory({\n    mockProvider,\n    ...(isType(typeOrOptions) ? { component: typeOrOptions } : typeOrOptions),\n  }) as SpectatorRoutingFactory<C>;\n}\n","import { Type } from '@angular/core';\nimport {\n  createPipeFactory as baseCreatePipeFactory,\n  isType,\n  HostComponent,\n  SpectatorPipe as BaseSpectatorPipe,\n  SpectatorPipeOptions,\n  SpectatorPipeOverrides,\n  Token,\n} from '@ngneat/spectator';\n\nimport { mockProvider, SpyObject } from './mock';\n\n/**\n * @publicApi\n */\nexport class SpectatorPipe<P, H = HostComponent> extends BaseSpectatorPipe<P, H> {\n  public inject<T>(token: Token<T>): SpyObject<T> {\n    return super.inject(token) as SpyObject<T>;\n  }\n}\n\n/**\n * @publicApi\n */\nexport type SpectatorPipeFactory<P, H> = <HP>(\n  templateOrOverrides?: string | SpectatorPipeOverrides<H, HP>,\n  overrides?: SpectatorPipeOverrides<H, HP>,\n) => SpectatorPipe<P, H & (HostComponent extends H ? HP : unknown)>;\n\n/**\n * @publicApi\n */\nexport function createPipeFactory<P, H = HostComponent>(typeOrOptions: Type<P> | SpectatorPipeOptions<P, H>): SpectatorPipeFactory<P, H> {\n  return baseCreatePipeFactory({\n    mockProvider,\n    ...(isType(typeOrOptions) ? { pipe: typeOrOptions } : typeOrOptions),\n  }) as SpectatorPipeFactory<P, H>;\n}\n","import { AbstractType, InjectionToken, Type } from '@angular/core';\nimport {\n  createInjectionContextFactory as baseInjectionContextFactory,\n  SpectatorInjectionContextOverrides,\n  SpectatorInjectionContextOptions,\n  SpectatorInjectionContext as BaseSpectatorInjectionContext,\n} from '@ngneat/spectator';\nimport { mockProvider, SpyObject } from './mock';\n\n/**\n * @publicApi\n */\nexport interface SpectatorInjectionContext extends BaseSpectatorInjectionContext {\n  inject<T>(token: Type<T> | InjectionToken<T> | AbstractType<T>): SpyObject<T>;\n}\n\n/**\n * @publicApi\n */\nexport type SpectatorInjectionContextFactory = (overrides?: SpectatorInjectionContextOverrides) => SpectatorInjectionContext;\n\n/**\n * @publicApi\n */\nexport function createInjectionContextFactory(options: SpectatorInjectionContextOptions): SpectatorInjectionContextFactory {\n  return baseInjectionContextFactory({\n    mockProvider,\n    ...options,\n  }) as SpectatorInjectionContextFactory;\n}\n","/// <reference types=\"vitest\" />\n/// <reference path=\"./lib/matchers-types.ts\" preserve=\"true\" />\nexport * from './lib/dom-selectors';\nexport * from './lib/mock';\nexport * from './lib/spectator';\nexport * from './lib/spectator-http';\nexport * from './lib/spectator-directive';\nexport * from './lib/spectator-service';\nexport * from './lib/spectator-host';\nexport * from './lib/spectator-routing';\nexport * from './lib/spectator-pipe';\nexport * from './lib/spectator-injection-context';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["baseCreateComponentFactory","BaseSpectator","baseCreateHttpFactory","BaseSpectatorDirective","baseCreateDirectiveFactory","baseCreateServiceFactory","BaseSpectatorHost","baseCreateHostFactory","BaseSpectatorRouting","baseCreateRoutingFactory","BaseSpectatorPipe","baseCreatePipeFactory","baseInjectionContextFactory"],"mappings":"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"}