Coder Social home page Coder Social logo

vc-api-test-suite's Introduction

VC API Test Suite

Implementation Interoperability Report

The VC API test suite repository contains tests for a standard API specification for constructing and verifying objects which conform to the Verifiable Credential Data Model specification, along with documentation, integration and compatability tests, and related assets for the test and integration process.

Structure

The vc-api test suite repository is structured like so:

  • packages which contains test suites and related utilities for integration testing, test suite results, and related assets.

Data Visualization

You may wish to programmatically download the latest test results as JSON.

Test Results for All Implementations

  • HTML Report: TODO

    curl -s https://w3c-ccg.github.io/vc-api-test-suite/test-suite/testResults.json | jq
    

Test Results for a Specific Implementation

Contributing

We encourage contributions meeting the Contribution Guidelines.
While we prefer the creation of issues and Pull Requests in the GitHub repository, discussions often occur on the public-credentials mailing list as well.

vc-api-test-suite's People

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

vc-api-test-suite's Issues

Cannot find Module

Hello, I am having trouble running npm run start-test-server
it fails with Error: Cannot find module '../services/getReportResults'
Can anyone help?
Thanks

Incorrect test description or implementation.

Hi,

While executing the suite on EWF VC-API implementation, I've notice that this test is confusing. While it is described as testing a response for non-exisiting options.verificationMethod property, actually it is defined:

const body = {
              credential: {
                ...credentials[0].data,
                issuer: value.id
              },
              options: {
                ...value.options[0],
                verificationMethod: 'foo',
              },
            };

Inconsistencies with specs

Hi,

While working on the EWF implementation I am facing inconsistencies of this and this tests. According to the W3CCG spec, there are no proofPurpose and verificationMethod options fields but this test suite assumes they are required.

Could you explain if this is on purpose or by mistake, please?

Remove test case Verifier 11

  1. The Verifier's Verify Credential HTTP API MUST adhere to the proof verification format.

This is essentially a dupe fo the first test... it amounts to "does verification succeed".

Remove test case Issuer 3

  1. The Issuer's Issue Credential HTTP API MUST support the issuance of credentials with at least 2 different DID methods as the "issuer" on a Verifiable Credential.

IMO we should remove this, its not helpful, and increases test complexity.

DIDs are a data model, and issuing does not imply anything but data model conformance.

"checks" is not a valid option in /verify endpoints

The test suite currently sends an option named "checks" to the Verifier endpoints, e.g. see here:

https://github.com/w3c-ccg/vc-http-api-test-suite/blob/main/packages/vc-http-api-test-server/__tests__/verifyCredential.spec.js#L19

However, this is not a valid option in the current API:

https://github.com/w3c-ccg/vc-http-api/blob/main/components/VerifyOptions.yml#L15

We discussed this on the 05 Oct 2021 VC API Work Item call and felt that variability of checks is bad, i.e. there should be a fixed set of checks that each conformant implementation of the API performs, and any additional business logic (e.g. evaluating if a VP matches a certain request) should happen outside of the API. There would therefore be no need for a registry of checks, or for options that the client could supply in the request for enabling/disabling certain checks.

Also see w3c-ccg/vc-api#62 and w3c-ccg/vc-api#59.

Based on this, we should create a PR to remove "checks" from the test suite.

Invalid id in Verifiable Presentation Case 2

VP case 2 (https://github.com/w3c-ccg/vc-http-api-test-suite/blob/61d498c/packages/vc-http-api-test-server/__fixtures__/verifiablePresentations/case-2.json) has the following id:
http://example.gov/credentials/3732#6c02882c-711f-4069-8e5d-13ce9cbedba8#61ab35c4-a652-4868-9460-6f6509d0f61e#c5aa4b4f-877a-41ba-b3 04-e03a572477ce
But a fragment part of a URI/IRI is not supposed to contain a "#" character:

https://www.rfc-editor.org/rfc/rfc3986#page-50:

   fragment      = *( pchar / "/" / "?" )

https://datatracker.ietf.org/doc/html/rfc3987#page-8:

   ifragment      = *( ipchar / "/" / "?" )

Remove test case Verifier 10

  1. The Verifier's Verify Credential HTTP API MUST verify a Verifiable Credential with at least 2 different DID methods set as the issuer property for a credential.

This is redundant, removing would simplify tests.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.