@@ -25,6 +25,54 @@ describe('ls', () => runOnAndOff((thing) => {
25
25
)
26
26
} )
27
27
28
+ it ( 'supports a trailing slash' , async function ( ) {
29
+ this . timeout ( 20 * 1000 )
30
+ const out = await ipfs ( 'ls Qmaj2NmcyAXT8dFmZRRytE12wpcaHADzbChKToMEjBsj5Z/' )
31
+ expect ( out ) . to . eql (
32
+ 'QmamKEPmEH9RUsqRQsfNf5evZQDQPYL9KXg1ADeT7mkHkT - blocks/\n' +
33
+ 'QmPkWYfSLCEBLZu7BZt4kigGDMe3cpogMbeVf97gN2xJDN 3928 config\n' +
34
+ 'QmUqyZtPmsRy1U5Mo8kz2BAMmk1hfJ7yW1KAFTMB2odsFv - datastore/\n' +
35
+ 'QmUhUuiTKkkK8J6JZ9zmj8iNHPuNfGYcszgRumzhHBxEEU - init-docs/\n' +
36
+ 'QmR56UJmAaZLXLdTT1ALrE9vVqV8soUEekm9BMd4FnuYqV 2 version\n'
37
+ )
38
+ } )
39
+
40
+ it ( 'supports multiple trailing slashes' , async function ( ) {
41
+ this . timeout ( 20 * 1000 )
42
+ const out = await ipfs ( 'ls Qmaj2NmcyAXT8dFmZRRytE12wpcaHADzbChKToMEjBsj5Z///' )
43
+ expect ( out ) . to . eql (
44
+ 'QmamKEPmEH9RUsqRQsfNf5evZQDQPYL9KXg1ADeT7mkHkT - blocks/\n' +
45
+ 'QmPkWYfSLCEBLZu7BZt4kigGDMe3cpogMbeVf97gN2xJDN 3928 config\n' +
46
+ 'QmUqyZtPmsRy1U5Mo8kz2BAMmk1hfJ7yW1KAFTMB2odsFv - datastore/\n' +
47
+ 'QmUhUuiTKkkK8J6JZ9zmj8iNHPuNfGYcszgRumzhHBxEEU - init-docs/\n' +
48
+ 'QmR56UJmAaZLXLdTT1ALrE9vVqV8soUEekm9BMd4FnuYqV 2 version\n'
49
+ )
50
+ } )
51
+
52
+ it ( 'supports multiple intermediate slashes' , async function ( ) {
53
+ this . timeout ( 20 * 1000 )
54
+ const out = await ipfs ( 'ls Qmaj2NmcyAXT8dFmZRRytE12wpcaHADzbChKToMEjBsj5Z///init-docs' )
55
+ expect ( out ) . to . eql (
56
+ 'QmZTR5bcpQD7cFgTorqxZDYaew1Wqgfbd2ud9QqGPAkK2V 1677 about\n' +
57
+ 'QmYCvbfNbCwFR45HiNP45rwJgvatpiW38D961L5qAhUM5Y 189 contact\n' +
58
+ 'QmegvLXxpVKiZ4b57Xs1syfBVRd8CbucVHAp7KpLQdGieC - docs/\n' +
59
+ 'QmY5heUM5qgRubMDD1og9fhCPA6QdkMp3QCwd4s7gJsyE7 311 help\n' +
60
+ 'QmdncfsVm2h5Kqq9hPmU7oAVX2zTSVP3L869tgTbPYnsha 1717 quick-start\n' +
61
+ 'QmPZ9gcCEpqKTo6aq61g2nXGUhM4iCL3ewB6LDXZCtioEB 1091 readme\n' +
62
+ 'QmTumTjvcYCAvRRwQ8sDRxh8ezmrcr88YFU7iYNroGGTBZ 1016 security-notes\n' +
63
+ 'QmciSU8hfpAXKjvK5YLUSwApomGSWN5gFbP4EpDAEzu2Te - tour/\n'
64
+ )
65
+ } )
66
+
67
+ it ( 'supports recursive listing through intermediate directories' , async function ( ) {
68
+ this . timeout ( 20 * 1000 )
69
+ const out = await ipfs ( 'ls -r Qmaj2NmcyAXT8dFmZRRytE12wpcaHADzbChKToMEjBsj5Z/blocks/CIQLB' )
70
+ expect ( out ) . to . eql (
71
+ 'QmQ8ag7ysVyCMzJGFjxrUStwWtniQ69c7G9aezbmsKeNYD 10849 CIQLBK52T5EHVHZY5URTG5JS3JCUJDQM2DRB5RVF33DCUUOFJNGVDUI.data\n' +
72
+ 'QmaSjzSSRanYzRGPXQY6m5SWfSkkfcnzNkurJEQc4chPJx 10807 CIQLBS5HG4PRCRQ7O4EBXFD5QN6MTI5YBYMCVQJDXPKCOVR6RMLHZFQ.data\n'
73
+ )
74
+ } )
75
+
28
76
it ( 'prints nothing for non-existant hashes' , async function ( ) {
29
77
if ( thing . on ) {
30
78
// If the daemon is on, ls should search until it hits a timeout
0 commit comments