name: JSON-RPC API Test

on:
  push:
    branches: [master]
  pull_request:
    branches: [master]

env:
  CARGO_TERM_COLOR: always
  RUST_MIN_STACK: "8388608"

jobs:
  build_and_test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - name: Use Node.js 16.x
        uses: actions/setup-node@v3
        with:
          node-version: 16.x
      - name: Add Rust cache
        uses: Swatinem/rust-cache@v2
      - name: npm install
        run: |
          cd deltachat-jsonrpc/typescript
          npm install
      - name: Build TypeScript, run Rust tests, generate bindings
        run: |
          cd deltachat-jsonrpc/typescript
          npm run build
      - name: Run integration tests
        run: |
          cd deltachat-jsonrpc/typescript
          npm run test
        env:
          DCC_NEW_TMP_EMAIL: ${{ secrets.DCC_NEW_TMP_EMAIL }}
      - name: make sure websocket server version still builds
        run: |
          cd deltachat-jsonrpc
          cargo build --bin deltachat-jsonrpc-server --features webserver
      - name: Run linter
        run: |
          cd deltachat-jsonrpc/typescript
          npm run prettier:check
