Skip to content

Commit 9a94216

Browse files
authored
Merge pull request #25 from ipfs/make-consistent-with-go
Make consistent with go
2 parents 1fc2634 + 7d7a282 commit 9a94216

File tree

2 files changed

+92
-88
lines changed

2 files changed

+92
-88
lines changed

src/index.js

+12-4
Original file line numberDiff line numberDiff line change
@@ -73,15 +73,23 @@ function Data (type, data) {
7373
}
7474
let fileSize = this.fileSize()
7575

76-
if (!fileSize) {
77-
fileSize = undefined
76+
let data = this.data
77+
78+
if (!this.data || !this.data.length) {
79+
data = undefined
80+
}
81+
82+
let blockSizes = this.blockSizes
83+
84+
if (!this.blockSizes || !this.blockSizes.length) {
85+
blockSizes = undefined
7886
}
7987

8088
return unixfsData.encode({
8189
Type: type,
82-
Data: this.data,
90+
Data: data,
8391
filesize: fileSize,
84-
blocksizes: this.blockSizes.length > 0 ? this.blockSizes : undefined,
92+
blocksizes: blockSizes,
8593
hashType: this.hashType,
8694
fanout: this.fanout
8795
})

test/unixfs-format.spec.js

+80-84
Original file line numberDiff line numberDiff line change
@@ -15,88 +15,81 @@ const symlink = loadFixture('test/fixtures/symlink.txt.unixfs')
1515
const Buffer = require('safe-buffer').Buffer
1616

1717
describe('unixfs-format', () => {
18-
it('raw', (done) => {
18+
it('raw', () => {
1919
const data = new UnixFS('raw', Buffer.from('bananas'))
20-
const marsheled = data.marshal()
21-
const unmarsheled = UnixFS.unmarshal(marsheled)
22-
expect(data.type).to.equal(unmarsheled.type)
23-
expect(data.data).to.deep.equal(unmarsheled.data)
24-
expect(data.blockSizes).to.deep.equal(unmarsheled.blockSizes)
25-
expect(data.fileSize()).to.deep.equal(unmarsheled.fileSize())
26-
done()
20+
const marshalled = data.marshal()
21+
const unmarshalled = UnixFS.unmarshal(marshalled)
22+
expect(data.type).to.equal(unmarshalled.type)
23+
expect(data.data).to.deep.equal(unmarshalled.data)
24+
expect(data.blockSizes).to.deep.equal(unmarshalled.blockSizes)
25+
expect(data.fileSize()).to.deep.equal(unmarshalled.fileSize())
2726
})
2827

29-
it('directory', (done) => {
28+
it('directory', () => {
3029
const data = new UnixFS('directory')
31-
const marsheled = data.marshal()
32-
const unmarsheled = UnixFS.unmarshal(marsheled)
33-
expect(data.type).to.equal(unmarsheled.type)
34-
expect(data.data).to.deep.equal(unmarsheled.data)
35-
expect(data.blockSizes).to.deep.equal(unmarsheled.blockSizes)
36-
expect(data.fileSize()).to.deep.equal(unmarsheled.fileSize())
37-
done()
30+
const marshalled = data.marshal()
31+
const unmarshalled = UnixFS.unmarshal(marshalled)
32+
expect(data.type).to.equal(unmarshalled.type)
33+
expect(data.data).to.deep.equal(unmarshalled.data)
34+
expect(data.blockSizes).to.deep.equal(unmarshalled.blockSizes)
35+
expect(data.fileSize()).to.deep.equal(unmarshalled.fileSize())
3836
})
3937

40-
it('hamt-sharded-directory', (done) => {
38+
it('hamt-sharded-directory', () => {
4139
const data = new UnixFS('hamt-sharded-directory')
42-
const marsheled = data.marshal()
43-
const unmarsheled = UnixFS.unmarshal(marsheled)
44-
expect(data.type).to.equal(unmarsheled.type)
45-
expect(data.data).to.deep.equal(unmarsheled.data)
46-
expect(data.blockSizes).to.deep.equal(unmarsheled.blockSizes)
47-
expect(data.fileSize()).to.deep.equal(unmarsheled.fileSize())
48-
done()
40+
const marshalled = data.marshal()
41+
const unmarshalled = UnixFS.unmarshal(marshalled)
42+
expect(data.type).to.equal(unmarshalled.type)
43+
expect(data.data).to.deep.equal(unmarshalled.data)
44+
expect(data.blockSizes).to.deep.equal(unmarshalled.blockSizes)
45+
expect(data.fileSize()).to.deep.equal(unmarshalled.fileSize())
4946
})
5047

51-
it('file', (done) => {
48+
it('file', () => {
5249
const data = new UnixFS('file', new Buffer('batata'))
53-
const marsheled = data.marshal()
54-
const unmarsheled = UnixFS.unmarshal(marsheled)
55-
expect(data.type).to.equal(unmarsheled.type)
56-
expect(data.data).to.deep.equal(unmarsheled.data)
57-
expect(data.blockSizes).to.deep.equal(unmarsheled.blockSizes)
58-
expect(data.fileSize()).to.deep.equal(unmarsheled.fileSize())
59-
done()
50+
const marshalled = data.marshal()
51+
const unmarshalled = UnixFS.unmarshal(marshalled)
52+
expect(data.type).to.equal(unmarshalled.type)
53+
expect(data.data).to.deep.equal(unmarshalled.data)
54+
expect(data.blockSizes).to.deep.equal(unmarshalled.blockSizes)
55+
expect(data.fileSize()).to.deep.equal(unmarshalled.fileSize())
6056
})
6157

62-
it('file add blocksize', (done) => {
58+
it('file add blocksize', () => {
6359
const data = new UnixFS('file')
6460
data.addBlockSize(256)
65-
const marsheled = data.marshal()
66-
const unmarsheled = UnixFS.unmarshal(marsheled)
67-
expect(data.type).to.equal(unmarsheled.type)
68-
expect(data.data).to.deep.equal(unmarsheled.data)
69-
expect(data.blockSizes).to.deep.equal(unmarsheled.blockSizes)
70-
expect(data.fileSize()).to.deep.equal(unmarsheled.fileSize())
71-
done()
61+
const marshalled = data.marshal()
62+
const unmarshalled = UnixFS.unmarshal(marshalled)
63+
expect(data.type).to.equal(unmarshalled.type)
64+
expect(data.data).to.deep.equal(unmarshalled.data)
65+
expect(data.blockSizes).to.deep.equal(unmarshalled.blockSizes)
66+
expect(data.fileSize()).to.deep.equal(unmarshalled.fileSize())
7267
})
7368

74-
it('file add and remove blocksize', (done) => {
69+
it('file add and remove blocksize', () => {
7570
const data = new UnixFS('file')
7671
data.addBlockSize(256)
77-
const marsheled = data.marshal()
78-
const unmarsheled = UnixFS.unmarshal(marsheled)
79-
expect(data.type).to.equal(unmarsheled.type)
80-
expect(data.data).to.deep.equal(unmarsheled.data)
81-
expect(data.blockSizes).to.deep.equal(unmarsheled.blockSizes)
82-
expect(data.fileSize()).to.deep.equal(unmarsheled.fileSize())
83-
unmarsheled.removeBlockSize(0)
84-
expect(data.blockSizes).to.not.deep.equal(unmarsheled.blockSizes)
85-
done()
72+
const marshalled = data.marshal()
73+
const unmarshalled = UnixFS.unmarshal(marshalled)
74+
expect(data.type).to.equal(unmarshalled.type)
75+
expect(data.data).to.deep.equal(unmarshalled.data)
76+
expect(data.blockSizes).to.deep.equal(unmarshalled.blockSizes)
77+
expect(data.fileSize()).to.deep.equal(unmarshalled.fileSize())
78+
unmarshalled.removeBlockSize(0)
79+
expect(data.blockSizes).to.not.deep.equal(unmarshalled.blockSizes)
8680
})
8781

8882
// figuring out what is this metadata for https://github.com/ipfs/js-ipfs-data-importing/issues/3#issuecomment-182336526
89-
it.skip('metadata', (done) => {})
83+
it.skip('metadata', () => {})
9084

91-
it('symlink', (done) => {
85+
it('symlink', () => {
9286
const data = new UnixFS('symlink')
93-
const marsheled = data.marshal()
94-
const unmarsheled = UnixFS.unmarshal(marsheled)
95-
expect(data.type).to.equal(unmarsheled.type)
96-
expect(data.data).to.deep.equal(unmarsheled.data)
97-
expect(data.blockSizes).to.deep.equal(unmarsheled.blockSizes)
98-
expect(data.fileSize()).to.deep.equal(unmarsheled.fileSize())
99-
done()
87+
const marshalled = data.marshal()
88+
const unmarshalled = UnixFS.unmarshal(marshalled)
89+
expect(data.type).to.equal(unmarshalled.type)
90+
expect(data.data).to.deep.equal(unmarshalled.data)
91+
expect(data.blockSizes).to.deep.equal(unmarshalled.blockSizes)
92+
expect(data.fileSize()).to.deep.equal(unmarshalled.fileSize())
10093
})
10194
it('wrong type', (done) => {
10295
let data
@@ -110,40 +103,43 @@ describe('unixfs-format', () => {
110103
})
111104

112105
describe('interop', () => {
113-
it('raw', (done) => {
114-
const unmarsheled = UnixFS.unmarshal(raw)
115-
expect(unmarsheled.data).to.eql(Buffer.from('Hello UnixFS\n'))
116-
expect(unmarsheled.type).to.equal('file')
117-
expect(unmarsheled.marshal()).to.deep.equal(raw)
118-
done()
106+
it('raw', () => {
107+
const unmarshalled = UnixFS.unmarshal(raw)
108+
expect(unmarshalled.data).to.eql(Buffer.from('Hello UnixFS\n'))
109+
expect(unmarshalled.type).to.equal('file')
110+
expect(unmarshalled.marshal()).to.deep.equal(raw)
119111
})
120112

121-
it('directory', (done) => {
122-
const unmarsheled = UnixFS.unmarshal(directory)
123-
expect(unmarsheled.data).to.deep.equal(undefined)
124-
expect(unmarsheled.type).to.equal('directory')
125-
expect(unmarsheled.marshal()).to.deep.equal(directory)
126-
done()
113+
it('directory', () => {
114+
const unmarshalled = UnixFS.unmarshal(directory)
115+
expect(unmarshalled.data).to.deep.equal(undefined)
116+
expect(unmarshalled.type).to.equal('directory')
117+
expect(unmarshalled.marshal()).to.deep.equal(directory)
127118
})
128119

129-
it('file', (done) => {
130-
const unmarsheled = UnixFS.unmarshal(file)
131-
expect(unmarsheled.data).to.deep.equal(Buffer.from('Hello UnixFS\n'))
132-
expect(unmarsheled.type).to.equal('file')
133-
expect(unmarsheled.marshal()).to.deep.equal(file)
134-
done()
120+
it('file', () => {
121+
const unmarshalled = UnixFS.unmarshal(file)
122+
expect(unmarshalled.data).to.deep.equal(Buffer.from('Hello UnixFS\n'))
123+
expect(unmarshalled.type).to.equal('file')
124+
expect(unmarshalled.marshal()).to.deep.equal(file)
135125
})
136126

137-
it.skip('metadata', (done) => {
127+
it.skip('metadata', () => {
138128
})
139129

140-
it('symlink', (done) => {
141-
const unmarsheled = UnixFS.unmarshal(symlink)
142-
expect(unmarsheled.data).to.deep.equal(Buffer.from('file.txt'))
143-
expect(unmarsheled.type).to.equal('symlink')
130+
it('symlink', () => {
131+
const unmarshalled = UnixFS.unmarshal(symlink)
132+
expect(unmarshalled.data).to.deep.equal(Buffer.from('file.txt'))
133+
expect(unmarshalled.type).to.equal('symlink')
144134
// TODO: waiting on https://github.com/ipfs/js-ipfs-data-importing/issues/3#issuecomment-182440079
145-
// expect(unmarsheled.marshal()).to.deep.equal(symlink)
146-
done()
135+
// expect(unmarshalled.marshal()).to.deep.equal(symlink)
147136
})
148137
})
138+
139+
it('empty', () => {
140+
const data = new UnixFS('file')
141+
const marshalled = data.marshal()
142+
143+
expect(marshalled).to.deep.equal(Buffer.from([0x08, 0x02, 0x18, 0x00]))
144+
})
149145
})

0 commit comments

Comments
 (0)