|
1 | 1 | /* global it, expect, jest */
|
2 | 2 | const tryApi = require('./index.js')
|
3 | 3 | const { URL } = require('url')
|
| 4 | +const IpfsApi = require('ipfs-http-client') |
4 | 5 |
|
5 | 6 | it('Should use the apiAddress', async (done) => {
|
6 | 7 | const opts = {
|
7 | 8 | apiAddress: '/ip4/1.1.1.1/tcp/1111',
|
8 | 9 | defaultApiAddress: '/ip4/127.0.0.1/tcp/5001',
|
9 | 10 | location: new URL('http://localhost:5001'),
|
10 |
| - IpfsApi: jest.fn(), |
| 11 | + IpfsApi: IpfsApi, |
11 | 12 | ipfsConnectionTest: jest.fn().mockResolvedValueOnce(true)
|
12 | 13 | }
|
13 | 14 | const res = await tryApi(opts)
|
14 | 15 | expect(res.apiAddress).toEqual(opts.apiAddress)
|
15 | 16 | expect(res.provider).toEqual('js-ipfs-api')
|
16 | 17 | expect(opts.ipfsConnectionTest.mock.calls.length).toBe(1)
|
17 |
| - expect(opts.IpfsApi.mock.calls.length).toBe(1) |
| 18 | + const config = res.ipfs.util.getEndpointConfig() |
| 19 | + expect(config.host).toEqual('1.1.1.1') |
| 20 | + expect(config.port).toEqual('1111') |
| 21 | + expect(config.protocol).toEqual('http') |
18 | 22 | done()
|
19 | 23 | })
|
20 | 24 |
|
21 | 25 | it('Should use the location where hostname not localhost', async (done) => {
|
22 | 26 | const opts = {
|
23 | 27 | defaultApiAddress: '/ip4/127.0.0.1/tcp/5001',
|
24 | 28 | location: new URL('http://dev.local:5001'),
|
25 |
| - IpfsApi: jest.fn(), |
| 29 | + IpfsApi: IpfsApi, |
26 | 30 | ipfsConnectionTest: jest.fn().mockResolvedValueOnce(true)
|
27 | 31 | }
|
28 | 32 | const res = await tryApi(opts)
|
29 |
| - expect(res.apiAddress).toEqual('/dnsaddr/dev.local/tcp/5001/http') |
| 33 | + expect(res.apiAddress).toEqual('/dns4/dev.local/tcp/5001/http') |
30 | 34 | expect(res.provider).toEqual('js-ipfs-api')
|
31 | 35 | expect(opts.ipfsConnectionTest.mock.calls.length).toBe(1)
|
32 |
| - expect(opts.IpfsApi.mock.calls.length).toBe(1) |
| 36 | + const config = res.ipfs.util.getEndpointConfig() |
| 37 | + expect(config.host).toEqual('dev.local') |
| 38 | + expect(config.port).toEqual('5001') |
| 39 | + expect(config.protocol).toEqual('http') |
33 | 40 | done()
|
34 | 41 | })
|
35 | 42 |
|
36 | 43 | it('Should use the location where port not 5001', async (done) => {
|
37 | 44 | const opts = {
|
38 | 45 | defaultApiAddress: '/ip4/127.0.0.1/tcp/5001',
|
39 |
| - location: new URL('http://localhost:9999'), |
40 |
| - IpfsApi: jest.fn(), |
| 46 | + location: new URL('https://webui.ipfs.io'), |
| 47 | + IpfsApi: IpfsApi, |
41 | 48 | ipfsConnectionTest: jest.fn().mockResolvedValueOnce(true)
|
42 | 49 | }
|
43 | 50 | const res = await tryApi(opts)
|
44 |
| - expect(res.apiAddress).toEqual('/dnsaddr/localhost/tcp/9999/http') |
| 51 | + expect(res.apiAddress).toEqual('/dns4/webui.ipfs.io/tcp/443/https') |
45 | 52 | expect(res.provider).toEqual('js-ipfs-api')
|
46 | 53 | expect(opts.ipfsConnectionTest.mock.calls.length).toBe(1)
|
47 |
| - expect(opts.IpfsApi.mock.calls.length).toBe(1) |
| 54 | + const config = res.ipfs.util.getEndpointConfig() |
| 55 | + expect(config.host).toEqual('webui.ipfs.io') |
| 56 | + expect(config.port).toEqual('443') |
| 57 | + expect(config.protocol).toEqual('https') |
48 | 58 | done()
|
49 | 59 | })
|
50 | 60 |
|
51 | 61 | it('Should use the defaultApiAddress if location fails', async (done) => {
|
52 | 62 | const opts = {
|
53 | 63 | defaultApiAddress: '/ip4/127.0.0.1/tcp/5001',
|
54 | 64 | location: new URL('http://astro.cat:5001'),
|
55 |
| - IpfsApi: jest.fn(), |
| 65 | + IpfsApi: IpfsApi, |
56 | 66 | // location call fails, default ok
|
57 | 67 | ipfsConnectionTest: jest.fn()
|
58 | 68 | .mockRejectedValueOnce(new Error('nope'))
|
59 | 69 | .mockResolvedValueOnce(true)
|
60 | 70 | }
|
61 | 71 | const res = await tryApi(opts)
|
62 |
| - console.log('res', res) |
63 | 72 | expect(res.apiAddress).toEqual(opts.defaultApiAddress)
|
64 | 73 | expect(res.provider).toEqual('js-ipfs-api')
|
65 | 74 | expect(opts.ipfsConnectionTest.mock.calls.length).toBe(2)
|
66 |
| - expect(opts.IpfsApi.mock.calls.length).toBe(2) |
| 75 | + const config = res.ipfs.util.getEndpointConfig() |
| 76 | + expect(config.host).toEqual('127.0.0.1') |
| 77 | + expect(config.port).toEqual('5001') |
| 78 | + expect(config.protocol).toEqual('http') |
67 | 79 | done()
|
68 | 80 | })
|
0 commit comments