Skip to content

Commit 4ca95c3

Browse files
committed
chore: respond to test comments
1 parent 1f1d33c commit 4ca95c3

File tree

1 file changed

+111
-13
lines changed

1 file changed

+111
-13
lines changed

tests/feature_resolution_editions.js

Lines changed: 111 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -117,12 +117,36 @@ tape.test("feature resolution inheritance file to message", function(test) {
117117
test.end();
118118
});
119119

120-
tape.test("feature resolution inheritance file to nested message", function(test) {
120+
tape.test("feature resolution inheritance message to field", function(test) {
121121
var rootEditionsOverriden = protobuf.parse(`edition = "2023";
122-
option features.json_format = LEGACY_BEST_EFFORT;
123-
option features.(abc).d_e = deeply_nested_false;
122+
123+
message Message {
124+
option features.json_format = LEGACY_BEST_EFFORT;
125+
option features.(abc).d_e = deeply_nested_false;
126+
string string_val = 1;
127+
string string_repeated = 2 [features.enum_type = CLOSED];
128+
}`).root.resolveAll();
129+
130+
// Should flip enum_type from default setting, inherit from Message,
131+
// and keep everything else
132+
test.same(rootEditionsOverriden.lookup("Message").fields.stringRepeated._features, {
133+
enum_type: 'CLOSED',
134+
field_presence: 'EXPLICIT',
135+
json_format: 'LEGACY_BEST_EFFORT',
136+
message_encoding: 'LENGTH_PREFIXED',
137+
repeated_field_encoding: 'PACKED',
138+
utf8_validation: 'VERIFY',
139+
'(abc)': { d_e: 'deeply_nested_false' }
140+
})
124141

142+
test.end();
143+
});
144+
145+
tape.test("feature resolution inheritance message to nested message", function(test) {
146+
var rootEditionsOverriden = protobuf.parse(`edition = "2023";
125147
message Message {
148+
option features.json_format = LEGACY_BEST_EFFORT;
149+
option features.(abc).d_e = deeply_nested_false;
126150
string string_val = 1;
127151
string string_repeated = 2 [features.enum_type = CLOSED];
128152
@@ -180,21 +204,20 @@ tape.test("feature resolution inheritance file to enums and enum values", functi
180204
test.end();
181205
});
182206

183-
tape.test("feature resolution inheritance file to oneofs", function(test) {
207+
tape.test("feature resolution inheritance message to oneofs", function(test) {
184208

185209
var rootEditionsOverriden = protobuf.parse(`
186210
edition = "2023";
187-
option features.json_format = LEGACY_BEST_EFFORT;
188211
option features.(abc).d_e = deeply_nested_false;
189212
message Message {
213+
option features.json_format = LEGACY_BEST_EFFORT;
190214
oneof SomeOneOf {
191215
option features.json_format = ALLOW;
192216
int32 a = 13;
193217
string b = 14;
194218
}
195219
}`).root.resolveAll();
196220

197-
// console.log(rootEditionsOverriden.lookup("SomeOneOf")._features)
198221
test.same(rootEditionsOverriden.lookup("SomeOneOf")._features, {
199222
enum_type: 'OPEN',
200223
field_presence: 'EXPLICIT',
@@ -208,20 +231,96 @@ tape.test("feature resolution inheritance file to oneofs", function(test) {
208231
test.end();
209232
});
210233

234+
tape.test("feature resolution inheritance oneofs to field", function(test) {
235+
var rootEditionsOverriden = protobuf.parse(`
236+
edition = "2023";
237+
option features.(abc).d_e = deeply_nested_false;
238+
message Message {
239+
option features.json_format = LEGACY_BEST_EFFORT;
240+
oneof SomeOneOf {
241+
option features.json_format = ALLOW;
242+
int32 a = 13;
243+
string b = 14;
244+
}
245+
}`).root.resolveAll();
246+
247+
test.same(rootEditionsOverriden.lookup("SomeOneOf").fieldsArray.find(x => x.name === 'b')._features, {
248+
enum_type: 'OPEN',
249+
field_presence: 'EXPLICIT',
250+
json_format: 'LEGACY_BEST_EFFORT',
251+
message_encoding: 'LENGTH_PREFIXED',
252+
repeated_field_encoding: 'PACKED',
253+
utf8_validation: 'VERIFY',
254+
'(abc)': { d_e: 'deeply_nested_false' }
255+
})
256+
257+
test.end();
258+
});
259+
211260
tape.test("feature resolution inheritance file to extensions", function(test) {
212261

213262
var rootEditionsOverriden = protobuf.parse(`
214263
edition = "2023";
215264
option features.json_format = LEGACY_BEST_EFFORT;
216265
option features.(abc).d_e = deeply_nested_false;
266+
267+
extend Message {
268+
int32 bar = 10 [features.utf8_validation = NONE];
269+
}
270+
message Message {}`).root.resolveAll();
271+
272+
test.same(rootEditionsOverriden.lookup(".bar")._features, {
273+
enum_type: 'OPEN',
274+
field_presence: 'EXPLICIT',
275+
json_format: 'LEGACY_BEST_EFFORT',
276+
message_encoding: 'LENGTH_PREFIXED',
277+
repeated_field_encoding: 'PACKED',
278+
utf8_validation: 'NONE',
279+
'(abc)': { d_e: 'deeply_nested_false' }
280+
})
281+
282+
test.end();
283+
});
284+
285+
tape.test("feature resolution inheritance message to extensions", function(test) {
286+
287+
var rootEditionsOverriden = protobuf.parse(`
288+
edition = "2023";
289+
option features.json_format = LEGACY_BEST_EFFORT;
290+
option features.(abc).d_e = deeply_nested_false;
291+
292+
extend Message {
293+
int32 bar = 10 [features.utf8_validation = NONE];
294+
}
295+
message Message {}`).root.resolveAll();
296+
297+
test.same(rootEditionsOverriden.lookup(".bar")._features, {
298+
enum_type: 'OPEN',
299+
field_presence: 'EXPLICIT',
300+
json_format: 'LEGACY_BEST_EFFORT',
301+
message_encoding: 'LENGTH_PREFIXED',
302+
repeated_field_encoding: 'PACKED',
303+
utf8_validation: 'NONE',
304+
'(abc)': { d_e: 'deeply_nested_false' }
305+
})
306+
307+
test.end();
308+
});
309+
310+
tape.test("feature resolution inheritance message to enum", function(test) {
311+
312+
var rootEditionsOverriden = protobuf.parse(`edition = "2023";
313+
option features.json_format = LEGACY_BEST_EFFORT;
314+
option features.(abc).d_e = deeply_nested_false;
217315
message Message {
218-
extensions 10 to 100;
219-
extend Message {
220-
int32 bar = 10 [features.utf8_validation = NONE];
316+
option features.utf8_validation = NONE;
317+
enum SomeEnum {
318+
ONE = 1;
319+
TWO = 2;
221320
}
222321
}`).root.resolveAll();
223322

224-
test.same(rootEditionsOverriden.lookup("Message").lookup(".Message.bar")._features, {
323+
test.same(rootEditionsOverriden.lookup("Message").lookup("SomeEnum")._features, {
225324
enum_type: 'OPEN',
226325
field_presence: 'EXPLICIT',
227326
json_format: 'LEGACY_BEST_EFFORT',
@@ -234,7 +333,7 @@ tape.test("feature resolution inheritance file to extensions", function(test) {
234333
test.end();
235334
});
236335

237-
tape.test("feature resolution inheritance file to top-level enum", function(test) {
336+
tape.test("feature resolution inheritance message to enum", function(test) {
238337

239338
var rootEditionsOverriden = protobuf.parse(`edition = "2023";
240339
option features.json_format = LEGACY_BEST_EFFORT;
@@ -245,7 +344,6 @@ tape.test("feature resolution inheritance file to top-level enum", function(test
245344
TWO = 2;
246345
}`).root.resolveAll();
247346

248-
console.log(rootEditionsOverriden.lookup("SomeEnum")._features)
249347
test.same(rootEditionsOverriden.lookup("SomeEnum")._features, {
250348
enum_type: 'OPEN',
251349
field_presence: 'EXPLICIT',
@@ -259,7 +357,7 @@ tape.test("feature resolution inheritance file to top-level enum", function(test
259357
test.end();
260358
});
261359

262-
tape.test("feature resolution inheritance file to service and method", function(test) {
360+
tape.test("feature resolution inheritance file to service and service to method", function(test) {
263361
var rootEditionsOverriden = protobuf.parse(`edition = "2023";
264362
option features.json_format = LEGACY_BEST_EFFORT;
265363
option features.(abc).d_e = deeply_nested_false;

0 commit comments

Comments
 (0)