Skip to content

Spec Compliance Test App #64

@lidel

Description

@lidel

Summary

  • We need a conformance test suite that implementers and service providers can run against their service to confirm it works as expected.
  • ideally this would be CLI tool that takes <access-token> and the URL with API <endpoint> and runs a set of tests
    • tests should be designed to run idempotently and reduce friction (e.g. remove all pins as the first step and confirm there are no pins as the second, and remove everything as the last step)

I'm available to review / feed edge cases is anyone wants to pick this up.

Implementation details

Create JS client library

CLI Compliance Test suite

The compliance test would be a separate package (@ipfs-shipyard/pinning-service-complicance-checks) that uses the client library to run tests and exits with code 0 if there were no hard errors:

$ npx ipfs-pinning-service-complicance-checks https://service.example.com secret-token
Checking compliance of Pinning Service API at  https://service.example.com:
  (output)
Done!

Web interface (nice to have)

Would be nice to have a static website with two inputs for <access-token> and <endpoint> and "Test" button, but this is lower priority than CLI tool (we want something that can run automatically on CI to constantly validate services we list in ipfs-webui – ipfs/ipfs-webui#1854 (comment))

Test scenarios

Below are things we want to test, in order:

MVP list

Metadata

Metadata

Assignees

Labels

P1High: Likely tackled by core team if no one steps updif/easySomeone with a little familiarity can pick upeffort/daysEstimated to take multiple days, but less than a weekhelp wantedSeeking public contribution on this issuekind/supportThis is a question or a request for supportneed/community-inputNeeds input from the wider communitystatus/readyReady to be workedtopic/devexpDeveloper experience related thingstopic/docsImprovements or additions to documentation

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions