Skip to content

Commit 286c96a

Browse files
ljharbChALkeR
andcommitted
[Tests] add coverage
Co-authored-by: Jordan Harband <[email protected]> Co-authored-by: Nikita Skovoroda <[email protected]>
1 parent 7f8a881 commit 286c96a

File tree

3 files changed

+41
-1
lines changed

3 files changed

+41
-1
lines changed

.eslintrc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
"extends": "@ljharb",
55

66
"globals": {
7+
"Float64Array": "readonly",
78
"Uint8Array": "readonly",
89
"Uint16Array": "readonly",
910
},

package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,8 @@
3737
"for-each": "^0.3.5",
3838
"npmignore": "^0.3.1",
3939
"nyc": "^10.3.2",
40-
"tape": "^5.9.0"
40+
"tape": "^5.9.0",
41+
"typed-array-buffer": "^1.0.3"
4142
},
4243
"engines": {
4344
"node": ">= 0.4"

test/index.js

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33
var test = require('tape');
44
var availableTypedArrays = require('available-typed-arrays')();
55
var forEach = require('for-each');
6+
var typedArrayBuffer = require('typed-array-buffer');
7+
var SafeBuffer = require('safe-buffer').Buffer;
68

79
var toBuffer = require('../');
810
var fixtures = require('./fixtures.json');
@@ -67,5 +69,41 @@ test('handle all TA types', function (t) {
6769
);
6870
});
6971

72+
t.test('TA subset view on another one', { skip: typeof Float64Array === 'undefined' || typeof Uint8Array === 'undefined' }, function (st) {
73+
var arr = new Uint8Array(100);
74+
for (var i = 0; i < arr.length; i += 1) {
75+
arr[i] = i;
76+
}
77+
78+
var buffer = typedArrayBuffer(arr);
79+
var expectedHex = '000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f60616263';
80+
81+
forEach(availableTypedArrays, function (type) {
82+
var TA = global[type];
83+
var offset = 8;
84+
var len = 4;
85+
var arr2 = new TA(buffer, offset, len);
86+
st.ok(arr2.BYTES_PER_ELEMENT >= 1, 'BYTES_PER_ELEMENT: sanity check');
87+
88+
var expectedSlice = expectedHex.slice(offset * 2, (offset + (len * arr2.BYTES_PER_ELEMENT)) * 2);
89+
var expected = SafeBuffer.from(expectedSlice, 'hex');
90+
st.equal(expected.length, len * arr2.BYTES_PER_ELEMENT, 'expected length: sanity check');
91+
92+
var result = toBuffer(arr2);
93+
st.deepEqual(
94+
result,
95+
expected,
96+
'Uint8Array subset view on ' + type + ' should be converted to Buffer correctly'
97+
);
98+
st.equal(
99+
result.toString('hex'),
100+
expectedSlice,
101+
'Uint8Array subset view on ' + type + ' should be converted to Buffer that toStrings correctly'
102+
);
103+
});
104+
105+
st.end();
106+
});
107+
70108
t.end();
71109
});

0 commit comments

Comments
 (0)