This repository has been archived by the owner on Feb 12, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 1.2k
/
interface.spec.js
130 lines (108 loc) · 2.93 KB
/
interface.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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
/* eslint-env mocha, browser */
'use strict'
const tests = require('interface-ipfs-core')
const { isNode } = require('ipfs-utils/src/env')
const merge = require('merge-options')
const { createFactory } = require('ipfsd-ctl')
const IPFS = require('../../src')
/** @typedef { import("ipfsd-ctl").ControllerOptions } ControllerOptions */
describe('interface-ipfs-core tests', function () {
/** @type ControllerOptions */
const commonOptions = {
test: true,
type: 'proc',
ipfsModule: {
path: require.resolve('../../src'),
ref: IPFS
},
ipfsHttpModule: {
path: require.resolve('ipfs-http-client'),
ref: require('ipfs-http-client')
},
ipfsOptions: {
pass: 'ipfs-is-awesome-software'
}
}
const overrides = {
js: {
ipfsBin: './src/cli/bin.js'
}
}
const commonFactory = createFactory(commonOptions, overrides)
tests.bitswap(commonFactory, {
skip: isNode ? null : [{
name: 'should get the wantlist by peer ID for a different node',
reason: 'FIXME: Does not find wantlist list in the browser'
}]
})
tests.block(commonFactory)
tests.bootstrap(commonFactory)
tests.config(commonFactory)
tests.dag(commonFactory)
tests.dht(commonFactory, {
skip: {
reason: 'TODO: unskip when DHT is enabled: https://github.com/ipfs/js-ipfs/pull/1994'
}
})
tests.filesRegular(commonFactory, {
skip: isNode ? null : [{
name: 'addFromStream',
reason: 'Not designed to run in the browser'
}, {
name: 'addFromFs',
reason: 'Not designed to run in the browser'
}]
})
tests.filesMFS(commonFactory)
tests.key(commonFactory)
tests.miscellaneous(commonFactory)
tests.name(createFactory(merge(commonOptions, {
ipfsOptions: {
offline: true
}
}), overrides))
tests.namePubsub(createFactory(merge(commonOptions, {
ipfsOptions: {
EXPERIMENTAL: {
ipnsPubsub: true
}
}
}), overrides))
tests.object(commonFactory, {
skip: [
{
name: 'should respect timeout option',
reason: 'js-ipfs doesn\'t support timeout yet'
}
]
})
tests.pin(commonFactory)
tests.ping(commonFactory)
tests.pubsub(createFactory(commonOptions, merge(overrides, {
go: {
args: ['--enable-pubsub-experiment']
}
})), {
skip: [
{
name: 'should receive messages from a different node',
reason: 'https://github.com/ipfs/js-ipfs/issues/2662'
},
{
name: 'should round trip a non-utf8 binary buffer',
reason: 'https://github.com/ipfs/js-ipfs/issues/2662'
},
{
name: 'should receive multiple messages',
reason: 'https://github.com/ipfs/js-ipfs/issues/2662'
},
{
name: 'should send/receive 100 messages',
reason: 'https://github.com/ipfs/js-ipfs/issues/2662'
}
]
})
tests.repo(commonFactory)
tests.stats(commonFactory)
tests.swarm(commonFactory)
})