Faire clignoter une ampoule/prise

En attendant, une nouvelle image :whale: est disponible cicoub13/gladys:blinking-lights. Ce qui a été corrigé est le fait que l’action soit bloquante.

Par exemple, si vous ajoutez une action « Envoyer un message », cela ne se fera qu’après que la lumière est finie de clignoter.

2 façons de résoudre ça :slight_smile:

Déjà, si tu peux influer sur le temps dans les tests !

Sinon, tu peux utiliser des temps beaucoup plus petits dans tes tests pour que ça passe plus vite

J’étais parti sur l’option fake clock (qui me paraît plus simple) mais ça ne marchait pas. Je vais réessayer, merci

bonjour @cicoub13

Juste 2 petites remarques :
Pourquoi ne pas multiplier ta constante blinking_time directement dans sa déclaration pour éviter le calcul dans la boucle
const blinkingTime = action.blinking_time * 1000 ;
J’ai toujours utilisé des noms de variables doublée (ii aul lieu de i) c’est plus facile à tracer ensuite !

Pour le reste pas assez calé dans ce langage ! :woozy_face:

Salut @cicoub,

Je ne sais pas si cela peut t’aider et si le cas de figure correspond :
server/test/services/netatmo/lib/netatmo.pollRefreshingValues.test.js

… j’espère …

J’ai galéré à le faire fonctionner. Mais avec un mix copilot / chatGPT / stackoverflow, ça a fonctionné avec cette combinaison (le 1er test notamment)

Tu remarqueras cette partie dans le 2ème test :

    clock.tick(120 * 1000);
    clock.restore();
    // eslint-disable-next-line no-promise-executor-return
    await new Promise((resolve) => setTimeout(resolve, 50));

Pour passer 120 secondes puis arrêter le clock et réaliser la Promesse. Ca ne fonctionnait pas sans le clock.restore() car ça rentre en conflit de gestion d’horloge (de ce que j’en ai compris… ^^)

1 « J'aime »

C’est corrigé, merci

Ça marche avec les fake timers de SinonJS. J’ai dû mettre à jour en version 8.1.1 (précédemment 7.2.4) pour bénéficier de clock.tickAsync().

D’ailleurs, ils en sont à la version 17 :sweat:

Merci @Terdious et @pierre-gilles, c’était pas évident ces tests avec notion de temps :sweat_smile:

Je te préviens quand tout est prêt

2 « J'aime »

PR prête (fonctionnellement, développement, tests) :tada:

3 « J'aime »

Merci pour la PR @cicoub13 :slight_smile:

J’ai trouvé un petit bug en faisant un test en réel :

Mais rien de très grave, le comportement sinon marche bien !

1 « J'aime »

C’est corrigé

4 « J'aime »

Merci pour le fix @cicoub13 ! C’est bon pour moi, c’est mergé sur master et ça partira dans la prochaine version de Gladys :slight_smile:

4 « J'aime »

Cette fonctionnalité est disponible dans Gladys Assistant 4.38 :slight_smile:

Je ferme ce sujet pour libérer les votes, n’hésitez pas à créer d’autres sujets en cas de bugs/retours :slight_smile:

Merci à @cicoub13 pour le développement :pray:

4 « J'aime »