mirror of
https://github.com/DSpace/dspace-angular.git
synced 2025-10-07 18:14:17 +00:00
[CST-18964] add tests
This commit is contained in:
@@ -36,6 +36,8 @@ import { ViewMode } from '../view-mode.model';
|
|||||||
import { SearchService } from './search.service';
|
import { SearchService } from './search.service';
|
||||||
import { SearchConfigurationService } from './search-configuration.service';
|
import { SearchConfigurationService } from './search-configuration.service';
|
||||||
import anything = jasmine.anything;
|
import anything = jasmine.anything;
|
||||||
|
import { MatomoTestingModule } from 'ngx-matomo-client/testing';
|
||||||
|
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
template: '',
|
template: '',
|
||||||
@@ -55,6 +57,7 @@ describe('SearchService', () => {
|
|||||||
TestBed.configureTestingModule({
|
TestBed.configureTestingModule({
|
||||||
imports: [
|
imports: [
|
||||||
CommonModule,
|
CommonModule,
|
||||||
|
MatomoTestingModule.forRoot(),
|
||||||
RouterTestingModule.withRoutes([
|
RouterTestingModule.withRoutes([
|
||||||
{ path: 'search', component: DummyComponent, pathMatch: 'full' },
|
{ path: 'search', component: DummyComponent, pathMatch: 'full' },
|
||||||
]),
|
]),
|
||||||
@@ -122,6 +125,7 @@ describe('SearchService', () => {
|
|||||||
TestBed.configureTestingModule({
|
TestBed.configureTestingModule({
|
||||||
imports: [
|
imports: [
|
||||||
CommonModule,
|
CommonModule,
|
||||||
|
MatomoTestingModule.forRoot(),
|
||||||
RouterTestingModule.withRoutes([
|
RouterTestingModule.withRoutes([
|
||||||
{ path: 'search', component: DummyComponent, pathMatch: 'full' },
|
{ path: 'search', component: DummyComponent, pathMatch: 'full' },
|
||||||
]),
|
]),
|
||||||
|
@@ -1,16 +1,84 @@
|
|||||||
import { TestBed } from '@angular/core/testing';
|
import { TestBed } from '@angular/core/testing';
|
||||||
|
import {
|
||||||
|
MatomoInitializerService,
|
||||||
|
MatomoTracker,
|
||||||
|
} from 'ngx-matomo-client';
|
||||||
|
import { MatomoTestingModule } from 'ngx-matomo-client/testing';
|
||||||
|
import { of } from 'rxjs';
|
||||||
|
|
||||||
|
import { environment } from '../../environments/environment';
|
||||||
|
import {
|
||||||
|
NativeWindowRef,
|
||||||
|
NativeWindowService,
|
||||||
|
} from '../core/services/window.service';
|
||||||
|
import { OrejimeService } from '../shared/cookies/orejime.service';
|
||||||
import { MatomoService } from './matomo.service';
|
import { MatomoService } from './matomo.service';
|
||||||
|
|
||||||
describe('MatomoService', () => {
|
describe('MatomoService', () => {
|
||||||
let service: MatomoService;
|
let service: MatomoService;
|
||||||
|
let matomoTracker: jasmine.SpyObj<MatomoTracker>;
|
||||||
|
let matomoInitializer: jasmine.SpyObj<MatomoInitializerService>;
|
||||||
|
let orejimeService: jasmine.SpyObj<OrejimeService>;
|
||||||
|
let nativeWindowService: jasmine.SpyObj<NativeWindowRef>;
|
||||||
|
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
TestBed.configureTestingModule({});
|
matomoTracker = jasmine.createSpyObj('MatomoTracker', ['setConsentGiven', 'forgetConsentGiven']);
|
||||||
|
matomoInitializer = jasmine.createSpyObj('MatomoInitializerService', ['initializeTracker']);
|
||||||
|
orejimeService = jasmine.createSpyObj('OrejimeService', ['getSavedPreferences']);
|
||||||
|
nativeWindowService = jasmine.createSpyObj('NativeWindowService', [], { nativeWindow: {} });
|
||||||
|
|
||||||
|
TestBed.configureTestingModule({
|
||||||
|
imports: [MatomoTestingModule.forRoot()],
|
||||||
|
providers: [
|
||||||
|
{ provide: MatomoTracker, useValue: matomoTracker },
|
||||||
|
{ provide: MatomoInitializerService, useValue: matomoInitializer },
|
||||||
|
{ provide: OrejimeService, useValue: orejimeService },
|
||||||
|
{ provide: NativeWindowService, useValue: nativeWindowService },
|
||||||
|
],
|
||||||
|
});
|
||||||
|
|
||||||
service = TestBed.inject(MatomoService);
|
service = TestBed.inject(MatomoService);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should be created', () => {
|
it('should be created', () => {
|
||||||
expect(service).toBeTruthy();
|
expect(service).toBeTruthy();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('should set changeMatomoConsent on native window', () => {
|
||||||
|
orejimeService.getSavedPreferences.and.returnValue(of({ matomo: true }));
|
||||||
|
service.init();
|
||||||
|
expect(nativeWindowService.nativeWindow.changeMatomoConsent).toBe(service.changeMatomoConsent);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should initialize tracker with correct parameters in production', () => {
|
||||||
|
environment.production = true;
|
||||||
|
environment.matomo = { siteId: '1', trackerUrl: 'http://example.com' };
|
||||||
|
orejimeService.getSavedPreferences.and.returnValue(of({ matomo: true }));
|
||||||
|
|
||||||
|
service.init();
|
||||||
|
|
||||||
|
expect(matomoTracker.setConsentGiven).toHaveBeenCalled();
|
||||||
|
expect(matomoInitializer.initializeTracker).toHaveBeenCalledWith({
|
||||||
|
siteId: '1',
|
||||||
|
trackerUrl: 'http://example.com',
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should not initialize tracker if not in production', () => {
|
||||||
|
environment.production = false;
|
||||||
|
|
||||||
|
service.init();
|
||||||
|
|
||||||
|
expect(matomoInitializer.initializeTracker).not.toHaveBeenCalled();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should call setConsentGiven when consent is true', () => {
|
||||||
|
service.changeMatomoConsent(true);
|
||||||
|
expect(matomoTracker.setConsentGiven).toHaveBeenCalled();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should call forgetConsentGiven when consent is false', () => {
|
||||||
|
service.changeMatomoConsent(false);
|
||||||
|
expect(matomoTracker.forgetConsentGiven).toHaveBeenCalled();
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
@@ -1,3 +1,4 @@
|
|||||||
export class MockMatomoTracker {
|
export class MockMatomoTracker {
|
||||||
trackSiteSearch = () => {};
|
trackSiteSearch = () => {};
|
||||||
|
trackPageView = () => {};
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user