/
ipns.spec.js
71 lines (60 loc) 路 1.99 KB
/
ipns.spec.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
import test from 'ava'
import { createErrorHtmlContent } from '../src/errors.js'
import { getMiniflare } from './utils.js'
test.beforeEach((t) => {
// Create a new Miniflare environment for each test
t.context = {
mf: getMiniflare(),
}
})
test('Fails when invalid name with IPNS canonical resolution', async (t) => {
const { mf } = t.context
const response = await mf.dispatchFetch(
'https://localhost:8787/ipns/en.super-long-name-on-ipfs-exceeding-limit-from-ietf-rfc1034.org'
)
t.is(response.status, 400)
const textResponse = await response.text()
t.is(
textResponse,
createErrorHtmlContent(
400,
'invalid FQDN: en.super-long-name-on-ipfs-exceeding-limit-from-ietf-rfc1034.org: longer than max length: 63'
)
)
})
test('should redirect to subdomain with IPNS canonical resolution', async (t) => {
const { mf } = t.context
const response = await mf.dispatchFetch(
'https://localhost:8787/ipns/en.wikipedia-on-ipfs.org'
)
await response.waitUntil()
t.is(response.status, 302)
t.is(
response.headers.get('location'),
'https://en-wikipedia--on--ipfs-org.ipns.localhost:8787/'
)
})
test('should redirect to subdomain with IPNS canonical resolution keeping path and query params', async (t) => {
const { mf } = t.context
const response = await mf.dispatchFetch(
'https://localhost:8787/ipns/en.wikipedia-on-ipfs.org/Energy?key=value'
)
await response.waitUntil()
t.is(response.status, 302)
t.is(
response.headers.get('location'),
'https://en-wikipedia--on--ipfs-org.ipns.localhost:8787/Energy?key=value'
)
})
test('should redirect to dweb.link with IPNS subdomain resolution', async (t) => {
const { mf } = t.context
const response = await mf.dispatchFetch(
'https://en-wikipedia--on--ipfs-org.ipns.localhost:8787/Energy?key=value'
)
await response.waitUntil()
t.is(response.status, 302)
t.is(
response.headers.get('location'),
'https://en-wikipedia--on--ipfs-org.ipns.dweb.link/Energy?key=value'
)
})