upgrade tests
This commit is contained in:
		
							parent
							
								
									cde1760099
								
							
						
					
					
						commit
						657f8e7a03
					
				| 
						 | 
				
			
			@ -5,10 +5,15 @@ import { PassengerOrientedAlgorithm } from './passenger-oriented-algorithm';
 | 
			
		|||
import { AlgorithmType } from '../../types/algorithm.types';
 | 
			
		||||
import { Inject } from '@nestjs/common';
 | 
			
		||||
import { AdRepositoryPort } from '@modules/ad/core/application/ports/ad.repository.port';
 | 
			
		||||
import { AD_REPOSITORY, PARAMS_PROVIDER } from '@modules/ad/ad.di-tokens';
 | 
			
		||||
import {
 | 
			
		||||
  AD_REPOSITORY,
 | 
			
		||||
  INPUT_DATETIME_TRANSFORMER,
 | 
			
		||||
  PARAMS_PROVIDER,
 | 
			
		||||
} from '@modules/ad/ad.di-tokens';
 | 
			
		||||
import { MatchEntity } from '@modules/ad/core/domain/match.entity';
 | 
			
		||||
import { DefaultParamsProviderPort } from '../../ports/default-params-provider.port';
 | 
			
		||||
import { DefaultParams } from '../../ports/default-params.type';
 | 
			
		||||
import { DateTimeTransformerPort } from '../../ports/datetime-transformer.port';
 | 
			
		||||
 | 
			
		||||
@QueryHandler(MatchQuery)
 | 
			
		||||
export class MatchQueryHandler implements IQueryHandler {
 | 
			
		||||
| 
						 | 
				
			
			@ -18,6 +23,8 @@ export class MatchQueryHandler implements IQueryHandler {
 | 
			
		|||
    @Inject(PARAMS_PROVIDER)
 | 
			
		||||
    private readonly defaultParamsProvider: DefaultParamsProviderPort,
 | 
			
		||||
    @Inject(AD_REPOSITORY) private readonly repository: AdRepositoryPort,
 | 
			
		||||
    @Inject(INPUT_DATETIME_TRANSFORMER)
 | 
			
		||||
    private readonly datetimeTransformer: DateTimeTransformerPort,
 | 
			
		||||
  ) {
 | 
			
		||||
    this._defaultParams = defaultParamsProvider.getParams();
 | 
			
		||||
  }
 | 
			
		||||
| 
						 | 
				
			
			@ -34,14 +41,17 @@ export class MatchQueryHandler implements IQueryHandler {
 | 
			
		|||
      })
 | 
			
		||||
      .setDefaultAlgorithmParameters({
 | 
			
		||||
        algorithmType: this._defaultParams.ALGORITHM_TYPE,
 | 
			
		||||
        remoteness: 0,
 | 
			
		||||
        useProportion: false,
 | 
			
		||||
        proportion: 0,
 | 
			
		||||
        useAzimuth: false,
 | 
			
		||||
        azimuthMargin: 0,
 | 
			
		||||
        maxDetourDistanceRatio: 0,
 | 
			
		||||
        maxDetourDurationRatio: 0,
 | 
			
		||||
      });
 | 
			
		||||
        remoteness: this._defaultParams.REMOTENESS,
 | 
			
		||||
        useProportion: this._defaultParams.USE_PROPORTION,
 | 
			
		||||
        proportion: this._defaultParams.PROPORTION,
 | 
			
		||||
        useAzimuth: this._defaultParams.USE_AZIMUTH,
 | 
			
		||||
        azimuthMargin: this._defaultParams.AZIMUTH_MARGIN,
 | 
			
		||||
        maxDetourDistanceRatio: this._defaultParams.MAX_DETOUR_DISTANCE_RATIO,
 | 
			
		||||
        maxDetourDurationRatio: this._defaultParams.MAX_DETOUR_DURATION_RATIO,
 | 
			
		||||
      })
 | 
			
		||||
      .setDatesAndSchedule(this.datetimeTransformer);
 | 
			
		||||
 | 
			
		||||
    console.log(query);
 | 
			
		||||
 | 
			
		||||
    let algorithm: Algorithm;
 | 
			
		||||
    switch (query.algorithmType) {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -3,13 +3,14 @@ import { AlgorithmType } from '../../types/algorithm.types';
 | 
			
		|||
import { Waypoint } from '../../types/waypoint.type';
 | 
			
		||||
import { Frequency } from '@modules/ad/core/domain/ad.types';
 | 
			
		||||
import { MatchRequestDto } from '@modules/ad/interface/grpc-controllers/dtos/match.request.dto';
 | 
			
		||||
import { DateTimeTransformerPort } from '../../ports/datetime-transformer.port';
 | 
			
		||||
 | 
			
		||||
export class MatchQuery extends QueryBase {
 | 
			
		||||
  driver?: boolean;
 | 
			
		||||
  passenger?: boolean;
 | 
			
		||||
  readonly frequency: Frequency;
 | 
			
		||||
  readonly fromDate: string;
 | 
			
		||||
  readonly toDate: string;
 | 
			
		||||
  fromDate: string;
 | 
			
		||||
  toDate: string;
 | 
			
		||||
  schedule: ScheduleItem[];
 | 
			
		||||
  seatsProposed?: number;
 | 
			
		||||
  seatsRequested?: number;
 | 
			
		||||
| 
						 | 
				
			
			@ -104,6 +105,61 @@ export class MatchQuery extends QueryBase {
 | 
			
		|||
        defaultAlgorithmParameters.maxDetourDurationRatio;
 | 
			
		||||
    return this;
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  setDatesAndSchedule = (
 | 
			
		||||
    datetimeTransformer: DateTimeTransformerPort,
 | 
			
		||||
  ): MatchQuery => {
 | 
			
		||||
    this.fromDate = datetimeTransformer.fromDate(
 | 
			
		||||
      {
 | 
			
		||||
        date: this.fromDate,
 | 
			
		||||
        time: this.schedule[0].time,
 | 
			
		||||
        coordinates: {
 | 
			
		||||
          lon: this.waypoints[0].lon,
 | 
			
		||||
          lat: this.waypoints[0].lat,
 | 
			
		||||
        },
 | 
			
		||||
      },
 | 
			
		||||
      this.frequency,
 | 
			
		||||
    );
 | 
			
		||||
    this.toDate = datetimeTransformer.toDate(
 | 
			
		||||
      this.toDate,
 | 
			
		||||
      {
 | 
			
		||||
        date: this.fromDate,
 | 
			
		||||
        time: this.schedule[0].time,
 | 
			
		||||
        coordinates: {
 | 
			
		||||
          lon: this.waypoints[0].lon,
 | 
			
		||||
          lat: this.waypoints[0].lat,
 | 
			
		||||
        },
 | 
			
		||||
      },
 | 
			
		||||
      this.frequency,
 | 
			
		||||
    );
 | 
			
		||||
    this.schedule = this.schedule.map((scheduleItem: ScheduleItem) => ({
 | 
			
		||||
      day: datetimeTransformer.day(
 | 
			
		||||
        scheduleItem.day ?? new Date(this.fromDate).getDay(),
 | 
			
		||||
        {
 | 
			
		||||
          date: this.fromDate,
 | 
			
		||||
          time: scheduleItem.time,
 | 
			
		||||
          coordinates: {
 | 
			
		||||
            lon: this.waypoints[0].lon,
 | 
			
		||||
            lat: this.waypoints[0].lat,
 | 
			
		||||
          },
 | 
			
		||||
        },
 | 
			
		||||
        this.frequency,
 | 
			
		||||
      ),
 | 
			
		||||
      time: datetimeTransformer.time(
 | 
			
		||||
        {
 | 
			
		||||
          date: this.fromDate,
 | 
			
		||||
          time: scheduleItem.time,
 | 
			
		||||
          coordinates: {
 | 
			
		||||
            lon: this.waypoints[0].lon,
 | 
			
		||||
            lat: this.waypoints[0].lat,
 | 
			
		||||
          },
 | 
			
		||||
        },
 | 
			
		||||
        this.frequency,
 | 
			
		||||
      ),
 | 
			
		||||
      margin: scheduleItem.margin,
 | 
			
		||||
    }));
 | 
			
		||||
    return this;
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type ScheduleItem = {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,4 +1,9 @@
 | 
			
		|||
import { AD_REPOSITORY, PARAMS_PROVIDER } from '@modules/ad/ad.di-tokens';
 | 
			
		||||
import {
 | 
			
		||||
  AD_REPOSITORY,
 | 
			
		||||
  INPUT_DATETIME_TRANSFORMER,
 | 
			
		||||
  PARAMS_PROVIDER,
 | 
			
		||||
} from '@modules/ad/ad.di-tokens';
 | 
			
		||||
import { DateTimeTransformerPort } from '@modules/ad/core/application/ports/datetime-transformer.port';
 | 
			
		||||
import { DefaultParamsProviderPort } from '@modules/ad/core/application/ports/default-params-provider.port';
 | 
			
		||||
import { MatchQuery } from '@modules/ad/core/application/queries/match/match.query';
 | 
			
		||||
import { MatchQueryHandler } from '@modules/ad/core/application/queries/match/match.query-handler';
 | 
			
		||||
| 
						 | 
				
			
			@ -60,6 +65,13 @@ const mockDefaultParamsProvider: DefaultParamsProviderPort = {
 | 
			
		|||
  },
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
const mockInputDateTimeTransformer: DateTimeTransformerPort = {
 | 
			
		||||
  fromDate: jest.fn(),
 | 
			
		||||
  toDate: jest.fn(),
 | 
			
		||||
  day: jest.fn(),
 | 
			
		||||
  time: jest.fn(),
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
describe('Match Query Handler', () => {
 | 
			
		||||
  let matchQueryHandler: MatchQueryHandler;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -75,6 +87,10 @@ describe('Match Query Handler', () => {
 | 
			
		|||
          provide: PARAMS_PROVIDER,
 | 
			
		||||
          useValue: mockDefaultParamsProvider,
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
          provide: INPUT_DATETIME_TRANSFORMER,
 | 
			
		||||
          useValue: mockInputDateTimeTransformer,
 | 
			
		||||
        },
 | 
			
		||||
      ],
 | 
			
		||||
    }).compile();
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -0,0 +1,127 @@
 | 
			
		|||
import { DateTimeTransformerPort } from '@modules/ad/core/application/ports/datetime-transformer.port';
 | 
			
		||||
import { DefaultParams } from '@modules/ad/core/application/ports/default-params.type';
 | 
			
		||||
import { MatchQuery } from '@modules/ad/core/application/queries/match/match.query';
 | 
			
		||||
import { AlgorithmType } from '@modules/ad/core/application/types/algorithm.types';
 | 
			
		||||
import { Waypoint } from '@modules/ad/core/application/types/waypoint.type';
 | 
			
		||||
import { Frequency } from '@modules/ad/core/domain/ad.types';
 | 
			
		||||
 | 
			
		||||
const originWaypoint: Waypoint = {
 | 
			
		||||
  position: 0,
 | 
			
		||||
  lat: 48.689445,
 | 
			
		||||
  lon: 6.17651,
 | 
			
		||||
  houseNumber: '5',
 | 
			
		||||
  street: 'Avenue Foch',
 | 
			
		||||
  locality: 'Nancy',
 | 
			
		||||
  postalCode: '54000',
 | 
			
		||||
  country: 'France',
 | 
			
		||||
};
 | 
			
		||||
const destinationWaypoint: Waypoint = {
 | 
			
		||||
  position: 1,
 | 
			
		||||
  lat: 48.8566,
 | 
			
		||||
  lon: 2.3522,
 | 
			
		||||
  locality: 'Paris',
 | 
			
		||||
  postalCode: '75000',
 | 
			
		||||
  country: 'France',
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
const defaultParams: DefaultParams = {
 | 
			
		||||
  DEPARTURE_TIME_MARGIN: 900,
 | 
			
		||||
  DRIVER: false,
 | 
			
		||||
  SEATS_PROPOSED: 3,
 | 
			
		||||
  PASSENGER: true,
 | 
			
		||||
  SEATS_REQUESTED: 1,
 | 
			
		||||
  STRICT: false,
 | 
			
		||||
  TIMEZONE: 'Europe/Paris',
 | 
			
		||||
  ALGORITHM_TYPE: AlgorithmType.PASSENGER_ORIENTED,
 | 
			
		||||
  REMOTENESS: 15000,
 | 
			
		||||
  USE_PROPORTION: true,
 | 
			
		||||
  PROPORTION: 0.3,
 | 
			
		||||
  USE_AZIMUTH: true,
 | 
			
		||||
  AZIMUTH_MARGIN: 10,
 | 
			
		||||
  MAX_DETOUR_DISTANCE_RATIO: 0.3,
 | 
			
		||||
  MAX_DETOUR_DURATION_RATIO: 0.3,
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
const mockInputDateTimeTransformer: DateTimeTransformerPort = {
 | 
			
		||||
  fromDate: jest.fn().mockImplementation(() => '2023-08-27'),
 | 
			
		||||
  toDate: jest.fn().mockImplementation(() => '2023-08-27'),
 | 
			
		||||
  day: jest.fn().mockImplementation(() => 0),
 | 
			
		||||
  time: jest.fn().mockImplementation(() => '23:05'),
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
describe('Match Query', () => {
 | 
			
		||||
  it('should set default values', async () => {
 | 
			
		||||
    const matchQuery = new MatchQuery({
 | 
			
		||||
      frequency: Frequency.PUNCTUAL,
 | 
			
		||||
      fromDate: '2023-08-28',
 | 
			
		||||
      toDate: '2023-08-28',
 | 
			
		||||
      schedule: [
 | 
			
		||||
        {
 | 
			
		||||
          time: '01:05',
 | 
			
		||||
        },
 | 
			
		||||
      ],
 | 
			
		||||
      waypoints: [originWaypoint, destinationWaypoint],
 | 
			
		||||
    });
 | 
			
		||||
    matchQuery
 | 
			
		||||
      .setMissingMarginDurations(defaultParams.DEPARTURE_TIME_MARGIN)
 | 
			
		||||
      .setMissingStrict(defaultParams.STRICT)
 | 
			
		||||
      .setDefaultDriverAndPassengerParameters({
 | 
			
		||||
        driver: defaultParams.DRIVER,
 | 
			
		||||
        passenger: defaultParams.PASSENGER,
 | 
			
		||||
        seatsProposed: defaultParams.SEATS_PROPOSED,
 | 
			
		||||
        seatsRequested: defaultParams.SEATS_REQUESTED,
 | 
			
		||||
      })
 | 
			
		||||
      .setDefaultAlgorithmParameters({
 | 
			
		||||
        algorithmType: defaultParams.ALGORITHM_TYPE,
 | 
			
		||||
        remoteness: defaultParams.REMOTENESS,
 | 
			
		||||
        useProportion: defaultParams.USE_PROPORTION,
 | 
			
		||||
        proportion: defaultParams.PROPORTION,
 | 
			
		||||
        useAzimuth: defaultParams.USE_AZIMUTH,
 | 
			
		||||
        azimuthMargin: defaultParams.AZIMUTH_MARGIN,
 | 
			
		||||
        maxDetourDistanceRatio: defaultParams.MAX_DETOUR_DISTANCE_RATIO,
 | 
			
		||||
        maxDetourDurationRatio: defaultParams.MAX_DETOUR_DURATION_RATIO,
 | 
			
		||||
      })
 | 
			
		||||
      .setDatesAndSchedule(mockInputDateTimeTransformer);
 | 
			
		||||
    expect(matchQuery.strict).toBeFalsy();
 | 
			
		||||
    expect(matchQuery.driver).toBeFalsy();
 | 
			
		||||
    expect(matchQuery.seatsProposed).toBe(3);
 | 
			
		||||
    expect(matchQuery.seatsRequested).toBe(1);
 | 
			
		||||
    expect(matchQuery.algorithmType).toBe(AlgorithmType.PASSENGER_ORIENTED);
 | 
			
		||||
    expect(matchQuery.remoteness).toBe(15000);
 | 
			
		||||
    expect(matchQuery.useProportion).toBeTruthy();
 | 
			
		||||
    expect(matchQuery.proportion).toBe(0.3);
 | 
			
		||||
    expect(matchQuery.useAzimuth).toBeTruthy();
 | 
			
		||||
    expect(matchQuery.azimuthMargin).toBe(10);
 | 
			
		||||
    expect(matchQuery.maxDetourDistanceRatio).toBe(0.3);
 | 
			
		||||
    expect(matchQuery.maxDetourDurationRatio).toBe(0.3);
 | 
			
		||||
    expect(matchQuery.fromDate).toBe('2023-08-27');
 | 
			
		||||
    expect(matchQuery.toDate).toBe('2023-08-27');
 | 
			
		||||
    expect(matchQuery.schedule[0].day).toBe(0);
 | 
			
		||||
    expect(matchQuery.schedule[0].time).toBe('23:05');
 | 
			
		||||
    expect(matchQuery.schedule[0].margin).toBe(900);
 | 
			
		||||
  });
 | 
			
		||||
 | 
			
		||||
  it('should set good values for seats', async () => {
 | 
			
		||||
    const matchQuery = new MatchQuery({
 | 
			
		||||
      frequency: Frequency.PUNCTUAL,
 | 
			
		||||
      fromDate: '2023-08-28',
 | 
			
		||||
      toDate: '2023-08-28',
 | 
			
		||||
      seatsProposed: -1,
 | 
			
		||||
      seatsRequested: -1,
 | 
			
		||||
      schedule: [
 | 
			
		||||
        {
 | 
			
		||||
          time: '07:05',
 | 
			
		||||
        },
 | 
			
		||||
      ],
 | 
			
		||||
      waypoints: [originWaypoint, destinationWaypoint],
 | 
			
		||||
    });
 | 
			
		||||
    matchQuery.setDefaultDriverAndPassengerParameters({
 | 
			
		||||
      driver: defaultParams.DRIVER,
 | 
			
		||||
      passenger: defaultParams.PASSENGER,
 | 
			
		||||
      seatsProposed: defaultParams.SEATS_PROPOSED,
 | 
			
		||||
      seatsRequested: defaultParams.SEATS_REQUESTED,
 | 
			
		||||
    });
 | 
			
		||||
    expect(matchQuery.seatsProposed).toBe(3);
 | 
			
		||||
    expect(matchQuery.seatsRequested).toBe(1);
 | 
			
		||||
  });
 | 
			
		||||
});
 | 
			
		||||
| 
						 | 
				
			
			@ -3,15 +3,15 @@ import { DefaultParamsProvider } from '@modules/ad/infrastructure/default-params
 | 
			
		|||
import { ConfigService } from '@nestjs/config';
 | 
			
		||||
import { Test, TestingModule } from '@nestjs/testing';
 | 
			
		||||
 | 
			
		||||
const mockConfigService = {
 | 
			
		||||
const mockConfigServiceWithDefaults = {
 | 
			
		||||
  get: jest.fn().mockImplementation((value: string) => {
 | 
			
		||||
    switch (value) {
 | 
			
		||||
      case 'DEPARTURE_TIME_MARGIN':
 | 
			
		||||
        return 900;
 | 
			
		||||
        return 600;
 | 
			
		||||
      case 'ROLE':
 | 
			
		||||
        return 'passenger';
 | 
			
		||||
      case 'SEATS_PROPOSED':
 | 
			
		||||
        return 3;
 | 
			
		||||
        return 2;
 | 
			
		||||
      case 'SEATS_REQUESTED':
 | 
			
		||||
        return 1;
 | 
			
		||||
      case 'STRICT_FREQUENCY':
 | 
			
		||||
| 
						 | 
				
			
			@ -21,51 +21,86 @@ const mockConfigService = {
 | 
			
		|||
      case 'ALGORITHM_TYPE':
 | 
			
		||||
        return 'PASSENGER_ORIENTED';
 | 
			
		||||
      case 'REMOTENESS':
 | 
			
		||||
        return 15000;
 | 
			
		||||
        return 10000;
 | 
			
		||||
      case 'USE_PROPORTION':
 | 
			
		||||
        return 'true';
 | 
			
		||||
      case 'PROPORTION':
 | 
			
		||||
        return 0.3;
 | 
			
		||||
        return 0.4;
 | 
			
		||||
      case 'USE_AZIMUTH':
 | 
			
		||||
        return 'true';
 | 
			
		||||
      case 'AZIMUTH_MARGIN':
 | 
			
		||||
        return 10;
 | 
			
		||||
        return 15;
 | 
			
		||||
      case 'MAX_DETOUR_DISTANCE_RATIO':
 | 
			
		||||
        return 0.3;
 | 
			
		||||
        return 0.5;
 | 
			
		||||
      case 'MAX_DETOUR_DURATION_RATIO':
 | 
			
		||||
        return 0.3;
 | 
			
		||||
        return 0.6;
 | 
			
		||||
      default:
 | 
			
		||||
        return 'some_default_value';
 | 
			
		||||
    }
 | 
			
		||||
  }),
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
const mockConfigServiceWithoutDefaults = {
 | 
			
		||||
  get: jest.fn(),
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
describe('DefaultParamsProvider', () => {
 | 
			
		||||
  let defaultParamsProvider: DefaultParamsProvider;
 | 
			
		||||
  let defaultParamsProviderWithDefaults: DefaultParamsProvider;
 | 
			
		||||
  let defaultParamsProviderWithoutDefaults: DefaultParamsProvider;
 | 
			
		||||
 | 
			
		||||
  beforeAll(async () => {
 | 
			
		||||
    const module: TestingModule = await Test.createTestingModule({
 | 
			
		||||
    const moduleWithDefaults: TestingModule = await Test.createTestingModule({
 | 
			
		||||
      imports: [],
 | 
			
		||||
      providers: [
 | 
			
		||||
        DefaultParamsProvider,
 | 
			
		||||
        {
 | 
			
		||||
          provide: ConfigService,
 | 
			
		||||
          useValue: mockConfigService,
 | 
			
		||||
          useValue: mockConfigServiceWithDefaults,
 | 
			
		||||
        },
 | 
			
		||||
      ],
 | 
			
		||||
    }).compile();
 | 
			
		||||
 | 
			
		||||
    defaultParamsProvider = module.get<DefaultParamsProvider>(
 | 
			
		||||
      DefaultParamsProvider,
 | 
			
		||||
    );
 | 
			
		||||
    defaultParamsProviderWithDefaults =
 | 
			
		||||
      moduleWithDefaults.get<DefaultParamsProvider>(DefaultParamsProvider);
 | 
			
		||||
 | 
			
		||||
    const moduleWithoutDefault: TestingModule = await Test.createTestingModule({
 | 
			
		||||
      imports: [],
 | 
			
		||||
      providers: [
 | 
			
		||||
        DefaultParamsProvider,
 | 
			
		||||
        {
 | 
			
		||||
          provide: ConfigService,
 | 
			
		||||
          useValue: mockConfigServiceWithoutDefaults,
 | 
			
		||||
        },
 | 
			
		||||
      ],
 | 
			
		||||
    }).compile();
 | 
			
		||||
 | 
			
		||||
    defaultParamsProviderWithoutDefaults =
 | 
			
		||||
      moduleWithoutDefault.get<DefaultParamsProvider>(DefaultParamsProvider);
 | 
			
		||||
  });
 | 
			
		||||
 | 
			
		||||
  it('should be defined', () => {
 | 
			
		||||
    expect(defaultParamsProvider).toBeDefined();
 | 
			
		||||
    expect(defaultParamsProviderWithDefaults).toBeDefined();
 | 
			
		||||
  });
 | 
			
		||||
 | 
			
		||||
  it('should provide default params', async () => {
 | 
			
		||||
    const params: DefaultParams = defaultParamsProvider.getParams();
 | 
			
		||||
  it('should provide default params if defaults are set', async () => {
 | 
			
		||||
    const params: DefaultParams = defaultParamsProviderWithDefaults.getParams();
 | 
			
		||||
    expect(params.DEPARTURE_TIME_MARGIN).toBe(600);
 | 
			
		||||
    expect(params.PASSENGER).toBeTruthy();
 | 
			
		||||
    expect(params.DRIVER).toBeFalsy();
 | 
			
		||||
    expect(params.TIMEZONE).toBe('Europe/Paris');
 | 
			
		||||
    expect(params.ALGORITHM_TYPE).toBe('PASSENGER_ORIENTED');
 | 
			
		||||
    expect(params.REMOTENESS).toBe(10000);
 | 
			
		||||
    expect(params.USE_PROPORTION).toBeTruthy();
 | 
			
		||||
    expect(params.PROPORTION).toBe(0.4);
 | 
			
		||||
    expect(params.USE_AZIMUTH).toBeTruthy();
 | 
			
		||||
    expect(params.AZIMUTH_MARGIN).toBe(15);
 | 
			
		||||
    expect(params.MAX_DETOUR_DISTANCE_RATIO).toBe(0.5);
 | 
			
		||||
    expect(params.MAX_DETOUR_DURATION_RATIO).toBe(0.6);
 | 
			
		||||
  });
 | 
			
		||||
 | 
			
		||||
  it('should provide default params if defaults are not set', async () => {
 | 
			
		||||
    const params: DefaultParams =
 | 
			
		||||
      defaultParamsProviderWithoutDefaults.getParams();
 | 
			
		||||
    expect(params.DEPARTURE_TIME_MARGIN).toBe(900);
 | 
			
		||||
    expect(params.PASSENGER).toBeTruthy();
 | 
			
		||||
    expect(params.DRIVER).toBeFalsy();
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue