41 lines
1.3 KiB
JavaScript
41 lines
1.3 KiB
JavaScript
const axios = require('axios');
|
|
const polylineLib = require('@mapbox/polyline');
|
|
require('dotenv').config({ path: '.env' });
|
|
const { googleMapsComputeRoute } = require('./src/travel.js');
|
|
|
|
async function testRoute(destination, expectedPrice) {
|
|
const origin = "25 Impasse du Puits du Suc, Saint-Martin-en-Haut, France";
|
|
console.log(`\nTesting ${destination}...`);
|
|
|
|
const req = {
|
|
headers: { authorization: 'Bearer MOCK' },
|
|
body: { origin, destination, vehicleTollCategory: 2 }
|
|
};
|
|
let resultBody = null;
|
|
const res = {
|
|
set: () => {}, status: () => res,
|
|
json: (data) => { resultBody = data; return res; },
|
|
send: (data) => { resultBody = data; return res; }
|
|
};
|
|
|
|
await googleMapsComputeRoute(req, res);
|
|
|
|
if (resultBody.error) {
|
|
console.error(`Error: ${resultBody.error}`);
|
|
} else {
|
|
const toll = resultBody.routes && resultBody.routes.length > 0 ? resultBody.routes[0].tollCost : 0;
|
|
console.log(`Toll: ${toll}€ (Expected: ${expectedPrice}€)`);
|
|
}
|
|
}
|
|
|
|
async function run() {
|
|
// Mock Firebase auth specifically for this test
|
|
const auth = require('./utils/auth');
|
|
auth.authenticateUser = async () => {};
|
|
|
|
await testRoute("Saint-Denis, France", 64.3);
|
|
await testRoute("Grenoble, France", 21.7);
|
|
await testRoute("Nice, France", 77.2);
|
|
}
|
|
run();
|