mirror of
https://github.com/chatmail/core.git
synced 2026-04-20 06:56:29 +03:00
76 lines
2.0 KiB
Markdown
76 lines
2.0 KiB
Markdown
# 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.
|
|
|
|
```sh
|
|
RUST_LOG=info cargo run --features webserver
|
|
```
|
|
|
|
## Generate Typescript Bindings
|
|
|
|
```sh
|
|
cd typescript
|
|
npm i
|
|
npm run build
|
|
```
|
|
|
|
## Run the development example
|
|
|
|
Mac
|
|
|
|
```sh
|
|
alias firefox=/Applications/Firefox.app/Contents/MacOS/firefox
|
|
npm run example:build && firefox --devtools $(pwd)/example/browser-example.html
|
|
```
|
|
|
|
Linux:
|
|
|
|
```sh
|
|
npm run example:run
|
|
```
|
|
|
|
## Compiling server for kaiOS or android:
|
|
|
|
```sh
|
|
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_EMAIL` to 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.
|