@ -1,62 +1,62 @@
import { vCarousel } from "../src/vCarousel" ;
const errors = require ( "../src/errors.js" ) ;
describe ( "vCarousel" , function ( )
describe ( "vCarousel" , ( ) = >
{
let vCarouselTest : vCarousel ;
const videosWebDir = "https://forge.chapril.org/Fab_Blab/vCarousel/src/branch/master/public/videos" ;
const fixture = "<div id='fixture'><figure id='noVideo'></figure><figure id='video1'><video controls='controls' preload='metadata'><source src='" + videosWebDir + "/Lizio-Poete-Ferrailleur-clownfunanbule.m4v' type='video/mp4'></source></video></figure><figure id='video2'><video controls='controls' preload='metadata'><source src='" + videosWebDir + "/Lizio-Poete-Ferrailleur-forgeron.m4v' type='video/mp4'></source></video></figure><figure id='video3'><video controls='controls' preload='metadata'><source src='" + videosWebDir + "/Lizio-Poete-Ferrailleur-drole-de-circuit.m4v' type='video/mp4'></source></video></div>" ;
beforeEach ( function ( )
beforeEach ( ( ) = >
{
vCarouselTest = new vCarousel ( ) ;
document . body . insertAdjacentHTML ( 'afterbegin' , fixture ) ;
} ) ;
afterEach ( function ( )
afterEach ( ( ) = >
{
document . body . removeChild ( document . getElementById ( 'fixture' ) ) ;
} ) ;
it ( " Should be an instance of vCarousel", function ( )
it ( " Doit être une instance de vCarousel", ( ) = >
{
expect ( vCarouselTest ) . toBeInstanceOf ( vCarousel ) ;
} ) ;
describe ( " Setting vCarousel", function ( )
describe ( " Configuration de vCarousel", ( ) = >
{
it ( "Doit générer une erreur si tous les ids passés ne correspondent pas à des éléments HTML existants." , function ( )
it ( "Doit générer une erreur si tous les ids passés ne correspondent pas à des éléments HTML existants." , ( ) = >
{
expect ( function ( ) { return vCarouselTest . vContainers = [ "dontExistId" , "video1" , "video2" ] ; } ) . toThrowError ( errors . elementNotFound + "dontExistId" ) ;
expect ( function ( ) { return vCarouselTest . vContainers = [ "video1" , "dontExistId" , "video2" ] ; } ) . toThrowError ( errors . elementNotFound + "dontExistId" ) ;
expect ( function ( ) { return vCarouselTest . vContainers = [ "video1" , "video2" , "dontExistId" ] ; } ) . toThrowError ( errors . elementNotFound + "dontExistId" ) ;
expect ( ( ) = > { return vCarouselTest . vContainers = [ "dontExistId" , "video1" , "video2" ] ; } ) . toThrowError ( errors . elementNotFound + "dontExistId" ) ;
expect ( ( ) = > { return vCarouselTest . vContainers = [ "video1" , "dontExistId" , "video2" ] ; } ) . toThrowError ( errors . elementNotFound + "dontExistId" ) ;
expect ( ( ) = > { return vCarouselTest . vContainers = [ "video1" , "video2" , "dontExistId" ] ; } ) . toThrowError ( errors . elementNotFound + "dontExistId" ) ;
} ) ;
it ( "Doit générer une erreur si tous les ids passés ne correspondent pas à des éléments HTML contenant une balise <video>." , function ( )
it ( "Doit générer une erreur si tous les ids passés ne correspondent pas à des éléments HTML contenant une balise <video>." , ( ) = >
{
expect ( function ( ) { return vCarouselTest . vContainers = [ "noVideo" , "video1" , "video2" ] ; } ) . toThrowError ( errors . videoNotFound + "noVideo" ) ;
expect ( function ( ) { return vCarouselTest . vContainers = [ "video1" , "noVideo" , "video2" ] ; } ) . toThrowError ( errors . videoNotFound + "noVideo" ) ;
expect ( function ( ) { return vCarouselTest . vContainers = [ "video1" , "video2" , "noVideo" ] ; } ) . toThrowError ( errors . videoNotFound + "noVideo" ) ;
expect ( ( ) = > { return vCarouselTest . vContainers = [ "noVideo" , "video1" , "video2" ] ; } ) . toThrowError ( errors . videoNotFound + "noVideo" ) ;
expect ( ( ) = > { return vCarouselTest . vContainers = [ "video1" , "noVideo" , "video2" ] ; } ) . toThrowError ( errors . videoNotFound + "noVideo" ) ;
expect ( ( ) = > { return vCarouselTest . vContainers = [ "video1" , "video2" , "noVideo" ] ; } ) . toThrowError ( errors . videoNotFound + "noVideo" ) ;
} ) ;
it ( "Doit générer une erreur s'il n'y a pas au moins 2 ids valides passés pour les éléments HTML contenant les balises <video>." , function ( )
it ( "Doit générer une erreur s'il n'y a pas au moins 2 ids valides passés pour les éléments HTML contenant les balises <video>." , ( ) = >
{
expect ( function ( ) { return vCarouselTest . vContainers = [ "video1" ] ; } ) . toThrowError ( errors . need2Videos ) ;
expect ( ( ) = > { return vCarouselTest . vContainers = [ "video1" ] ; } ) . toThrowError ( errors . need2Videos ) ;
} ) ;
it ( "Ne doit pas générer d'erreur s'il y a au moins 2 ids passés correspondant à des éléments HTML valides et contenant chacun une balise video." , function ( )
it ( "Ne doit pas générer d'erreur s'il y a au moins 2 ids passés correspondant à des éléments HTML valides et contenant chacun une balise video." , ( ) = >
{
expect ( function ( ) { return vCarouselTest . vContainers = [ "video1" , "video2" ] ; } ) . not . toThrowError ( ) ;
expect ( ( ) = > { return vCarouselTest . vContainers = [ "video1" , "video2" ] ; } ) . not . toThrowError ( ) ;
} ) ;
it ( "Ne doit pas prendre en compte l'id fourni pour la première vidéo à afficher, s'il ne correspond pas à une des vidéos fournies." , function ( )
it ( "Ne doit pas prendre en compte l'id fourni pour la première vidéo à afficher, s'il ne correspond pas à une des vidéos fournies." , ( ) = >
{
vCarouselTest . vContainers = [ "video1" , "video2" ] ;
vCarouselTest . firstVideoId = "video3" ;
expect ( vCarouselTest . firstVideoId ) . toBeUndefined ( ) ;
} ) ;
it ( "Doit accepter un firstVideoId vide permettant de cacher toutes les vidéos au lancement." , function ( )
it ( "Doit accepter un firstVideoId vide permettant de cacher toutes les vidéos au lancement." , ( ) = >
{
vCarouselTest . vContainers = [ "video1" , "video2" ] ;
vCarouselTest . firstVideoId = "" ;
@ -64,25 +64,25 @@ describe("vCarousel", function()
} ) ;
} ) ;
describe ( " running vCarousel", function ( )
describe ( " Lancement de vCarousel", ( ) = >
{
it ( "Doit générer une erreur si on lance le carrousel sans avoir fourni les éléments HTML contenant les vidéos." , function ( )
it ( "Doit générer une erreur si on lance le carrousel sans avoir fourni les éléments HTML contenant les vidéos." , ( ) = >
{
expect ( function ( ) { return vCarouselTest . run ( ) ; } ) . toThrowError ( errors . needVideosProvided ) ;
expect ( ( ) = > { return vCarouselTest . run ( ) ; } ) . toThrowError ( errors . needVideosProvided ) ;
} ) ;
it ( "Doit cacher toutes les vidéos si cela est demandé en option, aucune vidéo n'étant alors enregistrée comme en cours." , function ( )
it ( "Doit cacher toutes les vidéos si cela est demandé en option, aucune vidéo n'étant alors enregistrée comme en cours." , ( ) = >
{
const videosId = [ "video1" , "video2" , "video3" ] ;
vCarouselTest . vContainers = videosId ;
vCarouselTest . firstVideoId = "" ;
vCarouselTest . run ( ) ;
for ( le t containerId of videosId )
for ( cons t containerId of videosId )
expect ( document . getElementById ( containerId ) . style . display ) . toBe ( "none" ) ;
expect ( vCarouselTest . currentVideo ) . toBeUndefined ( ) ;
} ) ;
it ( "Doit cacher toutes les vidéos, sauf celle passée en option, qui doit être enregistrée comme celle en cours." , function ( )
it ( "Doit cacher toutes les vidéos, sauf celle passée en option, qui doit être enregistrée comme celle en cours." , ( ) = >
{
vCarouselTest . vContainers = [ "video1" , "video2" , "video3" ] ;
vCarouselTest . firstVideoId = "video3" ;
@ -93,7 +93,7 @@ describe("vCarousel", function()
expect ( vCarouselTest . currentVideo ) . toEqual ( < HTMLMediaElement > document . querySelector ( "#video3 video" ) ) ;
} ) ;
it ( "Si aucune indication n'est passée en option, doit cacher toutes les vidéos, sauf la première qui doit être enregistrée comme celle en cours." , function ( )
it ( "Si aucune indication n'est passée en option, doit cacher toutes les vidéos, sauf la première qui doit être enregistrée comme celle en cours." , ( ) = >
{
vCarouselTest . vContainers = [ "video1" , "video2" , "video3" ] ;
vCarouselTest . run ( ) ;
@ -103,7 +103,7 @@ describe("vCarousel", function()
expect ( vCarouselTest . currentVideo ) . toEqual ( < HTMLMediaElement > document . querySelector ( "#video1 video" ) ) ;
} ) ;
it ( "Doit demander le lancement de la première vidéo affichée, si demandé en option." , function ( )
it ( "Doit demander le lancement de la première vidéo affichée, si demandé en option." , ( ) = >
{
vCarouselTest . vContainers = [ "video1" , "video2" , "video3" ] ;
vCarouselTest . firstVideoId = "video2" ;
@ -114,7 +114,7 @@ describe("vCarousel", function()
expect ( currentVideo . play ) . toHaveBeenCalled ( ) ;
} ) ;
it ( "Ne doit pas demander le lancement de la première vidéo affichée, si cela n'est pas demandé en option." , function ( )
it ( "Ne doit pas demander le lancement de la première vidéo affichée, si cela n'est pas demandé en option." , ( ) = >
{
vCarouselTest . vContainers = [ "video1" , "video2" , "video3" ] ;
vCarouselTest . firstVideoId = "video3" ;
@ -124,7 +124,7 @@ describe("vCarousel", function()
expect ( currentVideo . play ) . not . toHaveBeenCalled ( ) ;
} ) ;
it ( "Doit passer d'une vidéo à l'autre et arrêter lorsqu'elles ont toutes été affichées." , function ( )
it ( "Doit passer d'une vidéo à l'autre et arrêter lorsqu'elles ont toutes été affichées." , ( ) = >
{
vCarouselTest . vContainers = [ "video1" , "video2" , "video3" ] ;
vCarouselTest . run ( ) ;
@ -150,7 +150,7 @@ describe("vCarousel", function()
expect ( window . location . hash ) . toEqual ( "#video3" ) ;
} ) ;
it ( "Si cela est demandé, le carrousel doit reprendre au début après avoir parcouru toutes les vidéos." , function ( )
it ( "Si cela est demandé, le carrousel doit reprendre au début après avoir parcouru toutes les vidéos." , ( ) = >
{
vCarouselTest . vContainers = [ "video1" , "video2" , "video3" ] ;
vCarouselTest . noStop = true ;
@ -171,7 +171,7 @@ describe("vCarousel", function()
expect ( window . location . hash ) . toEqual ( "#video1" ) ;
} ) ;
it ( "Doit demander le lancement des nouvelles vidéos affichées, si cela est demandé en option." , function ( )
it ( "Doit demander le lancement des nouvelles vidéos affichées, si cela est demandé en option." , ( ) = >
{
vCarouselTest . vContainers = [ "video1" , "video2" , "video3" ] ;
vCarouselTest . playNextVideos = true ;
@ -184,7 +184,7 @@ describe("vCarousel", function()
expect ( nextVideo . play ) . toHaveBeenCalled ( ) ;
} ) ;
it ( "Ne doit pas demander le lancement des nouvelles vidéos affichées, si cela n'est pas demandé en option." , function ( )
it ( "Ne doit pas demander le lancement des nouvelles vidéos affichées, si cela n'est pas demandé en option." , ( ) = >
{
vCarouselTest . vContainers = [ "video1" , "video2" , "video3" ] ;
vCarouselTest . firstVideoId = "video2" ;