NEWS
Hilfe bei Travis
-
Hallo kann mir jemand helfen warum mein Adapter nicht bei Travis besteht?
folgendes Log:
so sieht die Codezeile aus....
auf den der Fehler in Travis hinweist. Falls das der Grund des not passing ist?
-
@blauholsten So wie du es geschrieben hast, kann der letzte else-Branch ebenfalls ausgeführt werden, wenn
state === undefined
ist. Du kannst die Prüfung auf einen definierten State ändern zustate == null
, das ist äquivalent zustate === null || state === undefined
.Was bei dir fehlschlägt ist der Unit-Test, der mit einem gefaketen ioBroker im Hintergrund arbeitet. Es kann sein, dass die Methoden sich nicht 100% identisch zu einem echten JS-Controller verhalten. Lokal wird dann bei einem nicht existierenden wohl
null
zurück gegeben, der Fake gibt aberundefined
zurück. Schadet dennoch nicht, sowohlnull
als auchundefined
auszuschließen, gerade falls sich in einer zukünftigen JS-Controller-Version hier was am Verhalten ändert. -
@blauholsten Ab js-controller 2.0 wäre das an sich korrekt.
Die Relaität ist glaube ich für 90% der Adapter das auf "!state" geprüft wird
oder "typeof state !== 'object'"weil state ist entweder ein Objekt oder "nicht definiert" (null/undefined) -
@apollon77 sagte in Hilfe bei Travis:
"typeof state !== 'object'"
BITTE NICHT!
typeof null
ist'object'
!!state
hingegen ist sicher. -
@apollon77 sagte in Hilfe bei Travis:
@blauholsten Ab js-controller 2.0 wäre das an sich korrekt.
Okay danke!!!, Ab js 2.0 wäre der ganze code baustein nicht mehr erforderlich, da mit der Version Default states der instance angelegt werden können.
Hoffe ich zumindest? -
@blauholsten Ja die Defauts sind drin. Dennoch muss dein Adapter - es sei denn er soll NUR mit controller 2.0 funktionieren - beides können
... erstmal für ne Weile