Skip to content

mission-apprentissage/tables-correspondances

Repository files navigation

Tables de Correspondances

Le projet Tables de correspondances est une application qui regroupe les APIs suivantes :

  • CFD
  • RNCP
  • BCN

Démarrage rapide

Pour lancer l'application, vous pouvez exécuter les commandes suivantes :

make install
make start

L'application est ensuite disponible à l'url http://localhost

Développement

Pour plus d'informations sur la structure du projet DEV

Environnements

Tables de correspondances est déployé sur deux environnements :

SDK

La librairie peut être utilisée afin d'éviter les appels au serveur:

yarn add "@mission-apprentissage/tco-service-node"

Pour utiliser la lib il faut l'initialiser avec l'instance mongoose du projet qui l'utilise, pour qu'elle puisse créer des collections :

const { initTcoModel } = require("@mission-apprentissage/tco-service-node");

await initTcoModel(mongoose);

Ensuite pour remplir les données il faut exécuter les scripts bcn, onisep et rncp :

const { bcnImporter, onisepImporter, rncpImporter } = require("@mission-apprentissage/tco-service-node");

await bcnImporter();
await onisepImporter(db);
await rncpImporter();

Enfin vous pouvez appeler les méthodes dont vous avez besoin, e.g:

const { getCfdInfo } = require("@mission-apprentissage/tco-service-node");

const cfdInfo = await getCfdInfo("40033002");

Vous aurez également besoin de renseigner certaines variables d'environnement, selon les appels que vous ferez :

TABLES_CORRESPONDANCES_API_ENTREPRISE_KEY=
TABLES_CORRESPONDANCE_ONISEP_EMAIL=
TABLES_CORRESPONDANCE_ONISEP_PASSWORD=
TABLES_CORRESPONDANCE_FRANCE_COMPETENCES_HOST=
TABLES_CORRESPONDANCE_FRANCE_COMPETENCES_PORT=
TABLES_CORRESPONDANCE_FRANCE_COMPETENCES_USERNAME=
TABLES_CORRESPONDANCE_FRANCE_COMPETENCES_PASSWORD=

Tests unitaires avec utilisation du SDK

Pour simplifier les test unitaires dans les projets qui utilisent le SDK, des mocks sont disponibles.

const { mock } = require("@mission-apprentissage/tco-service-node");

Pour les utiliser on peut par exemple installer la librairie rewiremock :

yarn add --dev rewiremock

Dans vos tests, si vous appelez un module qui utilise le SDK, il faudra mocker avant de l'importer, voici un exemple complet :

// fichier de test.js
const rewiremock = require("rewiremock/node");
const { mock } = require("@mission-apprentissage/tco-service-node");
rewiremock("@mission-apprentissage/tco-service-node").with(mock);

describe(__filename, () => {
  beforeEach(() => rewiremock.enable());
  afterEach(() => rewiremock.disable());

  it("My test", async () => {
      // l'import du module doit se faire dans le test pour être exécuter après rewiremock.enable()
      const myModuleUsingSDK = require(./some-module");
      await myModuleUsingSDK.someFunction(); // calls to SDK are mocked inside
      ... 
  });
});