@ -70,14 +70,13 @@ describe("Test du moteur de recherche.", () =>
it ( "Si tous numéros des champs sur lesquels effectuer les recherches existent dans les données, ils doivent être acceptés." , ( ) = >
{
expect ( ( ) = > { return new SearchEngine ( converter , { id : "mySearch" } , [ 0 , 2 , 3 ] ) ; } ) . not . toThrowError ( ) ;
mySearch = new SearchEngine ( converter , { id : "mySearch" } , [ 0 , 2 , 3 ] ) ;
expect ( ( ) = > { return mySearch = new SearchEngine ( converter , { id : "mySearch" } , [ 0 , 2 , 3 ] ) ; } ) . not . toThrowError ( ) ;
expect ( mySearch . fields2Search ) . toEqual ( [ "Z (numéro atomique)" , "Symbole" , "Famille" ] ) ;
} ) ;
it ( "Un tableau vide pour les champs sur lesquels effectuer les recherche doit être accepté." , ( ) = >
{
expect ( ( ) = > { return new SearchEngine ( converter , { id : "mySearch" } , [ ] ) ; } ) . not . toThrowError ( ) ;
expect ( ( ) = > { return mySearch = new SearchEngine ( converter , { id : "mySearch" } , [ ] ) ; } ) . not . toThrowError ( ) ;
expect ( mySearch . fields2Search ) . toEqual ( [ "Z (numéro atomique)" , "Élément" , "Symbole" , "Famille" , "Abondance des éléments dans la croûte terrestre (μg/k)" ] ) ;
} ) ;
} ) ;
@ -157,26 +156,7 @@ describe("Test du moteur de recherche.", () =>
searchBtn . click ( ) ;
expect ( converter . refreshView ) . toHaveBeenCalledTimes ( 2 ) ;
} ) ;
it ( "Le clic sur le bouton SUBMIT doit appeler la fonction actualisant l'affichage, pour peu que le nombre de caractères défini soit saisi." , ( ) = >
{
spyOn ( converter , "refreshView" ) ;
mySearch . nbCharsForSearch = 3 ;
searchInput . value = "z" ;
searchBtn . click ( ) ;
expect ( converter . refreshView ) . not . toHaveBeenCalled ( ) ;
searchInput . value = "zz" ;
searchBtn . click ( ) ;
expect ( converter . refreshView ) . not . toHaveBeenCalled ( ) ;
searchInput . value = "zzz" ;
searchBtn . click ( ) ;
expect ( converter . refreshView ) . toHaveBeenCalledTimes ( 1 ) ;
// Il est toujours possible d'annuler la recherche :
searchInput . value = "" ;
searchBtn . click ( ) ;
expect ( converter . refreshView ) . toHaveBeenCalledTimes ( 2 ) ;
} ) ;
it ( "Si demandé, l'actualisation est lancée à chaque saisie, y compris si le champ est vide." , ( ) = >
{
spyOn ( converter , "refreshView" ) ;
@ -213,6 +193,16 @@ describe("Test du moteur de recherche.", () =>
searchInput . value = "" ;
searchInput . dispatchEvent ( new Event ( "input" ) ) ;
expect ( converter . refreshView ) . toHaveBeenCalledTimes ( 2 ) ;
// Les espaces entourant la valeur saisie doivent être ignorés dans le décompte des caractères :
searchInput . value = " zz" ;
searchInput . dispatchEvent ( new Event ( "input" ) ) ;
expect ( converter . refreshView ) . toHaveBeenCalledTimes ( 2 ) ;
searchInput . value = "zz " ;
searchInput . dispatchEvent ( new Event ( "input" ) ) ;
expect ( converter . refreshView ) . toHaveBeenCalledTimes ( 2 ) ;
searchInput . value = " zz " ;
searchInput . dispatchEvent ( new Event ( "input" ) ) ;
expect ( converter . refreshView ) . toHaveBeenCalledTimes ( 2 ) ;
} ) ;
it ( "Doit toujours retourner true si le champ de recherche est vide." , ( ) = >
@ -227,6 +217,10 @@ describe("Test du moteur de recherche.", () =>
searchInput . value = "" ;
searchInput . dispatchEvent ( new Event ( "input" ) ) ;
expect ( mySearch . dataIsOk ( { "nom" : "oui" } ) ) . toBeTrue ( ) ;
// Y compris si il y a seulement des espaces :
searchInput . value = " " ;
searchInput . dispatchEvent ( new Event ( "input" ) ) ;
expect ( mySearch . dataIsOk ( { "nom" : "oui" } ) ) . toBeTrue ( ) ;
} ) ;
describe ( "Filtre des données" , ( ) = >
@ -250,7 +244,7 @@ describe("Test du moteur de recherche.", () =>
expect ( mySearch . dataIsOk ( { "Famille" : "Halogene" } ) ) . toBeFalse ( ) ; // sensible aux accents
} ) ;
it ( "Doit retourner true, si la valeur recherchée est re trouvée dans la donnée recherchée, sans prendre en compte la casse.", ( ) = >
it ( "Doit retourner true, si la valeur recherchée est trouvée dans la donnée recherchée, sans prendre en compte la casse, ni les espaces entourant la saisi e.", ( ) = >
{
// Expression exacte :
searchInput . value = "Halogène" ;
@ -264,6 +258,10 @@ describe("Test du moteur de recherche.", () =>
searchInput . value = "halo" ;
searchInput . dispatchEvent ( new Event ( "input" ) ) ;
expect ( mySearch . dataIsOk ( { "Famille" : "Halogène" } ) ) . toBeTrue ( ) ;
// Espace entourant la saisie ignorés :
searchInput . value = " halo " ;
searchInput . dispatchEvent ( new Event ( "input" ) ) ;
expect ( mySearch . dataIsOk ( { "Famille" : "Halogène" } ) ) . toBeTrue ( ) ;
} ) ;
} ) ;
} ) ;