2.0 KiB
deltachat-jsonrpc
Build Requirements
- Linux or Mac, scrips make use of features like
>pipes and&&(maybe the newer versions of powershell support them, but I didn't try that.) - rust (installed via rustup)
Start the webserver
The webserver is an example usage. Goal of it is to be usable both as example and as base for deltachat-kaiOS.
RUST_LOG=info cargo run --features webserver
Generate Typescript Bindings
cd typescript
npm i
npm run build
Run the development example
Mac
alias firefox=/Applications/Firefox.app/Contents/MacOS/firefox
npm run example:build && firefox --devtools $(pwd)/example/browser-example.html
Linux:
npm run example:run
Compiling server for kaiOS or android:
cross build --features=webserver --target armv7-linux-androideabi --release
Run the tests
Rust tests
cargo test --features=webserver
Typescript
cd typescript
npm run test
For the online tests to run you need a test account token for a mailadm instance, you can use docker to spin up a local instance: https://github.com/deltachat/docker-mailadm
set the env var
DCC_NEW_TMP_EMAILto your mailadm token: example:DCC_NEW_TMP_EMAIL=https://testrun.org/new_email?t=1h_195dksa6544
If your test fail with server shutdown at the start, then you might have a process from a last run still running probably and you need to kill that process manually to continue.
Test Coverage
You can test coverage with npm run coverage, but you need to have DCC_NEW_TMP_EMAIL set, otherwise the result will be useless because some functions can only be tested with the online tests.
If you are offline and want to see the coverage results anyway (even though they are NOT correct), you can bypass the error with
COVERAGE_OFFLINE=1 npm run coverage
Open coverage/index.html for a detailed report.
bindings.ts is probably the most interesting file for coverage, because it describes the api functions.