All files / tools/ReFlex.TrackingServer/ClientApp/src/app/test-utils zoneless-change-detection.test-context.ts

100% Statements 50/50
50% Branches 1/2
100% Functions 6/6
100% Lines 50/50

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 1223x               3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x   3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x                                                         25x 25x 25x 2x 2x   25x   25x     3x 18x     2x                                         26x 26x               26x 26x 26x 26x 26x 26x 26x 26x 26x 26x 26x 26x 26x      
import { provideHttpClient, withXhr } from '@angular/common/http';
import {
  HttpTestingController,
  provideHttpClientTesting
} from '@angular/common/http/testing';
import { Type } from '@angular/core';
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { provideRouter } from '@angular/router';
import { CalibrationService } from 'src/shared/services/calibration.service';
import { MeasureService } from 'src/shared/services/measure.service';
import { NetworkingService } from 'src/shared/services/networking.service';
import { PerformanceService } from 'src/shared/services/performance.service';
import { PointCloudService } from 'src/shared/services/point-cloud.service';
import { ProcessingService } from 'src/shared/services/processing.service';
import { RecordingService } from 'src/shared/services/recording.service';
import { SettingsService } from 'src/shared/services/settingsService';
import { TrackingService } from 'src/shared/services/tracking.service';
import { TuioService } from 'src/shared/services/tuio.service';
import { VersionInfoService } from 'src/shared/services/version.service';
import { WebSocketService } from 'src/shared/services/webSocket.service';
import { BASE_URL } from 'src/shared/tokens/base-url.token';
import type { MockedObject } from 'vitest';
import { LogService } from '../log/log.service';
import { SettingsComponent } from '../settings/settings.component';
import { MockSettingsComponent } from '../settings/settings.component.mock';
import { DepthImageComponent } from '../tracking/depth-image/depth-image.component';
import { MockDepthImageComponent } from '../tracking/depth-image/depth-image.component.mock';
import { PointCloudComponent } from '../tracking/point-cloud/point-cloud.component';
import { MockPointCloudComponent } from '../tracking/point-cloud/point-cloud.component.mock';
import { RecordingComponent } from '../tracking/recording/recording.component';
import { MockRecordingComponent } from '../tracking/recording/recording.component.mock';
import { TrackingComponent } from '../tracking/tracking.component';
import { mockService } from './zoneless-change-detection.test-data';
 
export let settings: MockedObject<SettingsService>;
 
export let tracking: MockedObject<TrackingService>;
 
export let processing: MockedObject<ProcessingService>;
 
export let calibration: MockedObject<CalibrationService>;
 
export let network: MockedObject<NetworkingService>;
 
export let tuio: MockedObject<TuioService>;
 
export let performance: MockedObject<PerformanceService>;
 
export let recording: MockedObject<RecordingService>;
 
export let measure: MockedObject<MeasureService>;
 
export let log: MockedObject<LogService>;
 
export let version: MockedObject<VersionInfoService>;
 
export let websocket: MockedObject<WebSocketService>;
 
export let pointCloud: MockedObject<PointCloudService>;
 
export async function mount<T>(type: Type<T>): Promise<ComponentFixture<T>> {
  TestBed.configureTestingModule({ imports: [type] });
  const fixture = TestBed.createComponent(type);
  for (const request of TestBed.inject(HttpTestingController).match((req) =>
    req.url.startsWith('assets/shader/'))) {
    request.flush('');
  }
  await fixture.whenStable();
 
  return fixture;
}
 
export const text = <T>(fixture: ComponentFixture<T>): string =>
  (fixture.nativeElement as HTMLElement).textContent ?? '';
 
export function isolateTracking(): void {
  TestBed.overrideComponent(TrackingComponent, {
    remove: {
      imports: [
        SettingsComponent,
        DepthImageComponent,
        PointCloudComponent,
        RecordingComponent
      ]
    },
    add: {
      imports: [
        MockSettingsComponent,
        MockDepthImageComponent,
        MockPointCloudComponent,
        MockRecordingComponent
      ]
    }
  });
}
 
export function setupTests(): void {
  beforeEach(() => {
    TestBed.configureTestingModule({
      providers: [
        provideHttpClient(withXhr()),
        provideHttpClientTesting(),
        provideRouter([]),
        { provide: BASE_URL, useValue: 'http://localhost/' }
      ]
    });
    settings = mockService(SettingsService);
    tracking = mockService(TrackingService);
    processing = mockService(ProcessingService);
    calibration = mockService(CalibrationService);
    network = mockService(NetworkingService);
    tuio = mockService(TuioService);
    performance = mockService(PerformanceService);
    recording = mockService(RecordingService);
    measure = mockService(MeasureService);
    log = mockService(LogService);
    version = mockService(VersionInfoService);
    websocket = mockService(WebSocketService);
    pointCloud = mockService(PointCloudService);
  });
}