Swap-Aggregator-Subgraph/node_modules/protons/test/oneof.js
Richa-iitr d211083153 Revert "Revert "added handler""
This reverts commit c36ee8c5ca.
2022-07-03 07:30:05 +05:30

62 lines
1.4 KiB
JavaScript

'use strict'
var tape = require('tape')
var protobuf = require('../')
var proto = protobuf(require('./test.proto'))
var Property = proto.Property
var PropertyNoOneof = proto.PropertyNoOneof
var data = {
name: 'Foo',
desc: 'optional description',
int_value: 12345
}
tape('oneof encode', function (t) {
t.ok(Property.encode(data), 'oneof encode')
t.end()
})
tape('oneof encode + decode', function (t) {
var buf = Property.encode(data)
var out = Property.decode(buf)
t.deepEqual(out, data)
t.end()
})
tape('oneof encode of overloaded json throws', function (t) {
var invalidData = {
name: 'Foo',
desc: 'optional description',
string_value: 'Bar', // ignored
bool_value: true, // ignored
int_value: 12345 // retained, was last entered
}
try {
Property.encode(invalidData)
} catch (err) {
t.ok(true, 'should throw')
t.end()
}
})
tape('oneof encode + decode of overloaded oneof buffer', function (t) {
var invalidData = {
name: 'Foo',
desc: 'optional description',
string_value: 'Bar', // retained, has highest tag number
bool_value: true, // ignored
int_value: 12345 // ignored
}
var validData = {
name: 'Foo',
desc: 'optional description',
string_value: 'Bar'
}
var buf = PropertyNoOneof.encode(invalidData)
var out = Property.decode(buf)
t.deepEqual(validData, out)
t.end()
})