1.1.3 • Published 5 years ago

@thorolf/simple-mock v1.1.3

Weekly downloads
1
License
ISC
Repository
-
Last release
5 years ago

SimpleMocks

Ce module a pour but d'offrir la possibilite de mettre en place des mocks facilement et rapidement.
Il offre la possibilite de définir des mocks via des fichiers json ou a partir d'un fichier de log reseau provenant de Google Chrome (fichiers HAR).
Les moficittions des fichiers mocks sont rechargées a chaud.

Utilisation

Standalone

npm install
node .

As dependency

npm install -D git+ssh://git@gitlab.adventiel.com:raphael.hue/SimpleMocks.git

Editez le fichier package.json de votre projet comme suit :

{
    "scripts" : {
        "mocks" : "node_modules/.bin/mocks"
    }
}

Lancez le server de mock avec la commande :

npm run mocks

Configuration

La configuration par défaut peut etre surchargée mocks.json a la racine du projet
La synthaxe est la même que le fichier config.json

Configuration

Fichier config.json

config.json

{
    "port": 8080,
    "mocks_dir": "./mocks",
    "log_level": "DEBUG"
}
  • port : port utilisé
  • mocks_dir : chemin relatif vers le dossier de mocks
  • log_level : niveau de log DEBUG|INFO|WARN|ERROR

Fichiers mocks

Configuration du groupe

{
    "name": "exemple",
    "baseUrl": "exemple/rest",
    "enable": true,
    "cors" : {
        "Access-Control-Allow-Headers" : "*",
        "Access-Control-Expose-Headers" : "*",
        "Access-Control-Allow-Origin" : "*"
    },
    "mock": [],
    "har" : []
}
  • name : nom du groupe de mock
  • baseUrl : base de l'url pour ce groupe de mock
  • enable : groupe de mock activé ou non
  • cors : liste des valeurs CORS renvoyées en tant que headers dans chaque réponse
  • mock : liste des mocks
  • har : liste des fichiers HAR a charger

Mock

La priorité des réponse suit l'ordre de définition. Si la requete satisfait les criteres d'un mock, la réponse est renvoyée. Sinon, les mocks continuent d'etre testés jusqu'a la fin de la liste. Si la requete ne satisfait les criteres d'aucun mocks, une response 501 : Not Implemented est renvoyé.

{
    "url": "path",
    "method": "string",
    "headers": {
        "name" : "*"|"string"
    },
    "queryParams" : {
        "name" : "*"|"string"
    },
    "pathParams" : {
        "name" : "*"|"string"
    },
    "response": {
        "code": 200,
        "headers" : {
            "header_name" : "sting"
        },
        "body": null|"string"|{object}
    }    
}
  • url : url du WS. la syntaxe :path_params_name peut etre utilisée comme wildcard. l'url finale du mock est <host>:<port>/<baseurl>/<url>
  • method : methode http get|post|put|delete|patch...
  • headers : facultatif liste de headers a verifier. * peut etre utlisé comme wildcard, la présence du chaps est alors vérifiée, sans controle de sa valeur.
  • queryParams : facultatif identique a headers pour les queryParams
  • pathParams : facultatif identique a headers pour les paths params
  • response : réponse a renvoyer si le requete correspond aux criteres
    • code : code http
    • headers : facultatif liste des headers
    • body : facultatif corps de la réponse. renseigner null ou omettre pour une reponse vide. Peut etre une chaine de carateres ou un objet. Si la valeur est un chaine de carateres commencant par file://, renvoi le contenu du fichier spécifié (chemin relatif)

Har

Permet de generer des mocks a partir d'un fichier *.har issu de Google Chrome.
Utile pour rejouer un cas test.
Le domaine présent dans les url du fichier HAR sera supprimé et remplacé par la baseUrl du fichier de configuration.
Les entrées du fichier HAR sont prise en compte dans l'ordre inverse : du plus recent au plus ancient.

{
    "filePath" : "string",
    "options" : {
        "filter" : ["string"]|"string",
        "queryParams" :{
            "ignore" : ["string"]
        }
    }
}
  • filePath : chemin relatif vers le fichier HAR
  • options : facultatif options pour le parsing du fichier
    • filter : facultatif filtre sur les urls presentes dans le fichier HAR. les valeur sont gérées comme des expressions régulières. Si l'url valide un seul filtre, elle est inclut dans le mock
    • queryParams : facultatif option sur les query params
      • ignore : liste des query params a ignorer. Par défaut, tous les query params devront etres identique pour que l'appel match le mock. Si il y a des query params avec a date courante ou une valeur aleatoire, il peut etre utile de les ignorer

Pour generer le fichier har :

  • Ouvrir la console debug de Chrome
  • Se placer dans l'onglet 'Network'
  • Cocher la case 'Preserve log'
  • Se Placer dans l'etat de debut du scenario de test (avant connexion/intialisation)
  • Clic sur le bouton 'Clear'
  • Jouer un scenario
  • Une fois fini, faire un clic droit sur l'une des lignes du log network et cliquer sur 'Save as HAR with content'
1.1.3

5 years ago