OAI / OAI/OpenAPI-Specification

Proposal: Create new repo for openapi tests, similar to json schema test suite

Open
#3,486 3 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Housekeeping
Dominant language
Markdown
Stars
31.2k
Forks
9.2k
Avg merge
6h 37m
Merged PRs (30d)
27

Description

This issue is a proposal that a new repo be created that stores tests of openapi payloads, request, responses, and documents. These tests will help implementation verify that they have built features correctly.

There is existing prior work here that applies to json schema only in the json schema test suite: https://github.com/json-schema-org/JSON-Schema-Test-Suite

Need for this solution:

  • there are few tests here: https://github.com/OAI/OpenAPI-Specification/tree/main/tests/v3.1 and they do not provide full coverage for openapi features, they do not describe what is acceptable and unacceptable for openapi-only schema formats, they may not be well known in the community, they do not have coverage tests for different versions of the openapi spec
  • what is allowed for int32/int64/float/double is not explicitly defined in the spec or the format registry (for example is X.0 allowed in for int32?). Implementers need this info when building.
  • I attempted to add int64 tests into the json schema test suite and was told that that repo is not the right place for that test, because the format is openapi-specific and is not listed in the json schema spec.

Benefits:

  • tooling providers could have a verifiable way of proving that their implementation is conforming to the requirements
  • long term this should reduce the number of what is the correct way to implement x feature questions on this repo because you can point them to the existing test
  • including these tests in a separate repo will allow implmenters to include that repo as a subpackage and easily test against it. (I currently do this with the json schema test suite here)
  • General json schema 2020-12 tests should not be included here because they already exist in the json schema test suite. Refer users to that suite also. This reduces the maintenance workload.

Proposal Short Term:

I would be happy to add additional test for int32/float/double/int formats
@karenetheridge mentioned that she could contribute tests from https://github.com/karenetheridge/OpenAPI-Modern/tree/master/t

Open Questions:

  • How thorough should these tests be?
    • My proposal is to incrementally add coverage bit by bit starting with easiest tests, which may be component schema formats.
  • Are you okay using the json schema test suite format for the schema test files?
  • What openapi versions will have tests?
  • Do these tests mean that the tooling MUST/MAY/verb implement these features? (How does json schema handle this Julian Berman?)

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing the existing tests in OAI/OpenAPI-Specification/tests/v3.1 and the JSON Schema Test Suite, including the referenced int64 work. Define the repository structure, supported OpenAPI versions, test format, and conformance expectations before implementation. Done means the proposal’s open questions are resolved and a scoped plan exists for the new test repository.

Written by the indexing model from the issue text.

Assessment

Domain
api, testing
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.