File: parser.test.js

package info (click to toggle)
node-cbor 8.1.0%2Bdfsg%2B~cs5.2.1-3
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, sid, trixie
  • size: 1,220 kB
  • sloc: javascript: 7,450; makefile: 11
file content (80 lines) | stat: -rw-r--r-- 2,014 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
'use strict'
const jts = require('../lib/index')
const test = require('ava')
const {Buffer} = require('buffer')

test('create', t => {
  const p = new jts.Parser()
  t.truthy(p)
})

test('parse', t => new Promise((resolve, reject) => {
  const json = []

  const p = new jts.Parser()
    .on('end', () => {
      t.is(json[0], true)
      t.is(json[1], 12)
      t.is(json[2], 'foo')
      resolve()
    })
    .on('error', reject)
    .on('truncated', d => t.fail('truncated'))
    .on('invalid', d => t.fail('invalid'))
    .on('data', j => json.push(j))

  p.write(Buffer.from(`${jts.RS}true\n`, 'utf8'))
  p.write(Buffer.from(`${jts.RS}12\n`, 'utf8'))
  p.end(Buffer.from(`${jts.RS}"foo"\n`, 'utf8'))
}))

test('truncate', t => new Promise((resolve, reject) => {
  let json = null
  let truncated = 0
  const p = new jts.Parser()
    .on('end', () => {
      t.is(json, null)
      t.is(truncated, 2)
      resolve()
    })
    .on('error', reject)
    .on('truncated', d => truncated++)
    .on('data', j => (json = j))
  p.write(Buffer.from(`${jts.RS}"foo`, 'utf8'))
  p.end(Buffer.from(`${jts.RS}12`, 'utf8'))
}))

test('invalid', t => new Promise((resolve, reject) => {
  let json = null
  let truncated = false
  let invalid = false
  const p = new jts.Parser()
    .on('end', () => {
      t.is(json, null)
      t.falsy(truncated)
      t.truthy(invalid)
      resolve()
    })
    .on('error', reject)
    .on('invalid', d => (invalid = true))
    .on('truncated', d => (truncated = true))
    .on('data', j => (json = j))
  p.end(Buffer.from(`${jts.RS}\n`, 'utf8'))
}))

test('empty', t => new Promise((resolve, reject) => {
  let success = true
  const p = new jts.Parser()
    .on('end', () => {
      t.truthy(success)
      resolve()
    })
    .on('error', e => {
      success = false
      reject(e)
    })
    .on('invalid', d => (success = false))
    .on('truncated', d => (success = false))
    .on('data', j => (success = false))
  p.end(Buffer.from(jts.RS + jts.RS + jts.RS, 'utf8'))
}))