Also, it seems it’s easily tested. A Decoder does not need to return details that are related to the payload, so you could test with things like:
function Decoder(bytes, port) {
switch(bytes[0]) {
case 0x01:
return {
a: true,
b: "string",
c: 12.3
};
case 0x02:
return {
...
};
...
}
}
And then use a device’s Simulate uplink to test.