ipfs / helia-verified-fetch

A fetch-like API for obtaining verified & trustless IPFS CIDs on the web
https://npmjs.com/package/@helia/verified-fetch
Other
11 stars 1 forks source link

test: add gateway conformance tests #67

Closed SgtPooki closed 1 month ago

SgtPooki commented 2 months ago

Title

feat: add gateway conformance tests

Description

Currently in Draft because this is a work in progress while I get some initial conformance tests working

Related https://github.com/ipfs/helia-http-gateway/pull/67 Related https://github.com/ipfs-shipyard/service-worker-gateway/issues/181 Related https://github.com/ipfs-shipyard/service-worker-gateway/issues/224

Notes & open questions

Change checklist

SgtPooki commented 2 months ago

With the code from adae758 (#67), we are now ensuring no regressions, and have a path for iterating upon gateway conformance test fixes. See output below:

╰─ ✔ ❯ npm run test

> @helia/verified-fetch-gateway-conformance@1.20.0 test
> aegir test -t node

build

> @helia/verified-fetch-gateway-conformance@1.20.0 build
> aegir build

[13:56:46] tsc [started]
[13:56:47] tsc [completed]
[13:56:47] esbuild [started]
[13:56:47] esbuild [completed]
test node.js

  @helia/verified-fetch - gateway conformance
    smokeTests
      ✔ basic server path request works (46ms)
      ✔ proxy server path request works (41ms)
      ✔ basic server subdomain request works
      ✔ proxy server subdomain request works
    conformance testing
      ✔ has no more than 0 failing tests for TestMetadata (54ms)
      ✔ has no more than 51 failing tests for TestDagPbConversion (57ms)
      ✔ has no more than 44 failing tests for TestPlainCodec (53ms)
      ✔ has no more than 5 failing tests for TestPathing (55ms)
      ✔ has no more than 20 failing tests for TestDNSLinkGatewayUnixFSDirectoryListing (51ms)
      ✔ has no more than 10 failing tests for TestCors (50ms)
      ✔ has no more than 9 failing tests for TestGatewayJsonCbor (50ms)
      ✔ has no more than 2 failing tests for TestNativeDag (48ms)
      ✔ has no more than 25 failing tests for TestGatewayJSONCborAndIPNS (48ms)
      ✔ has no more than 8 failing tests for TestGatewayIPNSPath (49ms)
      ✔ has no more than 7 failing tests for TestRedirectCanonicalIPNS (53ms)
      ✔ has no more than 25 failing tests for TestGatewayBlock (49ms)
      ✔ has no more than 5 failing tests for TestTrustlessRawRanges (52ms)
      ✔ has no more than 29 failing tests for TestTrustlessRaw (53ms)
      ✔ has no more than 23 failing tests for TestGatewayIPNSRecord (53ms)
      ✔ has no more than 26 failing tests for TestTrustlessCarOrderAndDuplicates (50ms)
      ✔ has no more than 122 failing tests for TestTrustlessCarEntityBytes (53ms)
      ✔ has no more than 23 failing tests for TestTrustlessCarDagScopeAll (49ms)
      ✔ has no more than 56 failing tests for TestTrustlessCarDagScopeEntity (52ms)
      ✔ has no more than 34 failing tests for TestTrustlessCarDagScopeBlock (49ms)
      ✔ has no more than 45 failing tests for TestTrustlessCarPathing (50ms)
      ✔ has no more than 41 failing tests for TestSubdomainGatewayDNSLinkInlining (48ms)
      ✔ has no more than 95 failing tests for TestGatewaySubdomainAndIPNS (49ms)
      ✔ has no more than 279 failing tests for TestGatewaySubdomains (59ms)
      ✔ has no more than 39 failing tests for TestUnixFSDirectoryListingOnSubdomainGateway (51ms)
      ✔ has no more than 15 failing tests for TestRedirectsFileWithIfNoneMatchHeader (50ms)
      ✔ has no more than 17 failing tests for TestRedirectsFileSupportWithDNSLink (49ms)
      ✔ has no more than 252 failing tests for TestRedirectsFileSupport (53ms)
      ✔ has no more than 3 failing tests for TestPathGatewayMiscellaneous (52ms)
      ✔ has no more than 10 failing tests for TestGatewayUnixFSFileRanges (47ms)
      ✔ has no more than 9 failing tests for TestGatewaySymlink (49ms)
      ✔ has no more than 27 failing tests for TestGatewayCacheWithIPNS (48ms)
      ✔ has no more than 71 failing tests for TestGatewayCache (48ms)
      ✔ has no more than 50 failing tests for TestUnixFSDirectoryListing (55ms)
      ✔ has no more than 16 failing tests for TestTar (56ms)
      ✔ has expected total failures and successes (56ms)

  40 passing (2s)
SgtPooki commented 2 months ago

gateway conformance CI is running successfully & uploading artifacts: https://github.com/ipfs/helia-verified-fetch/actions/runs/8924837411?pr=67

TODO:

github-actions[bot] commented 1 month ago

:tada: This PR is included in version 1.0.0 :tada:

The release is available on npm package (@latest dist-tag)

Your semantic-release bot :package::rocket:

github-actions[bot] commented 1 month ago

:tada: This PR is included in version 1.4.2 :tada:

The release is available on npm package (@latest dist-tag)

Your semantic-release bot :package::rocket:

github-actions[bot] commented 1 month ago

:tada: This PR is included in version 1.24.0 :tada:

The release is available on npm package (@latest dist-tag)

Your semantic-release bot :package::rocket: