Skip to content

Commit

Permalink
add type inside response, update tests and doc
Browse files Browse the repository at this point in the history
  • Loading branch information
lgrd committed Mar 8, 2023
1 parent 64be277 commit 915338d
Show file tree
Hide file tree
Showing 11 changed files with 183 additions and 29 deletions.
2 changes: 2 additions & 0 deletions changelog.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,8 @@ CHANGED:
- Le fichier server.json permet maintenant de configurer l'administrateur et donc n'a plus le même contenu. Ce dernier est dans service.json.
- Les sources ne sont plus configurées dans le même fichier que les ressources. Chaque source est configurée dans son fichier. L'ensemble est placé dans un dossier de sources. Il peut y en avoir plusieurs.
- Les sources PGRouting et Valhalla ne sont plus configurées de la même manière : chaque source de ces types peut contenir plusieurs coûts.
- La documentation de l'API d'administration a été grandement enrichie.
- La route /health a une réponse plus complète et est vraiment codée pour prendre en compte l'état de chaque service et chaque source disponibles.

FIXED:
- Les reprojections des isochrones fonctionnent
Expand Down
3 changes: 3 additions & 0 deletions documentation/test/integration/readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,8 @@ C'est l'approche bottom-up qui a été choisie pour ces tests. On va tester les
- operation (parameter)
- resourceParameter (parameter)
- serverManager (server, ExpressJS, log4js, fs, assert)
- healthRequest (request)
- healthResponse (response)

- Deuxième niveau:
- routeRequest (request, point)
Expand Down Expand Up @@ -123,6 +125,7 @@ C'est l'approche bottom-up qui a été choisie pour ces tests. On va tester les
- Router()
- router.use()
- json()
- set

- got
- utils/httpQuery.js
Expand Down
6 changes: 4 additions & 2 deletions src/js/responses/healthResponse.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
'use strict';

const Response = require('./response');

/**
*
* @class
Expand All @@ -8,7 +10,7 @@
*
*/

module.exports = class healthResponse {
module.exports = class healthResponse extends Response {


/**
Expand All @@ -21,7 +23,7 @@ module.exports = class healthResponse {
constructor() {

// Type de la réponse
this._type = "healthResponse";
super("healthResponse");

// État global
this._globalState = "unknown";
Expand Down
28 changes: 27 additions & 1 deletion src/js/responses/isochroneResponse.js
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,10 @@ module.exports = class isochroneResponse extends Response {
distanceUnit) {

// Constructeur parent
super(resource);
super("isochroneResponse");

// Ressource
this._resource = resource;

// point
this._point = point;
Expand Down Expand Up @@ -73,6 +76,29 @@ module.exports = class isochroneResponse extends Response {

}

/**
*
* @function
* @name get resource
* @description Récupérer la ressource de la réponse
*
*/
get resource () {
return this._resource;
}

/**
*
* @function
* @name set resource
* @description Attribuer la ressource de la réponse
* @param {Point} res - Ressource
*
*/
set resource (res) {
this._resource = res;
}

/**
*
* @function
Expand Down
28 changes: 27 additions & 1 deletion src/js/responses/nearestResponse.js
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,10 @@ module.exports = class nearestResponse extends Response {
constructor(resource, coordinates) {

// Constructeur parent
super(resource);
super("nearestResponse");

// Ressource
this._resource = resource;

// coordinates
this._coordinates = coordinates;
Expand All @@ -36,6 +39,29 @@ module.exports = class nearestResponse extends Response {

}

/**
*
* @function
* @name get resource
* @description Récupérer la ressource de la réponse
*
*/
get resource () {
return this._resource;
}

/**
*
* @function
* @name set resource
* @description Attribuer la ressource de la réponse
* @param {Point} res - Ressource
*
*/
set resource (res) {
this._resource = res;
}

/**
*
* @function
Expand Down
24 changes: 6 additions & 18 deletions src/js/responses/response.js
Original file line number Diff line number Diff line change
Expand Up @@ -16,37 +16,25 @@ module.exports = class Response {
* @function
* @name constructor
* @description Constructeur de la classe Response
* @param {string} resource - Nom de la ressource
* @param {string} type - Type de la réponse
*
*/
constructor(resource) {
constructor(type) {

// Nom de la ressource concernée par la réponse
this._resource = resource;
this._type = type;

}

/**
*
* @function
* @name get resource
* @name get type
* @description Récupérer la ressource de la requête
*
*/
get resource () {
return this._resource;
}

/**
*
* @function
* @name set resource
* @description Attribuer la ressource de la requête
* @param {string} res - Nom de la ressource
*
*/
set resource (res) {
this._resource = res;
get type () {
return this._type;
}


Expand Down
28 changes: 27 additions & 1 deletion src/js/responses/routeResponse.js
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,10 @@ module.exports = class routeResponse extends Response {
constructor(resource, start, end, profile, optimization) {

// Constructeur parent
super(resource);
super("routeResponse");

// Ressource
this._resource = resource;

// start
this._start = start;
Expand All @@ -48,6 +51,29 @@ module.exports = class routeResponse extends Response {

}

/**
*
* @function
* @name get resource
* @description Récupérer la ressource de la réponse
*
*/
get resource () {
return this._resource;
}

/**
*
* @function
* @name set resource
* @description Attribuer la ressource de la réponse
* @param {Point} res - Ressource
*
*/
set resource (res) {
this._resource = res;
}

/**
*
* @function
Expand Down
1 change: 1 addition & 0 deletions test/functional/request/cucumber/features/support/world.js
Original file line number Diff line number Diff line change
Expand Up @@ -739,6 +739,7 @@ class road2World {
} else {

// On part du principe que c'est du GeoJSON
// TODO : ajouter la gestion du polyline
if (curIso.coordinates) {

refIso = turf.polygon(refIso.coordinates);
Expand Down
31 changes: 31 additions & 0 deletions test/integration/mocha/requests/integrationHealthRequest.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
const assert = require('assert');
const HealthRequest = require('../../../../src/js/requests/healthRequest');
const logManager = require('../logManager');

describe('Test de la classe HealthRequest', function() {

before(function() {
// runs before all tests in this block
logManager.manageLogs();
});

let request = new HealthRequest();

describe('Test du constructeur et des getters/setters', function() {

it('Get type', function() {
assert.equal(request.type, "healthRequest");
});

it('Get verbose', function() {
assert.equal(request.verbose, false);
});

it('Set verbose', function() {
request.verbose = true;
assert.equal(request.verbose, true);
});

});

});
49 changes: 49 additions & 0 deletions test/integration/mocha/responses/integrationHealthResponse.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
const assert = require('assert');
const HealthResponse = require('../../../../src/js/requests/healthResponse');
const logManager = require('../logManager');

describe('Test de la classe HealthResponse', function() {

before(function() {
// runs before all tests in this block
logManager.manageLogs();
});

let response = new HealthResponse();

describe('Test du constructeur et des getters/setters', function() {

it('Get type', function() {
assert.equal(response.type, "healthResponse");
});

it('Get globalState', function() {
assert.equal(response.globalState, "unknown");
});

it('Set globalState', function() {
response.globalState = "green";
assert.equal(response.globalState, "green");
});

it('Get adminState', function() {
assert.equal(response.adminState, "unknown");
});

it('Set adminState', function() {
response.adminState = "green";
assert.equal(response.adminState, "green");
});

it('Get serviceStates', function() {
assert.deepEqual(response.serviceStates, new Array());
});

it('Set serviceStates', function() {
response.serviceStates.push = {"serviceId":"unknown","state":"green"};
assert.deepEqual(response.serviceStates[0], {"serviceId":"unknown","state":"green"});
});

});

});
12 changes: 6 additions & 6 deletions test/unit/mocha/responses/testsResponse.js
Original file line number Diff line number Diff line change
Expand Up @@ -11,15 +11,15 @@ describe('Test de la classe Response', function() {

describe('Test du constructeur et des getters/setters', function() {

let response = new Response("mon-id");
let response = new Response("mon-type");

it('Get Resource', function() {
assert.equal(response.resource, "mon-id");
it('Get Type', function() {
assert.equal(response.type, "mon-type");
});

it('Set Resource', function() {
response.resource = "nouvel-id";
assert.equal(response.resource, "nouvel-id");
it('Set Type n\'existe pas car non modifiable', function() {
response.type = "nouveau-type";
assert.equal(response.type, "mon-type");
});

});
Expand Down

0 comments on commit 915338d

Please sign in to comment.