Skip to content

Commit

Permalink
feat: Update fromPartial and fromJson to respect initializeFieldsAsUn…
Browse files Browse the repository at this point in the history
…defined (#811)

* feat: fromPartial do not default initialize

* feat: fromJSON do not default initialize

Fixes #682

* test: integration

---------

Co-authored-by: ilikdoge <ilikdoge0@gmail.com>
  • Loading branch information
stephenh and davidzeng0 committed Mar 27, 2023
1 parent 334bb09 commit 1615ae0
Show file tree
Hide file tree
Showing 8 changed files with 538 additions and 70 deletions.
1 change: 1 addition & 0 deletions integration/from-partial-no-initialize/parameters.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
useOptionals=all,initializeFieldsAsUndefined=false
50 changes: 50 additions & 0 deletions integration/from-partial-no-initialize/partials-test.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
import { TPartial } from './test'

describe('partials-test', () => {
it('works with singular fields', () => {
const test = {
number: 2,
string: 'hi',
message: {
field: 'hello'
}
};

const result = TPartial.fromPartial(test);

expect(result).toEqual(test);
});

it('works with repeated fields', () => {
const test = {
map: {
a: 'b',
c: 'd'
},

repeatedMessage: [
{
field: 'world'
},
{
field: 'hello'
}
],

repeatedString: [
'goodbye',
'world'
],

repeatedNumber: [
1,
2,
3
]
};

const result = TPartial.fromPartial(test);

expect(result).toEqual(test);
});
})
Binary file not shown.
15 changes: 15 additions & 0 deletions integration/from-partial-no-initialize/test.proto
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
syntax = "proto2";

message TPartialMessage{
required string field = 1;
}

message TPartial{
optional int32 number = 1;
optional string string = 2;
map<string, string> map = 3;
optional TPartialMessage message = 4;
repeated TPartialMessage repeated_message = 5;
repeated string repeated_string = 6;
repeated int32 repeated_number = 7;
}

0 comments on commit 1615ae0

Please sign in to comment.