source: trip-planner-front/node_modules/minipass-sized/test/basic.js

Last change on this file was 6a3a178, checked in by Ema <ema_spirova@…>, 3 years ago

initial commit

  • Property mode set to 100644
File size: 2.2 KB
Line 
1const t = require('tap')
2const MPS = require('../')
3
4t.test('ok if size checks out', t => {
5 const mps = new MPS({ size: 4 })
6
7 mps.write(Buffer.from('a').toString('hex'), 'hex')
8 mps.write(Buffer.from('sd'))
9 mps.end('f')
10 return mps.concat().then(data => t.equal(data.toString(), 'asdf'))
11})
12
13t.test('error if size exceeded', t => {
14 const mps = new MPS({ size: 1 })
15 mps.on('error', er => {
16 t.match(er, {
17 message: 'Bad data size: expected 1 bytes, but got 4',
18 found: 4,
19 expect: 1,
20 code: 'EBADSIZE',
21 name: 'SizeError',
22 })
23 t.end()
24 })
25 mps.write('asdf')
26})
27
28t.test('error if size is not met', t => {
29 const mps = new MPS({ size: 999 })
30 t.throws(() => mps.end(), {
31 message: 'Bad data size: expected 999 bytes, but got 0',
32 found: 0,
33 name: 'SizeError',
34 expect: 999,
35 code: 'EBADSIZE',
36 })
37 t.end()
38})
39
40t.test('error if non-string/buffer is written', t => {
41 const mps = new MPS({size:1})
42 mps.on('error', er => {
43 t.match(er, {
44 message: 'MinipassSized streams only work with string and buffer data'
45 })
46 t.end()
47 })
48 mps.write({some:'object'})
49})
50
51t.test('projectiles', t => {
52 t.throws(() => new MPS(), {
53 message: 'invalid expected size: undefined'
54 }, 'size is required')
55 t.throws(() => new MPS({size: true}), {
56 message: 'invalid expected size: true'
57 }, 'size must be number')
58 t.throws(() => new MPS({size: NaN}), {
59 message: 'invalid expected size: NaN'
60 }, 'size must not be NaN')
61 t.throws(() => new MPS({size:1.2}), {
62 message: 'invalid expected size: 1.2'
63 }, 'size must be integer')
64 t.throws(() => new MPS({size: Infinity}), {
65 message: 'invalid expected size: Infinity'
66 }, 'size must be finite')
67 t.throws(() => new MPS({size: -1}), {
68 message: 'invalid expected size: -1'
69 }, 'size must be positive')
70 t.throws(() => new MPS({objectMode: true}), {
71 message: 'MinipassSized streams only work with string and buffer data'
72 }, 'no objectMode')
73 t.throws(() => new MPS({size: Number.MAX_SAFE_INTEGER + 1000000}), {
74 message: 'invalid expected size: 9007199255740992'
75 })
76 t.end()
77})
78
79t.test('exports SizeError class', t => {
80 t.isa(MPS.SizeError, 'function')
81 t.isa(MPS.SizeError.prototype, Error)
82 t.end()
83})
Note: See TracBrowser for help on using the repository browser.