@helia/interop 5.0.0-8a5bc6f → 5.0.0-9b1ddf8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/verified-fetch-json.spec.js +1 -2
- package/dist/src/verified-fetch-json.spec.js.map +1 -1
- package/dist/src/verified-fetch-unixfs-dir.spec.js +20 -5
- package/dist/src/verified-fetch-unixfs-dir.spec.js.map +1 -1
- package/dist/src/verified-fetch-websites.spec.js +2 -4
- package/dist/src/verified-fetch-websites.spec.js.map +1 -1
- package/package.json +28 -27
- package/src/verified-fetch-json.spec.ts +1 -2
- package/src/verified-fetch-unixfs-dir.spec.ts +25 -6
- package/src/verified-fetch-websites.spec.ts +2 -4
|
@@ -18,8 +18,7 @@ describe('@helia/verified-fetch - json', () => {
|
|
|
18
18
|
await loadFixtureDataCar(controller, 'QmQJ8fxavY54CUsxMSx9aE9Rdcmvhx8awJK2jzJp4iAqCr-tokens.uniswap.org-2024-01-18.car');
|
|
19
19
|
verifiedFetch = await createVerifiedFetch({
|
|
20
20
|
gateways: [`http://${controller.api.gatewayHost}:${controller.api.gatewayPort}`],
|
|
21
|
-
|
|
22
|
-
routers: process.env.RUNNER_ENV === 'node' ? [`http://${controller.api.gatewayHost}:${controller.api.gatewayPort}`] : []
|
|
21
|
+
routers: [`http://${controller.api.gatewayHost}:${controller.api.gatewayPort}`]
|
|
23
22
|
});
|
|
24
23
|
});
|
|
25
24
|
after(async () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verified-fetch-json.spec.js","sourceRoot":"","sources":["../../src/verified-fetch-json.spec.ts"],"names":[],"mappings":"AAAA,sBAAsB;AACtB,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAC3D,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AACnC,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAA;AAGpE,QAAQ,CAAC,8BAA8B,EAAE,GAAG,EAAE;IAC5C,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;QACnC,IAAI,UAA4B,CAAA;QAChC,IAAI,aAA8D,CAAA;QAElE,MAAM,CAAC,KAAK,IAAI,EAAE;YAChB,UAAU,GAAG,MAAM,cAAc,EAAE,CAAA;YACnC,MAAM,UAAU,CAAC,KAAK,EAAE,CAAA;YACxB,qFAAqF;YACrF,uDAAuD;YACvD,yEAAyE;YACzE,yEAAyE;YACzE,MAAM,kBAAkB,CAAC,UAAU,EAAE,kFAAkF,CAAC,CAAA;YACxH,aAAa,GAAG,MAAM,mBAAmB,CAAC;gBACxC,QAAQ,EAAE,CAAC,UAAU,UAAU,CAAC,GAAG,CAAC,WAAW,IAAI,UAAU,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;gBAChF,
|
|
1
|
+
{"version":3,"file":"verified-fetch-json.spec.js","sourceRoot":"","sources":["../../src/verified-fetch-json.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/* eslint-env mocha */
|
|
2
2
|
import { createVerifiedFetch } from '@helia/verified-fetch';
|
|
3
3
|
import { expect } from 'aegir/chai';
|
|
4
|
+
import { filetypemime } from 'magic-bytes.js';
|
|
4
5
|
import { createKuboNode } from './fixtures/create-kubo.js';
|
|
5
6
|
import { loadFixtureDataCar } from './fixtures/load-fixture-data.js';
|
|
6
7
|
describe('@helia/verified-fetch - unixfs directory', () => {
|
|
@@ -11,8 +12,7 @@ describe('@helia/verified-fetch - unixfs directory', () => {
|
|
|
11
12
|
await controller.start();
|
|
12
13
|
verifiedFetch = await createVerifiedFetch({
|
|
13
14
|
gateways: [`http://${controller.api.gatewayHost}:${controller.api.gatewayPort}`],
|
|
14
|
-
|
|
15
|
-
routers: process.env.RUNNER_ENV === 'node' ? [`http://${controller.api.gatewayHost}:${controller.api.gatewayPort}`] : []
|
|
15
|
+
routers: [`http://${controller.api.gatewayHost}:${controller.api.gatewayPort}`]
|
|
16
16
|
});
|
|
17
17
|
});
|
|
18
18
|
after(async () => {
|
|
@@ -35,17 +35,33 @@ describe('@helia/verified-fetch - unixfs directory', () => {
|
|
|
35
35
|
expect(resp).to.be.ok();
|
|
36
36
|
const text = await resp.text();
|
|
37
37
|
expect(text).to.equal('Don\'t we all.');
|
|
38
|
-
expect(resp.headers.get('content-type')).to.equal('text/plain');
|
|
39
38
|
});
|
|
40
39
|
it('can return an image for unixfs pathed data', async () => {
|
|
41
40
|
const resp = await verifiedFetch('ipfs://QmbQDovX7wRe9ek7u6QXe9zgCXkTzoUSsTFJEkrYV1HrVR/1 - Barrel - Part 1.png');
|
|
42
41
|
expect(resp).to.be.ok();
|
|
43
|
-
expect(resp.headers.get('content-type')).to.equal('image/png');
|
|
44
42
|
const imgData = await resp.blob();
|
|
45
43
|
expect(imgData).to.be.ok();
|
|
46
44
|
expect(imgData.size).to.equal(24848);
|
|
47
45
|
});
|
|
48
46
|
});
|
|
47
|
+
describe('content type parser', () => {
|
|
48
|
+
before(async () => {
|
|
49
|
+
await verifiedFetch.stop();
|
|
50
|
+
verifiedFetch = await createVerifiedFetch({
|
|
51
|
+
gateways: [`http://${controller.api.gatewayHost}:${controller.api.gatewayPort}`],
|
|
52
|
+
routers: [`http://${controller.api.gatewayHost}:${controller.api.gatewayPort}`]
|
|
53
|
+
}, {
|
|
54
|
+
contentTypeParser: (bytes) => {
|
|
55
|
+
return filetypemime(bytes)?.[0];
|
|
56
|
+
}
|
|
57
|
+
});
|
|
58
|
+
});
|
|
59
|
+
it('can return an image content-type for unixfs pathed data', async () => {
|
|
60
|
+
const resp = await verifiedFetch('ipfs://QmbQDovX7wRe9ek7u6QXe9zgCXkTzoUSsTFJEkrYV1HrVR/1 - Barrel - Part 1.png');
|
|
61
|
+
// tediously this is actually a jpeg file with a .png extension
|
|
62
|
+
expect(resp.headers.get('content-type')).to.equal('image/jpeg');
|
|
63
|
+
});
|
|
64
|
+
});
|
|
49
65
|
// TODO: find a smaller car file so the test doesn't timeout locally or flake on CI
|
|
50
66
|
describe.skip('HAMT-sharded directory', () => {
|
|
51
67
|
before(async () => {
|
|
@@ -55,7 +71,6 @@ describe('@helia/verified-fetch - unixfs directory', () => {
|
|
|
55
71
|
it('loads path /ipfs/bafybeidbclfqleg2uojchspzd4bob56dqetqjsj27gy2cq3klkkgxtpn4i/685.txt', async () => {
|
|
56
72
|
const resp = await verifiedFetch('ipfs://bafybeidbclfqleg2uojchspzd4bob56dqetqjsj27gy2cq3klkkgxtpn4i/685.txt');
|
|
57
73
|
expect(resp).to.be.ok();
|
|
58
|
-
expect(resp.headers.get('content-type')).to.equal('text/plain');
|
|
59
74
|
const text = await resp.text();
|
|
60
75
|
// npx kubo@0.25.0 cat '/ipfs/bafybeidbclfqleg2uojchspzd4bob56dqetqjsj27gy2cq3klkkgxtpn4i/685.txt'
|
|
61
76
|
expect(text).to.equal(`Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc non imperdiet nunc. Proin ac quam ut nibh eleifend aliquet. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Sed ligula dolor, imperdiet sagittis arcu et, semper tincidunt urna. Donec et tempor augue, quis sollicitudin metus. Curabitur semper ullamcorper aliquet. Mauris hendrerit sodales lectus eget fermentum. Proin sollicitudin vestibulum commodo. Vivamus nec lectus eu augue aliquet dignissim nec condimentum justo. In hac habitasse platea dictumst. Mauris vel sem neque.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verified-fetch-unixfs-dir.spec.js","sourceRoot":"","sources":["../../src/verified-fetch-unixfs-dir.spec.ts"],"names":[],"mappings":"AAAA,sBAAsB;AACtB,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAC3D,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AACnC,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAA;
|
|
1
|
+
{"version":3,"file":"verified-fetch-unixfs-dir.spec.js","sourceRoot":"","sources":["../../src/verified-fetch-unixfs-dir.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,8 +14,7 @@ describe('@helia/verified-fetch - websites', () => {
|
|
|
14
14
|
await loadFixtureDataCar(controller, 'QmbxpRxwKXxnJQjnPqm1kzDJSJ8YgkLxH23mcZURwPHjGv-helia-identify-website.car');
|
|
15
15
|
verifiedFetch = await createVerifiedFetch({
|
|
16
16
|
gateways: [`http://${controller.api.gatewayHost}:${controller.api.gatewayPort}`],
|
|
17
|
-
|
|
18
|
-
routers: process.env.RUNNER_ENV === 'node' ? [`http://${controller.api.gatewayHost}:${controller.api.gatewayPort}`] : []
|
|
17
|
+
routers: [`http://${controller.api.gatewayHost}:${controller.api.gatewayPort}`]
|
|
19
18
|
});
|
|
20
19
|
});
|
|
21
20
|
after(async () => {
|
|
@@ -57,8 +56,7 @@ describe('@helia/verified-fetch - websites', () => {
|
|
|
57
56
|
await loadFixtureDataCar(controller, 'QmeiDMLtPUS3RT2xAcUwsNyZz169wPke2q7im9vZpVLSYw-fake-blog.libp2p.io.car');
|
|
58
57
|
verifiedFetch = await createVerifiedFetch({
|
|
59
58
|
gateways: [`http://${controller.api.gatewayHost}:${controller.api.gatewayPort}`],
|
|
60
|
-
|
|
61
|
-
routers: process.env.RUNNER_ENV === 'node' ? [`http://${controller.api.gatewayHost}:${controller.api.gatewayPort}`] : []
|
|
59
|
+
routers: [`http://${controller.api.gatewayHost}:${controller.api.gatewayPort}`]
|
|
62
60
|
});
|
|
63
61
|
});
|
|
64
62
|
after(async () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verified-fetch-websites.spec.js","sourceRoot":"","sources":["../../src/verified-fetch-websites.spec.ts"],"names":[],"mappings":"AAAA,sBAAsB;AACtB,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAC3D,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AACnC,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAA;AAGpE,QAAQ,CAAC,kCAAkC,EAAE,GAAG,EAAE;IAChD,QAAQ,CAAC,4BAA4B,EAAE,GAAG,EAAE;QAC1C,IAAI,UAA4B,CAAA;QAChC,IAAI,aAA8D,CAAA;QAElE,MAAM,CAAC,KAAK,IAAI,EAAE;YAChB,UAAU,GAAG,MAAM,cAAc,EAAE,CAAA;YACnC,MAAM,UAAU,CAAC,KAAK,EAAE,CAAA;YACxB,yDAAyD;YACzD,MAAM,kBAAkB,CAAC,UAAU,EAAE,2EAA2E,CAAC,CAAA;YACjH,aAAa,GAAG,MAAM,mBAAmB,CAAC;gBACxC,QAAQ,EAAE,CAAC,UAAU,UAAU,CAAC,GAAG,CAAC,WAAW,IAAI,UAAU,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;gBAChF,
|
|
1
|
+
{"version":3,"file":"verified-fetch-websites.spec.js","sourceRoot":"","sources":["../../src/verified-fetch-websites.spec.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@helia/interop",
|
|
3
|
-
"version": "5.0.0-
|
|
3
|
+
"version": "5.0.0-9b1ddf8",
|
|
4
4
|
"description": "Interop tests for Helia",
|
|
5
5
|
"license": "Apache-2.0 OR MIT",
|
|
6
6
|
"homepage": "https://github.com/ipfs/helia/tree/main/packages/interop#readme",
|
|
@@ -57,43 +57,44 @@
|
|
|
57
57
|
"test:electron-main": "aegir test -t electron-main"
|
|
58
58
|
},
|
|
59
59
|
"dependencies": {
|
|
60
|
-
"@chainsafe/libp2p-gossipsub": "^
|
|
61
|
-
"@helia/block-brokers": "2.0.1-
|
|
62
|
-
"@helia/car": "3.0.0-
|
|
63
|
-
"@helia/dag-cbor": "3.0.0-
|
|
64
|
-
"@helia/dag-json": "3.0.0-
|
|
65
|
-
"@helia/http": "1.0.1-
|
|
66
|
-
"@helia/interface": "4.0.0-
|
|
67
|
-
"@helia/ipns": "6.0.0-
|
|
68
|
-
"@helia/json": "3.0.0-
|
|
69
|
-
"@helia/mfs": "3.0.0-
|
|
70
|
-
"@helia/routers": "1.0.0-
|
|
71
|
-
"@helia/strings": "3.0.0-
|
|
72
|
-
"@helia/unixfs": "3.0.0-
|
|
73
|
-
"@helia/verified-fetch": "0.0.0-
|
|
74
|
-
"@ipld/car": "^5.2.
|
|
60
|
+
"@chainsafe/libp2p-gossipsub": "^12.0.0",
|
|
61
|
+
"@helia/block-brokers": "2.0.1-9b1ddf8",
|
|
62
|
+
"@helia/car": "3.0.0-9b1ddf8",
|
|
63
|
+
"@helia/dag-cbor": "3.0.0-9b1ddf8",
|
|
64
|
+
"@helia/dag-json": "3.0.0-9b1ddf8",
|
|
65
|
+
"@helia/http": "1.0.1-9b1ddf8",
|
|
66
|
+
"@helia/interface": "4.0.0-9b1ddf8",
|
|
67
|
+
"@helia/ipns": "6.0.0-9b1ddf8",
|
|
68
|
+
"@helia/json": "3.0.0-9b1ddf8",
|
|
69
|
+
"@helia/mfs": "3.0.0-9b1ddf8",
|
|
70
|
+
"@helia/routers": "1.0.0-9b1ddf8",
|
|
71
|
+
"@helia/strings": "3.0.0-9b1ddf8",
|
|
72
|
+
"@helia/unixfs": "3.0.0-9b1ddf8",
|
|
73
|
+
"@helia/verified-fetch": "0.0.0-9b1ddf8",
|
|
74
|
+
"@ipld/car": "^5.2.6",
|
|
75
75
|
"@ipld/dag-cbor": "^9.1.0",
|
|
76
76
|
"@libp2p/interface": "^1.1.2",
|
|
77
|
-
"@libp2p/kad-dht": "^12.0.
|
|
77
|
+
"@libp2p/kad-dht": "^12.0.5",
|
|
78
78
|
"@libp2p/keychain": "^4.0.7",
|
|
79
79
|
"@libp2p/peer-id": "^4.0.5",
|
|
80
|
-
"@libp2p/peer-id-factory": "^4.0.
|
|
81
|
-
"@libp2p/websockets": "^8.0.
|
|
82
|
-
"@multiformats/sha3": "^3.0.
|
|
83
|
-
"aegir": "^42.
|
|
84
|
-
"helia": "4.0.1-
|
|
80
|
+
"@libp2p/peer-id-factory": "^4.0.5",
|
|
81
|
+
"@libp2p/websockets": "^8.0.13",
|
|
82
|
+
"@multiformats/sha3": "^3.0.2",
|
|
83
|
+
"aegir": "^42.2.2",
|
|
84
|
+
"helia": "4.0.1-9b1ddf8",
|
|
85
85
|
"ipfs-core-types": "^0.14.1",
|
|
86
|
-
"ipfs-unixfs-importer": "^15.2.
|
|
86
|
+
"ipfs-unixfs-importer": "^15.2.4",
|
|
87
87
|
"ipfsd-ctl": "^13.0.0",
|
|
88
88
|
"it-all": "^3.0.4",
|
|
89
89
|
"it-drain": "^3.0.5",
|
|
90
90
|
"it-last": "^3.0.4",
|
|
91
91
|
"it-map": "^3.0.5",
|
|
92
|
-
"it-to-buffer": "^4.0.
|
|
92
|
+
"it-to-buffer": "^4.0.5",
|
|
93
93
|
"kubo": "^0.26.0",
|
|
94
|
-
"kubo-rpc-client": "^3.0.
|
|
95
|
-
"libp2p": "^1.2.
|
|
96
|
-
"
|
|
94
|
+
"kubo-rpc-client": "^3.0.2",
|
|
95
|
+
"libp2p": "^1.2.1",
|
|
96
|
+
"magic-bytes.js": "^1.8.0",
|
|
97
|
+
"multiformats": "^13.0.1",
|
|
97
98
|
"p-defer": "^4.0.0",
|
|
98
99
|
"uint8arrays": "^5.0.1",
|
|
99
100
|
"wherearewe": "^2.0.1"
|
|
@@ -21,8 +21,7 @@ describe('@helia/verified-fetch - json', () => {
|
|
|
21
21
|
await loadFixtureDataCar(controller, 'QmQJ8fxavY54CUsxMSx9aE9Rdcmvhx8awJK2jzJp4iAqCr-tokens.uniswap.org-2024-01-18.car')
|
|
22
22
|
verifiedFetch = await createVerifiedFetch({
|
|
23
23
|
gateways: [`http://${controller.api.gatewayHost}:${controller.api.gatewayPort}`],
|
|
24
|
-
|
|
25
|
-
routers: process.env.RUNNER_ENV === 'node' ? [`http://${controller.api.gatewayHost}:${controller.api.gatewayPort}`] : []
|
|
24
|
+
routers: [`http://${controller.api.gatewayHost}:${controller.api.gatewayPort}`]
|
|
26
25
|
})
|
|
27
26
|
})
|
|
28
27
|
|
|
@@ -1,21 +1,23 @@
|
|
|
1
1
|
/* eslint-env mocha */
|
|
2
2
|
import { createVerifiedFetch } from '@helia/verified-fetch'
|
|
3
3
|
import { expect } from 'aegir/chai'
|
|
4
|
+
import { filetypemime } from 'magic-bytes.js'
|
|
4
5
|
import { createKuboNode } from './fixtures/create-kubo.js'
|
|
5
6
|
import { loadFixtureDataCar } from './fixtures/load-fixture-data.js'
|
|
7
|
+
import type { VerifiedFetch } from '@helia/verified-fetch'
|
|
6
8
|
import type { Controller } from 'ipfsd-ctl'
|
|
7
9
|
|
|
8
10
|
describe('@helia/verified-fetch - unixfs directory', () => {
|
|
9
11
|
let controller: Controller
|
|
10
|
-
let verifiedFetch:
|
|
12
|
+
let verifiedFetch: VerifiedFetch
|
|
11
13
|
|
|
12
14
|
before(async () => {
|
|
13
15
|
controller = await createKuboNode()
|
|
14
16
|
await controller.start()
|
|
17
|
+
|
|
15
18
|
verifiedFetch = await createVerifiedFetch({
|
|
16
19
|
gateways: [`http://${controller.api.gatewayHost}:${controller.api.gatewayPort}`],
|
|
17
|
-
|
|
18
|
-
routers: process.env.RUNNER_ENV === 'node' ? [`http://${controller.api.gatewayHost}:${controller.api.gatewayPort}`] : []
|
|
20
|
+
routers: [`http://${controller.api.gatewayHost}:${controller.api.gatewayPort}`]
|
|
19
21
|
})
|
|
20
22
|
})
|
|
21
23
|
|
|
@@ -42,19 +44,37 @@ describe('@helia/verified-fetch - unixfs directory', () => {
|
|
|
42
44
|
expect(resp).to.be.ok()
|
|
43
45
|
const text = await resp.text()
|
|
44
46
|
expect(text).to.equal('Don\'t we all.')
|
|
45
|
-
expect(resp.headers.get('content-type')).to.equal('text/plain')
|
|
46
47
|
})
|
|
47
48
|
|
|
48
49
|
it('can return an image for unixfs pathed data', async () => {
|
|
49
50
|
const resp = await verifiedFetch('ipfs://QmbQDovX7wRe9ek7u6QXe9zgCXkTzoUSsTFJEkrYV1HrVR/1 - Barrel - Part 1.png')
|
|
50
51
|
expect(resp).to.be.ok()
|
|
51
|
-
expect(resp.headers.get('content-type')).to.equal('image/png')
|
|
52
52
|
const imgData = await resp.blob()
|
|
53
53
|
expect(imgData).to.be.ok()
|
|
54
54
|
expect(imgData.size).to.equal(24848)
|
|
55
55
|
})
|
|
56
56
|
})
|
|
57
57
|
|
|
58
|
+
describe('content type parser', () => {
|
|
59
|
+
before(async () => {
|
|
60
|
+
await verifiedFetch.stop()
|
|
61
|
+
verifiedFetch = await createVerifiedFetch({
|
|
62
|
+
gateways: [`http://${controller.api.gatewayHost}:${controller.api.gatewayPort}`],
|
|
63
|
+
routers: [`http://${controller.api.gatewayHost}:${controller.api.gatewayPort}`]
|
|
64
|
+
}, {
|
|
65
|
+
contentTypeParser: (bytes) => {
|
|
66
|
+
return filetypemime(bytes)?.[0]
|
|
67
|
+
}
|
|
68
|
+
})
|
|
69
|
+
})
|
|
70
|
+
|
|
71
|
+
it('can return an image content-type for unixfs pathed data', async () => {
|
|
72
|
+
const resp = await verifiedFetch('ipfs://QmbQDovX7wRe9ek7u6QXe9zgCXkTzoUSsTFJEkrYV1HrVR/1 - Barrel - Part 1.png')
|
|
73
|
+
// tediously this is actually a jpeg file with a .png extension
|
|
74
|
+
expect(resp.headers.get('content-type')).to.equal('image/jpeg')
|
|
75
|
+
})
|
|
76
|
+
})
|
|
77
|
+
|
|
58
78
|
// TODO: find a smaller car file so the test doesn't timeout locally or flake on CI
|
|
59
79
|
describe.skip('HAMT-sharded directory', () => {
|
|
60
80
|
before(async () => {
|
|
@@ -65,7 +85,6 @@ describe('@helia/verified-fetch - unixfs directory', () => {
|
|
|
65
85
|
it('loads path /ipfs/bafybeidbclfqleg2uojchspzd4bob56dqetqjsj27gy2cq3klkkgxtpn4i/685.txt', async () => {
|
|
66
86
|
const resp = await verifiedFetch('ipfs://bafybeidbclfqleg2uojchspzd4bob56dqetqjsj27gy2cq3klkkgxtpn4i/685.txt')
|
|
67
87
|
expect(resp).to.be.ok()
|
|
68
|
-
expect(resp.headers.get('content-type')).to.equal('text/plain')
|
|
69
88
|
const text = await resp.text()
|
|
70
89
|
// npx kubo@0.25.0 cat '/ipfs/bafybeidbclfqleg2uojchspzd4bob56dqetqjsj27gy2cq3klkkgxtpn4i/685.txt'
|
|
71
90
|
expect(text).to.equal(`Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc non imperdiet nunc. Proin ac quam ut nibh eleifend aliquet. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Sed ligula dolor, imperdiet sagittis arcu et, semper tincidunt urna. Donec et tempor augue, quis sollicitudin metus. Curabitur semper ullamcorper aliquet. Mauris hendrerit sodales lectus eget fermentum. Proin sollicitudin vestibulum commodo. Vivamus nec lectus eu augue aliquet dignissim nec condimentum justo. In hac habitasse platea dictumst. Mauris vel sem neque.
|
|
@@ -17,8 +17,7 @@ describe('@helia/verified-fetch - websites', () => {
|
|
|
17
17
|
await loadFixtureDataCar(controller, 'QmbxpRxwKXxnJQjnPqm1kzDJSJ8YgkLxH23mcZURwPHjGv-helia-identify-website.car')
|
|
18
18
|
verifiedFetch = await createVerifiedFetch({
|
|
19
19
|
gateways: [`http://${controller.api.gatewayHost}:${controller.api.gatewayPort}`],
|
|
20
|
-
|
|
21
|
-
routers: process.env.RUNNER_ENV === 'node' ? [`http://${controller.api.gatewayHost}:${controller.api.gatewayPort}`] : []
|
|
20
|
+
routers: [`http://${controller.api.gatewayHost}:${controller.api.gatewayPort}`]
|
|
22
21
|
})
|
|
23
22
|
})
|
|
24
23
|
|
|
@@ -65,8 +64,7 @@ describe('@helia/verified-fetch - websites', () => {
|
|
|
65
64
|
await loadFixtureDataCar(controller, 'QmeiDMLtPUS3RT2xAcUwsNyZz169wPke2q7im9vZpVLSYw-fake-blog.libp2p.io.car')
|
|
66
65
|
verifiedFetch = await createVerifiedFetch({
|
|
67
66
|
gateways: [`http://${controller.api.gatewayHost}:${controller.api.gatewayPort}`],
|
|
68
|
-
|
|
69
|
-
routers: process.env.RUNNER_ENV === 'node' ? [`http://${controller.api.gatewayHost}:${controller.api.gatewayPort}`] : []
|
|
67
|
+
routers: [`http://${controller.api.gatewayHost}:${controller.api.gatewayPort}`]
|
|
70
68
|
})
|
|
71
69
|
})
|
|
72
70
|
|