ipfs / ipfs/kubo

Run JS interface tests (js-kubo-rpc-client) on CI

Open
#8,450 3 comments 0 reactions 1 assignee Claimed by @lidel View on GitHub
kind/maintenance kind/test topic/rpc-api
Dominant language
Go
Stars
17.1k
Forks
3.2k
Avg merge
3d 18h
Merged PRs (30d)
11

Description

Right now, js-ipfs runs tests that ensure js-ipfs-http-client works against the last go-ipfs release.
This has a downside of being a late feedback loop – if go-ipfs breaks something in the HTTP client for JS, we learn about it too late.

We should run js-ipfs interface tests in go-ipfs CI to get early feedback and have time to fix any regressions.

## Implementation details

- See how tests run js-ipfs – the matrix in https://github.com/ipfs/js-ipfs/blob/b5488cb3ef5ab7ea24b8b2275ffa8cfa4b7b7ed1/.github/workflows/test.yml#L230-L269
- `test:interface:http-go` is what we want to run in go-ipfs repo (on every push, against binary built from go-ipfs HEAD)
- > It chains through to [this command](https://github.com/ipfs/js-ipfs/blob/b5488cb3ef5ab7ea24b8b2275ffa8cfa4b7b7ed1/packages/ipfs/package.json#L32) which uses [this file](https://github.com/ipfs/js-ipfs/blob/master/packages/ipfs/test/interface-http-go.js) to configure the tests (e.g. skip the things that go-ipfs doesn't implement)
- > It just needs a little project making with a dependency on interface-ipfs-core for the tests and an equivalent of [ipfs/test/utils/factory.js](https://github.com/ipfs/js-ipfs/blob/master/packages/ipfs/test/utils/factory.js) to configure the go-ipfs instance for running under node and [ipfs/.aegir.js](https://github.com/ipfs/js-ipfs/blob/master/packages/ipfs/.aegir.js) to configure it for running in the browser.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.