diff --git a/js/experimental/runtime/kernel/lazy_accessor_test.js b/js/experimental/runtime/kernel/lazy_accessor_test.js index ad4576dfce..1a5532bfbf 100644 --- a/js/experimental/runtime/kernel/lazy_accessor_test.js +++ b/js/experimental/runtime/kernel/lazy_accessor_test.js @@ -30,6 +30,15 @@ describe('LazyAccessor', () => { expect(accessor.serialize()).toEqual(new ArrayBuffer(0)); }); + it('encodes and decodes max field number', () => { + const accessor = LazyAccessor.fromArrayBuffer( + createArrayBuffer(0xF8, 0xFF, 0xFF, 0xFF, 0x0F, 0x01)); + expect(accessor.getBoolWithDefault(MAX_FIELD_NUMBER)).toBe(true); + accessor.setBool(MAX_FIELD_NUMBER, false); + expect(accessor.serialize()) + .toEqual(createArrayBuffer(0xF8, 0xFF, 0xFF, 0xFF, 0x0F, 0x00)); + }); + it('uses the default pivot point', () => { const accessor = LazyAccessor.fromArrayBuffer(new ArrayBuffer(0)); expect(accessor.getPivot()).toBe(24); @@ -147,17 +156,31 @@ describe('LazyAccessor clear field does', () => { expect(clonedAccessor.serialize()).toEqual(new ArrayBuffer(0)); expect(clonedAccessor.getBoolWithDefault(1)).toEqual(false); }); + + it('clear the max field number', () => { + const accessor = LazyAccessor.createEmpty(); + accessor.setBool(MAX_FIELD_NUMBER, true); + + accessor.clearField(MAX_FIELD_NUMBER); + + expect(accessor.hasFieldNumber(MAX_FIELD_NUMBER)).toEqual(false); + expect(accessor.getBoolWithDefault(MAX_FIELD_NUMBER)).toEqual(false); + }); }); describe('LazyAccessor shallow copy does', () => { it('work for singular fields', () => { const accessor = LazyAccessor.createEmpty(); accessor.setBool(1, true); + accessor.setBool(MAX_FIELD_NUMBER, true); const clonedAccessor = accessor.shallowCopy(); expect(clonedAccessor.getBoolWithDefault(1)).toEqual(true); + expect(clonedAccessor.getBoolWithDefault(MAX_FIELD_NUMBER)).toEqual(true); accessor.setBool(1, false); + accessor.setBool(MAX_FIELD_NUMBER, false); expect(clonedAccessor.getBoolWithDefault(1)).toEqual(true); + expect(clonedAccessor.getBoolWithDefault(MAX_FIELD_NUMBER)).toEqual(true); }); it('work for repeated fields', () => {