[V4][Intégration] Z-wave

Non, quand même :sweat_smile: je lance les tests un par un via VSC mais je n’ai pas le coverage gobal.

1 Like

Ah ok aha tu me rassure !

Normalement tu peux lancer le coverage même sur un subset de test (soit en modifiant le package.json, soit en laissant des describe.only)

Et ensuite tu vois les fichiers de coverage en local (tu peux modifier l’option de nyc pour export un HTML de coverage), c’est super bien fait et c’est lisible ! Ça te donne ligne par ligne

@Romuald_Pochet en fait le coverage est disponible sur la PR, à la fin des tests tu as un bloc:

En comparaison par rapport à la prod (-3,4%):

Le détail complet:

services/zwave-js-ui/lib/commands     |   49.26 |    24.37 |   74.07 |   49.26 |                   
  addNode.js                           |     100 |      100 |     100 |     100 |                   
  connect.js                           |   68.69 |    31.25 |   71.43 |   68.69 | ...24,158-161,182 
  disconnect.js                        |     100 |      100 |     100 |     100 |                   
  getConfiguration.js                  |      50 |        0 |       0 |      50 | 10-12             
  getNodes.js                          |   94.74 |    66.67 |     100 |   94.74 | 23,104            
  getStatus.js                         |     100 |    66.67 |     100 |     100 | 15-16             
  installMqttContainer.js              |   13.11 |        0 |       0 |   13.11 | 16-114            
  installZ2mContainer.js               |   14.81 |        0 |       0 |   14.81 | 16-97             
  removeNode.js                        |     100 |      100 |     100 |     100 |                   
  setValue.js                          |   55.56 |      100 |       0 |   55.56 | 15-19             
  updateConfiguration.js               |    8.33 |        0 |       0 |    8.33 | 11-80             
 services/zwave-js-ui/lib/events       |   37.01 |     16.1 |   26.67 |   37.01 |                   
  handleMqttMessage.js                 |      11 |        0 |       0 |      11 | 21-240            
  metadataUpdate.js                    |      50 |      100 |       0 |      50 | 10-11             
  nodeAdded.js                         |      40 |      100 |      20 |      40 | 34-69             
  nodeInterview.js                     |   15.79 |      100 |       0 |   15.79 | 11-55             
  nodeReady.js                         |      95 |       40 |      50 |      95 | 30                
  nodeRemoved.js                       |     100 |      100 |     100 |     100 |                   
  nodeState.js                         |   14.29 |      100 |       0 |   14.29 | 11-55             
  notification.js                      |     100 |      100 |     100 |     100 |                   
  scanComplete.js                      |     100 |      100 |     100 |     100 |                   
  statisticsUpdated.js                 |   22.22 |        0 |       0 |   22.22 | 11-19             
  valueAdded.js                        |   77.78 |    54.17 |     100 |   77.78 | 20,74-87          
  valueNotification.js                 |   23.08 |        0 |       0 |   23.08 | 15-55             
  valueRemoved.js                      |     100 |    66.67 |     100 |     100 | 14-18             
  valueUpdated.js                      |   22.22 |        0 |       0 |   22.22 | 16-48             
 services/zwave-js-ui/lib/utils        |      75 |    70.27 |   73.33 |      75 |                   
  bindValue.js                         |   59.09 |       50 |      50 |   59.09 | 13-19,39,42,49,52 
  externalId.js                        |      50 |     87.5 |      80 |      50 | 45,58-63          
  getCategory.js                       |     100 |    76.19 |     100 |     100 | 26-30             
  getUnit.js                           |     100 |      100 |     100 |     100 |                   
  splitNode.js                         |   71.43 |       60 |   66.67 |   71.43 | 64-94             

@Romuald_Pochet J’ai débloqué les builds, tu as le coverage sur CodeCov:

N’hésite pas si tu as besoin d’aide pour atteindre le coverage requis :slight_smile:

J’essaye de compléter la couverture des tests. Mais j’ai l’erreur suivante:


Pourquoi ma fonction scanComplete est surlignée en vert ?

Par contre pas de soucis avec (fonction en jaune???):
image

Merci de votre aide, ca doit être une bétise…

T’es sûr de fake() ? C’est pas plutôt fake.resolves(null); ou fake.returns(null); ?

En effet, c’est plutot fake.resolves(null) mais toujours la même erreur dans VSC.
Par contre, j’ai tout de même exécuter le test et cela fonctionne. Je vais donc à l’avenir ne plus me préoccuper des erreurs VSC :innocent:

Comme je l’ai indiqué sur ce post,
[Quel matériel avez-vous ?](Intégration Z-Wave - Quel matériel avez-vous? - #4 par gaetanb76
Je veux bien essayer de tester.
Pour cela, je viens de recevoir une 2eme clé Z-wave que je vais brancher sur Gladys.
Si cela vous intéresse, expliquez-moi la procédure.

1 Like

Salut @Romuald_Pochet ! J’ai vu que tu avais poussé des commits récemment, tout va bien sur le développement? :slight_smile:

Si tu as besoin d’aide pour les tests, ou que je te débloque sur un truc n’hésite pas…

Sinon par rapport à l’intégration Open-zwave, je suis un peu inquiet de ce côté car contrairement à ce que j’imaginais le nombre d’utilisateurs de l’intégration a re-augmenté, on est revenu à 15 :sweat_smile:

En plus, j’ai encore eu un feedback négatif côté expérience développeur, j’ai eu le feedback du nouveau contributeur espagnol qui a fait le correctif sur docker-compose, il ma dit qu’il avait même pas été capable de mettre en place un environnement de dev sur son mac et qu’il avait du passer par Github Codespace… (probablement a cause des requirement d’open-zwave pour le setup qui sont pas facile)

Salut,

Oui, petit à petit les tests arrivent mais c’est assez long j’avoue, il manque 20%. Si tu sais faire les tests sur installZ2mContainer et installMqttContainer (qui ne sont pas vraiment spécifique à ZWave).

R.

1 Like

Tu as regardé côté Zigbee2Mqtt ? Ça va être assez similaire niveau testing

Oui, je suis parti de Zigbee2Mqtt mais tous les cas ne sont pas gérés… et je me focalise sur les tests spécifiques mais ca prend du temps

1 Like

Ok! Merci pour tout le travail en tout cas, ça va faire plaisir à un paquet de monde cette intégration ^^

C’est bien vrai ça ! :wink:

1 Like

J’ai fait du nettoyage car je voulais supporter les même fonctionnalités que OpenZwave. Ca diminue les tests. Mais au vu de l’interface ZwaveJS UI qui est tout de même agreéable, on pourrait envisager d’intégrer dans Gladys les fonctionnalités ZwaveJS UI au fur et a mesure des besoins (ex. heal network, node re-interview…)

:+1:

Carrément :slight_smile:

Ma PR est bloquée, est-ce due au merge conflict ? Je n’ai pas droits de resoudre les conflits

Je ne pense pas que ce soit dû aux conflits, les builds ont lieux sur ton fork (ton repo), donc tu as tous les droits c’est ton repo :slight_smile: Connecte toi sur Github et regarde si tu as un message ?

Pour corriger les conflits, c’est à faire en local, il faut que tu merge master du repo principal Gladys dans ta branche de ton repo (en local), tu devrais ensuite voir des fichiers en conflits en local, et si par exemple tu utilise VS Code tu as un utilitaire de résolution de conflits dans l’onglet « source control »:

Dis moi si c’est pas suffisamment clair :slight_smile:

@Romuald_Pochet On vient de passer à Node.js 18 LTS sur master, donc attention à ton prochain rebase il va falloir mettre à jour ton environnement de développement (mise à jour de Node, suppression des node_modules + npm install)

Si je vais sur la PR Zwavejs2mqtt by rpochet · Pull Request #1619, c’est tout de meme exécuté sur le repo Gladys et non mon fork, non?

Sinon, chaque fois que je fais un merge, ça me pose toujours un problème (ex. dans la branch zwavejs2mqtt, on voyait les commits de la branche mergé… Aurais-tu la commande a exécuter à partir de mon repo local?