mirror of
				https://github.com/public-transport/db-vendo-client.git
				synced 2025-11-04 10:06:32 +02:00 
			
		
		
		
	unit tests for bahn.de boards
This commit is contained in:
		
							parent
							
								
									36806ce894
								
							
						
					
					
						commit
						ad5c19aa51
					
				
					 1 changed files with 71 additions and 0 deletions
				
			
		
							
								
								
									
										71
									
								
								test/format/db-arrivals-query.js
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										71
									
								
								test/format/db-arrivals-query.js
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,71 @@
 | 
			
		|||
import tap from 'tap';
 | 
			
		||||
 | 
			
		||||
import {createClient} from '../../index.js';
 | 
			
		||||
import {profile as rawProfile} from '../../p/db/index.js';
 | 
			
		||||
 | 
			
		||||
const client = createClient(rawProfile, 'public-transport/hafas-client:test');
 | 
			
		||||
const {profile} = client;
 | 
			
		||||
 | 
			
		||||
const opt = {
 | 
			
		||||
	when: new Date('2025-02-09T23:55:00+01:00'),
 | 
			
		||||
	remarks: true,
 | 
			
		||||
	stopovers: false,
 | 
			
		||||
	vias: 0,
 | 
			
		||||
	language: 'en',
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
const berlinArrivalsQuery = {
 | 
			
		||||
	endpoint: 'https://int.bahn.de/web/api/reiseloesung/',
 | 
			
		||||
	path: 'ankuenfte',
 | 
			
		||||
	query: {
 | 
			
		||||
		ortExtId: '8011160',
 | 
			
		||||
		zeit: '23:55',
 | 
			
		||||
		datum: '2025-02-09',
 | 
			
		||||
		mitVias: undefined,
 | 
			
		||||
		maxVias: 0,
 | 
			
		||||
		verkehrsmittel: [
 | 
			
		||||
			'ICE',
 | 
			
		||||
			'EC_IC',
 | 
			
		||||
			'IR',
 | 
			
		||||
			'REGIONAL',
 | 
			
		||||
			'SBAHN',
 | 
			
		||||
			'BUS',
 | 
			
		||||
			'SCHIFF',
 | 
			
		||||
			'UBAHN',
 | 
			
		||||
			'TRAM',
 | 
			
		||||
			'ANRUFPFLICHTIG',
 | 
			
		||||
		],
 | 
			
		||||
	},
 | 
			
		||||
	method: 'GET',
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
tap.test('formats an arrivals() request correctly', (t) => {
 | 
			
		||||
	const ctx = {profile, opt};
 | 
			
		||||
 | 
			
		||||
	const req = profile.formatStationBoardReq(ctx, '8011160', 'arrivals');
 | 
			
		||||
 | 
			
		||||
	t.same(req, berlinArrivalsQuery);
 | 
			
		||||
	t.end();
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
tap.test('formats an arrivals() request with different vias option', (t) => {
 | 
			
		||||
	const _opt = {...opt};
 | 
			
		||||
	const ctx = {profile, opt: _opt};
 | 
			
		||||
 | 
			
		||||
	ctx.opt.vias = undefined;
 | 
			
		||||
	const reqViasUndefined = profile.formatStationBoardReq(ctx, '8011160', 'arrivals');
 | 
			
		||||
	t.equal(reqViasUndefined.query.mitVias, undefined);
 | 
			
		||||
	t.equal(reqViasUndefined.query.maxVias, 0);
 | 
			
		||||
 | 
			
		||||
	ctx.opt.vias = null;
 | 
			
		||||
	const reqViasNull = profile.formatStationBoardReq(ctx, '8011160', 'arrivals');
 | 
			
		||||
	t.equal(reqViasNull.query.mitVias, undefined);
 | 
			
		||||
	t.equal(reqViasNull.query.maxVias, 0);
 | 
			
		||||
 | 
			
		||||
	ctx.opt.vias = 42;
 | 
			
		||||
	const reqViasFourtyTwo = profile.formatStationBoardReq(ctx, '8011160', 'arrivals');
 | 
			
		||||
	t.equal(reqViasFourtyTwo.query.mitVias, true);
 | 
			
		||||
	t.equal(reqViasFourtyTwo.query.maxVias, 42);
 | 
			
		||||
 | 
			
		||||
	t.end();
 | 
			
		||||
});
 | 
			
		||||
		Loading…
	
	Add table
		
		Reference in a new issue