Commit 2e309a73d70d77356d3bc10e6d534955c9b1616b

Authored by Etienne Pallier
1 parent a87adffc
Exists in master and in 1 other branch dev

Bugfix pas mal de tests...

v5.2.10-3.7.9
CHANGELOG
... ... @@ -352,6 +352,23 @@ Commencer à implémenter le nouveau workflow v5 :
352 352  
353 353 ======= TODO =======
354 354  
  355 + *) TESTS !!!!
  356 +
  357 + *) Validation multiple ne marche plus
  358 +
  359 + *) Les tests doivent se faire avec la config par défaut (et non pas celle spécifique du labo)
  360 +
  361 + *) Ajouter test Commande (avec devis joint !)
  362 +
  363 + *)
  364 + TBO ou ARCHIVED (= validated) : ne pas autoriser edit ou delete des docs attachés
  365 + Autoriser certaines choses pour TBO :
  366 + - edit (mais pas delete)
  367 + - print label
  368 + - add doc attaché
  369 + - (pas emprunt ni suivi)
  370 +
  371 +
355 372 *)
356 373 champ "budgets" à rendre optionnel dans schéma BD...
357 374  
... ... @@ -360,9 +377,7 @@ Commencer à implémenter le nouveau workflow v5 :
360 377 Facture jointe (si > 10K)
361 378  
362 379  
363   - *)
364   - TESTS !!!!
365   -
  380 +
366 381  
367 382  
368 383 *)
... ... @@ -399,6 +414,10 @@ Commencer à implémenter le nouveau workflow v5 :
399 414 ======= CHANGES =======
400 415  
401 416 -------
  417 +14/09/2021 v5.2.10-3.7.9
  418 + - Bugfix pas mal de tests...
  419 +
  420 +-------
402 421 14/09/2021 v5.2.9-3.7.9
403 422 - Bugfix Ajout materiel
404 423  
... ...
README.md
... ... @@ -53,7 +53,7 @@ Logiciel testé et validé sur les configurations suivantes :
53 53 --------------------------------------------------------------------------------------------
54 54  
55 55 Date: 14/09/2021
56   -Version: v5.2.9-3.7.9
  56 +Version: v5.2.10-3.7.9
57 57  
58 58  
59 59  
... ...
src/Controller/MaterielsController.php
... ... @@ -3060,7 +3060,7 @@ class MaterielsController extends AppController {
3060 3060 // Si au moins un champ obligatoire est nul ou vide => ERROR
3061 3061 foreach ($mandatoryFields as $fname => $fnicename) {
3062 3062  
3063   - // Champs obligatoires à ignorer : Champs virtuels ou ne pouvant être exigés si tôt
  3063 + // Champs obligatoires à ignorer : Champs virtuels ou alors ne pouvant être exigés si tôt
3064 3064 if ( in_array($fname, ['DEVIS', 'etiquette', 'numero_inventaire_organisme']) ) continue;
3065 3065  
3066 3066 $fval = $materiel->$fname;
... ... @@ -3078,6 +3078,7 @@ class MaterielsController extends AppController {
3078 3078 * de bootstrap, ou bootsrap-ui, ou cakephp..., à surveiller donc)
3079 3079 */
3080 3080 $msgError1 = "Pour valider un matériel, le champ suivant ne doit pas être vide : ".$fnicename.' du matériel';
  3081 + debug($msgError1);
3081 3082 $this->Flash->error($msgError1);
3082 3083 /* MARCHE PAS POURQUOI ?
3083 3084 $materiel->setError($field, 'Ce champ ne doit pas être vide');
... ...
tests/Fixture/MaterielsFixture.php
... ... @@ -881,7 +881,8 @@ class MaterielsFixture extends TestFixture {
881 881 'organisme_id' => 1,
882 882 'site_id' => 1, // Roche
883 883 'metrologie' => 0,
884   - 'fournisseur_id' => 1
  884 + 'fournisseur_id' => 1,
  885 + 'nom_user' => 'JP',
885 886 ],
886 887  
887 888 // matos VALIDATED owned by anybody
... ...
tests/TestCase/Controller/MaterielsControllerTest.php
... ... @@ -163,6 +163,7 @@ class MaterielsControllerTest extends General {
163 163 'gestionnaire_id' => 3, // user id 3 est un profil Administration
164 164 'organisme_id' => 1,
165 165 'eotp' => 'budget1, budget2',
  166 + 'budgets' => 'bud1, bud2',
166 167 ];
167 168  
168 169 /*
... ... @@ -1864,8 +1865,14 @@ class MaterielsControllerTest extends General {
1864 1865 $this->post('/materiels/status-validated/11');
1865 1866 $this->get('/materiels/view/11');
1866 1867  
  1868 + /*
1867 1869 $this->assertResponseNotContains('CREATED', "La validation du materiel ne se fait pas correctement (1)");
1868 1870 $this->assertResponseContains('VALIDATED', "La validation du materiel ne se fait pas correctement (2)");
  1871 + $this->assertResponseNotContains('CRÉÉ - à valider', "La validation du materiel ne se fait pas correctement (1)");
  1872 + $this->assertResponseContains('VALIDÉ - livré & payé', "La validation du materiel ne se fait pas correctement (2)");
  1873 + */
  1874 + $this->assertResponseNotContains($this->Materiels->getNiceStatus('CREATED'), "La validation du materiel ne se fait pas correctement (1)");
  1875 + $this->assertResponseContains($this->Materiels->getNiceStatus('VALIDATED'), "La validation du materiel ne se fait pas correctement (2)");
1869 1876 }
1870 1877  
1871 1878 /**
... ... @@ -1880,7 +1887,9 @@ class MaterielsControllerTest extends General {
1880 1887 $this->post('/materiels/status-tobearchived/12');
1881 1888 $this->get('/materiels/view/12');
1882 1889  
1883   - $this->assertResponseContains('TOBEARCHIVED', "La demande d'archivage du materiel ne se fait pas correctement.");
  1890 + //$this->assertResponseContains('TOBEARCHIVED', "La demande d'archivage du materiel ne se fait pas correctement.");
  1891 + $this->assertResponseContains($this->Materiels->getNiceStatus('TOBEARCHIVED'), "La demande d'archivage du materiel ne se fait pas correctement");
  1892 +
1884 1893 }
1885 1894  
1886 1895 /**
... ... @@ -1945,26 +1954,33 @@ class MaterielsControllerTest extends General {
1945 1954 'what' => 'CREATED',
1946 1955 11 => '1',
1947 1956 12 => '1',
1948   - 13 => '1'
  1957 + 13 => '1',
1949 1958 ]);
1950 1959  
1951 1960 $this->get('/materiels/view/11');
1952   - $this->assertResponseContains('VALIDATED', "(11) La mise à jour de plusieurs statuts sur le materiel ne se fait pas correctement.");
1953   - $this->assertResponseNotContains('CREATED', "(11) La mise à jour de plusieurs statuts sur le materiel ne se fait pas correctement.");
1954   - $this->assertResponseNotContains('TOBEARCHIVED', "(11) La mise à jour de plusieurs statuts sur le materiel ne se fait pas correctement.");
1955   - $this->assertResponseNotContains('ARCHIVED', "(11) La mise à jour de plusieurs statuts sur le materiel ne se fait pas correctement.");
  1961 +
  1962 + $statusC = $this->Materiels->getNiceStatus('CREATED');
  1963 + $statusV = $this->Materiels->getNiceStatus('VALIDATED');
  1964 + $statusTBA = $this->Materiels->getNiceStatus('TOBEARCHIVED');
  1965 + $statusA = $this->Materiels->getNiceStatus('ARCHIVED');
  1966 +
  1967 + //$this->assertResponseContains('VALIDATED', "(11) La mise à jour de plusieurs statuts sur le materiel ne se fait pas correctement.");
  1968 + $this->assertResponseContains($statusV, "(11) La mise à jour de plusieurs statuts sur le materiel ne se fait pas correctement.");
  1969 + $this->assertResponseNotContains($statusC, "(11) La mise à jour de plusieurs statuts sur le materiel ne se fait pas correctement.");
  1970 + $this->assertResponseNotContains($statusTBA, "(11) La mise à jour de plusieurs statuts sur le materiel ne se fait pas correctement.");
  1971 + $this->assertResponseNotContains($statusA, "(11) La mise à jour de plusieurs statuts sur le materiel ne se fait pas correctement.");
1956 1972  
1957 1973 $this->get('/materiels/view/12');
1958   - $this->assertResponseContains('VALIDATED', "(12) La mise à jour de plusieurs statuts sur le materiel ne se fait pas correctement.");
1959   - $this->assertResponseNotContains('CREATED', "(12) La mise à jour de plusieurs statuts sur le materiel ne se fait pas correctement.");
1960   - $this->assertResponseNotContains('TOBEARCHIVED', "La mise à jour de plusieurs statuts sur le materiel ne se fait pas correctement.");
1961   - $this->assertResponseNotContains('ARCHIVED', "La mise à jour de plusieurs statuts sur le materiel ne se fait pas correctement.");
  1974 + $this->assertResponseContains($statusV, "(12) La mise à jour de plusieurs statuts sur le materiel ne se fait pas correctement.");
  1975 + $this->assertResponseNotContains($statusC, "(12) La mise à jour de plusieurs statuts sur le materiel ne se fait pas correctement.");
  1976 + $this->assertResponseNotContains($statusTBA, "La mise à jour de plusieurs statuts sur le materiel ne se fait pas correctement.");
  1977 + $this->assertResponseNotContains($statusA, "La mise à jour de plusieurs statuts sur le materiel ne se fait pas correctement.");
1962 1978  
1963 1979 $this->get('/materiels/view/13');
1964   - $this->assertResponseContains('VALIDATED', "(13) La mise à jour de plusieurs statuts sur le materiel ne se fait pas correctement.");
1965   - $this->assertResponseNotContains('CREATED', "(13) La mise à jour de plusieurs statuts sur le materiel ne se fait pas correctement.");
1966   - $this->assertResponseNotContains('TOBEARCHIVED', "La mise à jour de plusieurs statuts sur le materiel ne se fait pas correctement.");
1967   - $this->assertResponseNotContains('ARCHIVED', "La mise à jour de plusieurs statuts sur le materiel ne se fait pas correctement.");
  1980 + $this->assertResponseContains($statusV, "(13) La mise à jour de plusieurs statuts sur le materiel ne se fait pas correctement.");
  1981 + $this->assertResponseNotContains($statusC, "(13) La mise à jour de plusieurs statuts sur le materiel ne se fait pas correctement.");
  1982 + $this->assertResponseNotContains($statusTBA, "La mise à jour de plusieurs statuts sur le materiel ne se fait pas correctement.");
  1983 + $this->assertResponseNotContains($statusA, "La mise à jour de plusieurs statuts sur le materiel ne se fait pas correctement.");
1968 1984 }
1969 1985  
1970 1986  
... ... @@ -2007,15 +2023,16 @@ class MaterielsControllerTest extends General {
2007 2023  
2008 2024 $this->post('/materiels/status-validated/11');
2009 2025 $this->get('/materiels/view/11');
2010   - $this->assertResponseContains('CREATED', "La validation du materiel se fait avec un profil utilisateur.");
2011   -
  2026 + //$this->assertResponseContains('CREATED', "La validation du materiel se fait avec un profil utilisateur.");
  2027 + $this->assertResponseContains($this->Materiels->getNiceStatus('CREATED'), "La validation du materiel se fait avec un profil utilisateur.");
  2028 +
2012 2029 $this->post('/materiels/status-tobearchived/12');
2013 2030 $this->get('/materiels/view/12');
2014   - $this->assertResponseContains('VALIDATED', "La demande d'archivage du materiel se fait avec un profil utilisateur.");
  2031 + $this->assertResponseContains($this->Materiels->getNiceStatus('VALIDATED'), "La demande d'archivage du materiel se fait avec un profil utilisateur.");
2015 2032  
2016 2033 $this->post('/materiels/status-archived/13');
2017 2034 $this->get('/materiels/view/13');
2018   - $this->assertResponseContains('TOBEARCHIVED', "L'archivage du materiel se fait avec un profil utilisateur.");
  2035 + $this->assertResponseContains($this->Materiels->getNiceStatus('TOBEARCHIVED'), "L'archivage du materiel se fait avec un profil utilisateur.");
2019 2036 }
2020 2037  
2021 2038 /**
... ... @@ -2028,15 +2045,15 @@ class MaterielsControllerTest extends General {
2028 2045  
2029 2046 $this->post('/materiels/status-validated/11');
2030 2047 $this->get('/materiels/view/11');
2031   - $this->assertResponseContains('VALIDATED', "La validation du materiel ne se fait pas correctement avec un profil admin+.");
  2048 + $this->assertResponseContains($this->Materiels->getNiceStatus('VALIDATED'), "La validation du materiel ne se fait pas correctement avec un profil admin+.");
2032 2049  
2033 2050 $this->post('/materiels/status-tobearchived/12');
2034 2051 $this->get('/materiels/view/12');
2035   - $this->assertResponseContains('TOBEARCHIVED', "La demande d'archivage du materiel ne se fait pas correctement avec un profil admin+.");
  2052 + $this->assertResponseContains($this->Materiels->getNiceStatus('TOBEARCHIVED'), "La demande d'archivage du materiel ne se fait pas correctement avec un profil admin+.");
2036 2053  
2037 2054 $this->post('/materiels/status-archived/13');
2038 2055 $this->get('/materiels/view/13');
2039   - $this->assertResponseContains('ARCHIVED', "L'archivage du materiel ne se fait pas correctement avec un profil admin+.");
  2056 + $this->assertResponseContains($this->Materiels->getNiceStatus('ARCHIVED'), "L'archivage du materiel ne se fait pas correctement avec un profil admin+.");
2040 2057 }
2041 2058  
2042 2059 /**
... ... @@ -2438,7 +2455,15 @@ class MaterielsControllerTest extends General {
2438 2455 'edit' => 'Éditer', // 'Editer ce matériel'
2439 2456 'delete' => 'Supprimer',
2440 2457 'add_by_copy' => 'Copier',
2441   - 'statusCreated' => 'Dévalider',
  2458 +
  2459 + /* Problème : cette action change de nom selon le statut actuel du materiel
  2460 + * Ca peut etre "Invalider", ou "Annuler Sortie", ou "Désarchiver"...
  2461 + * Donc, on utilise plutot le nom interne de l'action dans le code html : status-created
  2462 + */
  2463 + //'statusCreated' => 'Dévalider',
  2464 + //'statusCreated' => 'Invalider',
  2465 + 'statusCreated' => 'status-created',
  2466 +
2442 2467 'statusValidated' => 'Valider',
2443 2468 'statusTobearchived' => "Demander sortie",
2444 2469 'statusArchived' => 'Sortie inventaire',
... ... @@ -2614,7 +2639,8 @@ class MaterielsControllerTest extends General {
2614 2639 $expected_flash_message .= 'supprimé';
2615 2640 break;
2616 2641 case 'statusCreated':
2617   - $expected_flash_message .= 'rétrogradé au statut CREATED';
  2642 + //$expected_flash_message .= 'rétrogradé au statut CREATED';
  2643 + $expected_flash_message .= "rétrogradé au statut 'CRÉÉ'";
2618 2644 break;
2619 2645 case 'statusValidated':
2620 2646 $expected_flash_message .= 'validé';
... ...
tests/TestCase/Controller/PagesControllerTest.php
... ... @@ -74,6 +74,7 @@ class PagesControllerTest extends General
74 74 public function testPage10AccessHomeAsAdmin() { $this->_testPageAccessHomeAs('ADMIN'); }
75 75 //public function testPage10AccessHomeAsAdminPlus() { $this->_testPageAccessHomeAs('ADMINP'); }
76 76 public function testPage10AccessHomeAsSuperAdmin() { $this->_testPageAccessHomeAs('SUPER'); }
  77 +
77 78 private function _testPageAccessHomeAs($role) {
78 79 //$this->authUser();
79 80 $this->authAs($role);
... ... @@ -92,7 +93,9 @@ class PagesControllerTest extends General
92 93 case 'RESP': break;
93 94 case 'ADMIN':
94 95 $this->assertResponseContains('Administration');
95   - $this->assertResponseContains('Voir les matériels à valider');
  96 + //$this->assertResponseContains('Statistiques');
  97 + //$this->assertResponseContains('Voir mes matériels');
  98 + $this->assertResponseContains('Voir les matériels à Valider');
96 99 break;
97 100 //case 'ADMINP': break;
98 101 case 'SUPER':
... ...