mirror of
https://github.com/skydiver/ewelink-api.git
synced 2025-12-24 14:31:53 +01:00
* 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
26 lines
1.1 KiB
Markdown
26 lines
1.1 KiB
Markdown
# 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. |