- Connection
- test initial handshake
- test disconnection
- connect
- turn off internet
- dslink should retry evern 1 second 2 seoncd ... in the end it should retry once every 60 seconds
- turn internet back
- dslink should reused the previous salt send back by broker, instead of doing a full handshake (in websocket message, not the initial one returned by /conn)
- restart broker, dslink should try the previous salt first, after that failed, do a full handshake
- test reconnection
- start dslink before broker
- dslink should retry
- start broker and it should get connected.
- Responder
- subscribe
- subscribe (method close should be sent to requester)
- update value (value should be sent in rid 0)
- subscribe again on same path with same sid
- update value (value shouldn't be sent twice)
- ubsubscribe (method close should be sent)
- update value (value shouldn't be sent)
- list
- list (existing data should be sent to requester)
- children node's $is $type $invokable $writable should be sent
- add config value ( update sent)
- change existing config value ( update sent)
- add attribute and change value (update sent)
- remove config and remove attribute ( update sent)
- change $is and remove $is (no update, and the change api or remove api should close with error)
- add child, remove child (update sent)
- invoke
- invoke action with parameter and result
- invoke action with no parameter and blank result
- invoke action and return error
- invoke action with column in the result
- do the above 4 test with delayed response, (return result after 2 seconds, nothing should be returned before that)
- invoke streaming action, send several rows in every 2 seconds.
- api on node that doesn't exist
- subscribe
- subscribe on a node that doesn't exist
- use invoke action to create that node
- test updating value, (update should be sent to requester)
- remove node with action (error should be sent to requester in the subscription stream)
- add node back with action
- test updating value
- list
- list on a node that doesn't exist
- use invoke action to create that node (update should be sent to requester)
- test updating config and children, (update should be sent)
- remove node with action ($disconnectedTs should be sent to requester in the list stream)
- add node back with action (update should be sent)
- test updating config and children, (update should be sent)
- invoke and other api
- error should be sent to requester
- subscribe
- subscribe