Files
ewelink-api/docs/testing.md
Martin M c11b3a8ab7 Release v3.0.0 (#85)
* updated dependencies

* code linting

* added new app id & app secret

* cleanup requests payloads

* remove unused function

* update test cases

* enabled firmware tests

* refactor getDevice to use right api endpoint

* error messages improvements

* error messages improvements

* error messages improvements

* error messages improvements

* error messages improvements

* payload cleanup

* refactor setDevicePowerState to use right api endpoint

* update test exepectation

* removed deprecated class

* updated tests to reflect new error codes

* error messages improvements

* refactoring project structure: devices methods

refactoring project sturcture

* refactoring project structure: firmware methods

* refactoring project structure: temperature/humidity

* refactoring project structure: credentials methods

* refactoring project structure: power usage methods

* refactoring project structure: power state methods

* refactoring project structure: websocket methods

* removed deprecated login method from docs

* refactoring project structure: power usage methods

* refactoring project structure: zeroconf classes

* refactoring project structure: websocket classes

* refactoring project structure: zeroconf classes

* refactor and cleanup

* refactoring project structure: firmware methods

* moved parsers to own directory

* update tests with methods renames

* export missing temperature/humidity methods

* removed unused package

* refactor and cleanup

* fix test expectation

* refactoring project structure: moved data files

* refactoring project structure: moved data files

* refactoring project structure: moved helpers files

* refactoring project structure: moved helpers files

* refactoring project structure: moved payload files

* refactor and cleanup

* refactor getDevicePowerState

* setDevicePowerState returns channel

* convert error 400 to 404 for clarity

* updated test cases

* remove console.log

* cache path for zeroconf cache files

* installed nock

* using nock to simulate server requests during testing

* moved credentials file to config folder

* update request url when using nock

* refactor nock helper file

* move cooldown delay to setupTests file

* updating testing instructions

* restored delete code block

* fix wrong error code

* accept phone number to login to ewelink

* added test cases for initialize main class

* improvements on class initialization parameters

* allow login using phone number

* rename test file

* updated test case

* fixed regression bug

* Release v3.0.0 - use node-fetch (#87)

* replaced deprecated request library with node-fetch

* refactor: moved makeRequest to own mixin file

* refactor to use node-fetch

* fixes

* update config

* created helper method

* constant rename

* ignore files from final package

* version bump
2020-05-23 03:07:52 -03:00

1.1 KiB

Testing

Run test suite

Copy test/_setup/config/credentials.example.js to test/_setup/config/credentials.js and update parameters with yours.

In a terminal, npm run test or npm run coverage.

Tests needs to be performed serially to prevent flooding eWeLink servers, so if run jest manually, add --runInBand parameter.

All devices needs to be connected before running test suite.

Using nock

Running tests can take some time because there is many requests to eWeLink servers.

To speedup this process, you need to enable nock "record & play" feature by opening test/_setup/setupTests.js and change nockAction to record or play.

The first time you need to record all your requests then you can keep testing by "playing" recorded data.

Recorded data will be stored on test/_setup/tapes and you can delete folder content anytime.

Set nockAction to false to disable all nock functionality.

ZeroConf cache

While testing ZeroConf functionalty, two temporary files will be created: test/_setup/cache/arp-table.json and test/_setup/cache devices-cache.json. These files can be safely deleted once tests finished.