Skip to content

Commit

Permalink
Utilise jsdom en global dans les tests.
Browse files Browse the repository at this point in the history
  • Loading branch information
francois2metz authored and shanser committed Aug 2, 2019
1 parent 30cb076 commit 976f1b0
Show file tree
Hide file tree
Showing 44 changed files with 83 additions and 203 deletions.
7 changes: 4 additions & 3 deletions all-tests.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
require('jsdom');
afterEach(function () {
document.body.innerHTML = '';
});

let context = require.context('./tests', true, /\.js$/);
const context = require.context('./tests', true, /\.js$/);
context.keys().forEach(context);
module.exports = context;
2 changes: 1 addition & 1 deletion bin/test.sh
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
#!/bin/bash -e

BUILD_CMD="npx webpack --progress --color --config webpack.config-test.js"
MOCHA_OPTION="--colors";
MOCHA_OPTION="--require ./jsdom --colors";
if [ "$1" = "--watch" ]
then
$BUILD_CMD --mode development --watch &
Expand Down
1 change: 1 addition & 0 deletions jsdom.js
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
require('jsdom-global')('', { url: 'http://localhost' });
7 changes: 2 additions & 5 deletions tests/situations/accueil/vues/acces_situation.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
import jsdom from 'jsdom-global';
import jQuery from 'jquery';
import $ from 'jquery';
import EventEmitter from 'events';

import VueAccesSituation from 'accueil/vues/acces_situation';
Expand All @@ -8,13 +7,11 @@ import AccesSituation from 'accueil/modeles/acces_situation';
import { CHANGEMENT_CONNEXION } from 'commun/infra/registre_utilisateur';

describe('La vue pour accéder à une situation', function () {
let $;
let depotRessources;
let registreUtilisateur;

beforeEach(function () {
jsdom('<div id="pointInsertion"></div>');
$ = jQuery(window);
$('body').append('<div id="pointInsertion"></div>');
depotRessources = new class {
batimentSituation (identifiant) {
return { src: identifiant };
Expand Down
7 changes: 2 additions & 5 deletions tests/situations/accueil/vues/accueil.js
Original file line number Diff line number Diff line change
@@ -1,19 +1,16 @@
import jsdom from 'jsdom-global';
import jQuery from 'jquery';
import $ from 'jquery';
import EventEmitter from 'events';

import VueAccueil from 'accueil/vues/accueil';
import AccesSituation from 'accueil/modeles/acces_situation';

describe('La vue accueil', function () {
let $;
let depotRessources;
let accesSituations;
let registreUtilisateur;

beforeEach(function () {
jsdom('<div id="accueil"></div>');
$ = jQuery(window);
$('body').append('<div id="accueil"></div>');
registreUtilisateur = new class extends EventEmitter {
estConnecte () {}
nom () {}
Expand Down
7 changes: 2 additions & 5 deletions tests/situations/accueil/vues/formulaire_identification.js
Original file line number Diff line number Diff line change
@@ -1,17 +1,14 @@
import jsdom from 'jsdom-global';
import jQuery from 'jquery';
import $ from 'jquery';
import EventEmitter from 'events';
import { CHANGEMENT_CONNEXION } from 'commun/infra/registre_utilisateur';
import FormulaireIdentification from 'accueil/vues/formulaire_identification';

describe("Le formulaire d'identification", function () {
let $;
let vue;
let registreUtilisateur;

beforeEach(function () {
jsdom('<div id="formulaire"></div>');
$ = jQuery(window);
$('body').append('<div id="formulaire"></div>');
registreUtilisateur = new class extends EventEmitter {
estConnecte () {}
inscris () { return $.Deferred().resolve(); }
Expand Down
7 changes: 2 additions & 5 deletions tests/situations/accueil/vues/progression.js
Original file line number Diff line number Diff line change
@@ -1,19 +1,16 @@
import jsdom from 'jsdom-global';
import jQuery from 'jquery';
import $ from 'jquery';
import EventEmitter from 'events';

import VueProgression from 'accueil/vues/progression';

import { CHANGEMENT_CONNEXION } from 'commun/infra/registre_utilisateur';

describe('La vue pour afficher la progression', function () {
let $;
let depotRessources;
let registreUtilisateur;

beforeEach(function () {
jsdom('<div id="pointInsertion"></div>');
$ = jQuery(window);
$('body').append('<div id="pointInsertion"></div>');
depotRessources = new class {
progression (identifiant) {
return { src: identifiant };
Expand Down
8 changes: 2 additions & 6 deletions tests/situations/commun/composants/deplaceur_pieces.js
Original file line number Diff line number Diff line change
@@ -1,15 +1,11 @@
import jsdom from 'jsdom-global';
import jQuery from 'jquery';
import $ from 'jquery';

import Piece from 'commun/modeles/piece';
import DeplaceurPieces from 'commun/composants/deplaceur_pieces';

describe('Le composant DeplaceurPieces', function () {
let $;

beforeEach(function () {
jsdom('<div id="point-insertion"></div>');
$ = jQuery(window);
$('body').append('<div id="point-insertion"></div>');
});

it('déplace les pièces sélectionnées', function () {
Expand Down
5 changes: 0 additions & 5 deletions tests/situations/commun/infra/depot_journal.js
Original file line number Diff line number Diff line change
@@ -1,11 +1,6 @@
import DepotJournal from 'commun/infra/depot_journal';
import jsdom from 'jsdom-global';

describe('le depot du journal', function () {
beforeEach(function () {
jsdom('', { url: 'http://localhost' });
});

it('fait un POST des lignes du journal vers le serveur', function () {
const requetes = [];
const depot = new DepotJournal({ ajax (params) { requetes.push(params); } });
Expand Down
5 changes: 0 additions & 5 deletions tests/situations/commun/infra/depot_ressources.js
Original file line number Diff line number Diff line change
@@ -1,12 +1,7 @@
import DepotRessources from 'commun/infra/depot_ressources';
import jsdom from 'jsdom-global';
import chargeurs from '../../commun/aides/mock_chargeurs';

describe('le dépôt de ressources', function () {
beforeEach(function () {
jsdom('');
});

it('permet de charger toutes les ressources', function () {
const depot = new DepotRessources(chargeurs());
depot.charge(['test.png', 'test2.png', 'test.wav']);
Expand Down
3 changes: 1 addition & 2 deletions tests/situations/commun/infra/registre_utilisateur.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
import jsdom from 'jsdom-global';
import RegistreUtilisateur, { CHANGEMENT_CONNEXION, CLEF_IDENTIFIANT } from 'commun/infra/registre_utilisateur';

describe('le registre utilisateur', function () {
Expand All @@ -11,7 +10,7 @@ describe('le registre utilisateur', function () {
}

beforeEach(function () {
jsdom('', { url: 'http://localhost' });
window.localStorage.clear();
});

it("permet d'inscrire et de récupérer un utilisateur", function () {
Expand Down
8 changes: 2 additions & 6 deletions tests/situations/commun/modale.js
Original file line number Diff line number Diff line change
@@ -1,14 +1,10 @@
import jsdom from 'jsdom-global';
import jQuery from 'jquery';
import $ from 'jquery';

import { afficheFenetreModale } from 'commun/vues/modale';

describe('fenetre modale', function () {
let $;

beforeEach(function () {
jsdom('<div id="point-insertion"></div>');
$ = jQuery(window);
$('body').append('<div id="point-insertion"></div>');
});

it("sait s'ajouter dans une page web", function () {
Expand Down
7 changes: 2 additions & 5 deletions tests/situations/commun/vues/action_overlay.js
Original file line number Diff line number Diff line change
@@ -1,15 +1,12 @@
import jsdom from 'jsdom-global';
import jQuery from 'jquery';
import $ from 'jquery';

import ActionOverlay from 'commun/vues/action_overlay';

describe('une action overlay', () => {
let $;
let vue;

beforeEach(() => {
jsdom('<div id="pointInsertion"></div>');
$ = jQuery(window);
$('body').append('<div id="pointInsertion"></div>');
vue = new ActionOverlay('image', 'texte', 'classe-bouton');
vue.affiche('#pointInsertion', $);
});
Expand Down
7 changes: 2 additions & 5 deletions tests/situations/commun/vues/actions.js
Original file line number Diff line number Diff line change
@@ -1,17 +1,14 @@
import jsdom from 'jsdom-global';
import jQuery from 'jquery';
import $ from 'jquery';

import VueActions from 'commun/vues/actions';
import SituationCommune, { CONSIGNE_ECOUTEE, DEMARRE } from 'commun/modeles/situation';

describe('Affiche les éléments communs aux situations', function () {
let vueActions;
let situation;
let $;

beforeEach(function () {
jsdom('<div id="magasin"></div>');
$ = jQuery(window);
$('body').append('<div id="magasin"></div>');
situation = new SituationCommune();

vueActions = new VueActions(situation, {}, new class {}());
Expand Down
8 changes: 2 additions & 6 deletions tests/situations/commun/vues/bac.js
Original file line number Diff line number Diff line change
@@ -1,15 +1,11 @@
import jsdom from 'jsdom-global';
import jQuery from 'jquery';
import $ from 'jquery';

import Bac from 'commun/modeles/bac';
import VueBac from 'commun/vues/bac';

describe("La vue d'un bac", function () {
let $;

beforeEach(function () {
jsdom('<div id="point-insertion"></div>');
$ = jQuery(window);
$('body').append('<div id="point-insertion"></div>');
});

it("s'affiche à partir d'un point d'insertion", function () {
Expand Down
7 changes: 2 additions & 5 deletions tests/situations/commun/vues/barre_dev.js
Original file line number Diff line number Diff line change
@@ -1,17 +1,14 @@
import jsdom from 'jsdom-global';
import jQuery from 'jquery';
import $ from 'jquery';

import BarreDev from 'commun/vues/barre_dev';
import Situation, { DEMARRE, FINI } from 'commun/modeles/situation';

describe('la barre de developpement', () => {
let $;
let situation;
let vue;

beforeEach(() => {
jsdom('<div id="pointInsertion"></div>');
$ = jQuery(window);
$('body').append('<div id="pointInsertion"></div>');
situation = new Situation();
vue = new BarreDev(situation);
vue.affiche('#pointInsertion', $);
Expand Down
7 changes: 2 additions & 5 deletions tests/situations/commun/vues/boite_utilisateur.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
import jsdom from 'jsdom-global';
import jQuery from 'jquery';
import $ from 'jquery';
import EventEmitter from 'events';

import { CHANGEMENT_CONNEXION } from 'commun/infra/registre_utilisateur';
Expand All @@ -9,11 +8,9 @@ import AccesSituation from 'accueil/modeles/acces_situation';
describe('La boite utilisateur', function () {
let registreUtilisateur;
let vueBoiteUtilisateur;
let $;

beforeEach(function () {
jsdom('<div id="point-insertion"></div>');
$ = jQuery(window);
$('body').append('<div id="point-insertion"></div>');
registreUtilisateur = new class extends EventEmitter {
estConnecte () {}
nom () {}
Expand Down
7 changes: 2 additions & 5 deletions tests/situations/commun/vues/bouton.js
Original file line number Diff line number Diff line change
@@ -1,14 +1,11 @@
import jsdom from 'jsdom-global';
import jQuery from 'jquery';
import $ from 'jquery';
import VueBouton from 'commun/vues/bouton';

describe('vue Bouton', function () {
let vue;
let $;

beforeEach(function () {
jsdom('<div id="point-insertion"></div>');
$ = jQuery(window);
$('body').append('<div id="point-insertion"></div>');
vue = new VueBouton('bouton-lire-consigne', 'imagePlayer', () => this.click());
});

Expand Down
7 changes: 2 additions & 5 deletions tests/situations/commun/vues/cadre.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
import jsdom from 'jsdom-global';
import jQuery from 'jquery';
import $ from 'jquery';

import SituationCommune, { CHANGEMENT_ETAT, CHARGEMENT, ERREUR_CHARGEMENT, ATTENTE_DEMARRAGE, LECTURE_CONSIGNE, CONSIGNE_ECOUTEE, DEMARRE, FINI, STOPPEE } from 'commun/modeles/situation';
import EvenementDemarrage from 'commun/modeles/evenement_demarrage';
Expand All @@ -16,15 +15,13 @@ function uneClasseVue (callbackAffichage = () => {}) {
}

describe('Une vue du cadre', function () {
let $;
let situation;
let depotRessources;
let journal;
let uneVueCadre;

beforeEach(function () {
jsdom('<div id="point-insertion"></div>');
$ = jQuery(window);
$('body').append('<div id="point-insertion"></div>');
depotRessources = new DepotRessourcesCommune('sonConsigne.wav', chargeurs());
situation = new SituationCommune();
journal = { enregistre () {}, enregistreSituationFaite () {} };
Expand Down
7 changes: 2 additions & 5 deletions tests/situations/commun/vues/chargement.js
Original file line number Diff line number Diff line change
@@ -1,19 +1,16 @@
import jsdom from 'jsdom-global';
import jQuery from 'jquery';
import $ from 'jquery';

import VueChargement from 'commun/vues/chargement';
import Situation, { CHARGEMENT, ATTENTE_DEMARRAGE, ERREUR_CHARGEMENT } from 'commun/modeles/situation';
import { traduction } from 'commun/infra/internationalisation';

describe('vue chargement', function () {
let situation;
let $;
let vue;
let depotRessources;

beforeEach(() => {
jsdom('<div id="pointInsertion"></div>');
$ = jQuery(window);
$('body').append('<div id="pointInsertion"></div>');
situation = new Situation();
depotRessources = { chargement () { return Promise.resolve(); } };
vue = new VueChargement(situation, depotRessources);
Expand Down
7 changes: 2 additions & 5 deletions tests/situations/commun/vues/consigne.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
import jsdom from 'jsdom-global';
import jQuery from 'jquery';
import $ from 'jquery';

import MockAudioNode from '../aides/mock_audio_node';

Expand All @@ -8,14 +7,12 @@ import Situation, { CONSIGNE_ECOUTEE } from 'commun/modeles/situation';

describe('vue consigne', function () {
let vue;
let $;
let situation;
let consigne;
let consigneCommune;

beforeEach(function () {
jsdom('<div id="pointInsertion"></div>');
$ = jQuery(window);
$('body').append('<div id="pointInsertion"></div>');
situation = new Situation();
consigne = new MockAudioNode();
consigneCommune = new MockAudioNode();
Expand Down
7 changes: 2 additions & 5 deletions tests/situations/commun/vues/erreur_chargement.js
Original file line number Diff line number Diff line change
@@ -1,16 +1,13 @@
import jsdom from 'jsdom-global';
import jQuery from 'jquery';
import $ from 'jquery';

import VueErreurChargement from 'commun/vues/erreur_chargement';
import { traduction } from 'commun/infra/internationalisation';

describe('vue erreur chargement', function () {
let $;
let vue;

beforeEach(() => {
jsdom('<div id="pointInsertion"></div>');
$ = jQuery(window);
$('body').append('<div id="pointInsertion"></div>');
vue = new VueErreurChargement();
});

Expand Down
Loading

0 comments on commit 976f1b0

Please sign in to comment.