ngx-matomo-client
Version:
Matomo (fka. Piwik) client for Angular applications
1 lines • 9.78 kB
Source Map (JSON)
{"version":3,"file":"ngx-matomo-client-testing.mjs","sources":["../../../projects/ngx-matomo-client/testing/matomo-testing-instance.ts","../../../projects/ngx-matomo-client/testing/matomo-testing-tracker.ts","../../../projects/ngx-matomo-client/testing/providers.ts","../../../projects/ngx-matomo-client/testing/matomo-testing.module.ts","../../../projects/ngx-matomo-client/testing/ngx-matomo-client-testing.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport { MatomoECommerceItem, MatomoInstance } from 'ngx-matomo-client/core';\n\nexport const MATOMO_TESTING_INSTANCE = new InjectionToken<MatomoInstance>(\n 'MATOMO_TESTING_INSTANCE',\n {\n factory: () => new MatomoTestingInstance(),\n },\n);\n\n/**\n * No-op implementation of {@link MatomoInstance}\n */\nexport class MatomoTestingInstance implements MatomoInstance {\n areCookiesEnabled(): boolean {\n return false;\n }\n\n getAttributionCampaignKeyword(): string {\n return '';\n }\n\n getAttributionCampaignName(): string {\n return '';\n }\n\n getAttributionInfo(): string[] {\n return [];\n }\n\n getAttributionReferrerTimestamp(): string {\n return '';\n }\n\n getAttributionReferrerUrl(): string {\n return '';\n }\n\n getCrossDomainLinkingUrlParameter(): string {\n return '';\n }\n\n getCurrentUrl(): string {\n return '';\n }\n\n getCustomDimension(_customDimensionId: number): string {\n return '';\n }\n\n getCustomPagePerformanceTiming(): string {\n return '';\n }\n\n getCustomVariable(_index: number, _scope: string): string {\n return '';\n }\n\n getEcommerceItems(): MatomoECommerceItem[] {\n return [];\n }\n\n getExcludedReferrers(): string[] {\n return [];\n }\n\n getLinkTrackingTimer(): number {\n return 0;\n }\n\n getMatomoUrl(): string {\n return '';\n }\n\n getPageViewId(): string {\n return '';\n }\n\n getCustomData(): unknown {\n return undefined;\n }\n\n getPiwikUrl(): string {\n return '';\n }\n\n getRememberedConsent(): number | string {\n return '';\n }\n\n getRememberedCookieConsent(): number | string {\n return '';\n }\n\n getUserId(): string {\n return '';\n }\n\n getVisitorId(): string {\n return '';\n }\n\n getVisitorInfo(): unknown[] {\n return [];\n }\n\n hasCookies(): boolean {\n return false;\n }\n\n hasRememberedConsent(): boolean {\n return false;\n }\n\n isConsentRequired(): boolean {\n return false;\n }\n\n isUserOptedOut(): boolean {\n return false;\n }\n\n getIgnoreCampaignsForReferrers(): string[] {\n return [];\n }\n}\n","import { inject, Injectable } from '@angular/core';\nimport { MatomoInstance, MatomoTracker } from 'ngx-matomo-client/core';\nimport { MATOMO_TESTING_INSTANCE } from './matomo-testing-instance';\n\n/**\n * No-op implementation of {@link MatomoTracker}\n *\n * All commands are memoized and can later be retrieved using\n * {@link getAllCommands getAllCommands()} or {@link getCommand getCommand(index)}.\n *\n * All <i>getter</i> methods will immediately resolve to an <i>empty value</i>.\n * This can be customized by setting a custom Matomo instance with {@link setMatomoInstance setMatomoInstance()}.\n */\n@Injectable()\nexport class MatomoTestingTracker extends MatomoTracker {\n #fakeInstance: MatomoInstance = inject(MATOMO_TESTING_INSTANCE);\n #paq: unknown[][] = [];\n\n /** Retrieve the current Matomo instance */\n getMatomoInstance(): MatomoInstance {\n return this.#fakeInstance;\n }\n\n /**\n * Set the current matomo instance\n *\n * @deprecated will be removed in a future version and injected from DI token `MATOMO_TESTING_INSTANCE` instead\n * @see MATOMO_TESTING_INSTANCE\n */\n setMatomoInstance(instance: MatomoInstance) {\n this.#fakeInstance = instance;\n }\n\n /** Retrieve all memoized commands */\n getAllCommands(): unknown[][] {\n return [...this.#paq];\n }\n\n /** Retrieve nth memoized command */\n getCommand(index: number): unknown[] | undefined {\n return this.#paq[index];\n }\n\n /** Clear all memoized commands */\n reset() {\n this.#paq = [];\n }\n\n protected push(command: unknown[]): void {\n this.#paq.push(command);\n }\n\n protected async pushFn<T>(fn: (matomo: MatomoInstance) => T): Promise<T> {\n return fn(this.#fakeInstance);\n }\n}\n","import { EnvironmentProviders, makeEnvironmentProviders, Provider } from '@angular/core';\nimport {\n MATOMO_CONFIGURATION,\n MatomoConfiguration,\n MatomoFeature,\n MatomoTracker,\n provideMatomo,\n ɵprovideTestingTracker as provideTestingTracker,\n} from 'ngx-matomo-client/core';\nimport { MatomoTestingTracker } from './matomo-testing-tracker';\n\n/**\n * Set up a no-op Matomo tracker. Useful for testing scenario.\n *\n *\n * Testing tracker is available as both {@link MatomoTracker} and {@link MatomoTestingTracker} injection tokens,\n * the latter allowing to customize testing behavior (see {@link MatomoTestingTracker}).\n *\n * @see MatomoTestingTracker\n */\nexport function provideMatomoTesting(\n config: Partial<MatomoConfiguration> | (() => Partial<MatomoConfiguration>) = {},\n ...features: MatomoFeature[]\n): EnvironmentProviders {\n const providers: (Provider | EnvironmentProviders)[] = [\n provideMatomo(config as MatomoConfiguration | (() => MatomoConfiguration), ...features),\n provideTestingTracker(),\n MatomoTestingTracker,\n {\n provide: MatomoTracker,\n useExisting: MatomoTestingTracker,\n },\n ];\n\n // Allow to provide a configuration, because it can be useful for users depending on `MATOMO_CONFIGURATION` in their code.\n if (typeof config === 'function') {\n providers.push({\n provide: MATOMO_CONFIGURATION,\n useFactory: config,\n });\n } else {\n providers.push({\n provide: MATOMO_CONFIGURATION,\n useValue: config,\n });\n }\n\n return makeEnvironmentProviders(providers);\n}\n","import { ModuleWithProviders, NgModule } from '@angular/core';\nimport { MATOMO_DIRECTIVES } from 'ngx-matomo-client/core';\nimport { provideMatomoTesting } from './providers';\n\n@NgModule({\n imports: [...MATOMO_DIRECTIVES],\n exports: [...MATOMO_DIRECTIVES],\n})\nexport class MatomoTestingModule {\n static forRoot(): ModuleWithProviders<MatomoTestingModule> {\n return {\n ngModule: MatomoTestingModule,\n providers: [provideMatomoTesting()],\n };\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["provideTestingTracker"],"mappings":"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"}