@@ -314,6 +314,42 @@ export enum ExampleApiErrors {
314
314
Assert . That ( typesFile . Text , Contains . Substring ( expectedErrorSet ) ) ;
315
315
}
316
316
317
+ [ Test ]
318
+ public void GenerateExampleApiTypeScript_DataPropertiesOptional ( )
319
+ {
320
+ const string definition = "service TestApi { data Widget { id: string; name: string; price: decimal; } }" ;
321
+ var parser = CreateParser ( ) ;
322
+ var service = parser . ParseDefinition ( new ServiceDefinitionText ( "TestApi.fsd" , definition ) ) ;
323
+ var generator = new JavaScriptGenerator { GeneratorName = "JavaScriptGeneratorTests" , TypeScript = true } ;
324
+ var result = generator . GenerateOutput ( service ) ;
325
+ Assert . That ( result , Is . Not . Null ) ;
326
+
327
+ var typesFile = result . Files . Single ( f => f . Name == "testApiTypes.ts" ) ;
328
+ Assert . That ( typesFile . Text , Does . Contain ( "export interface IWidget {" ) ) ;
329
+ Assert . That ( typesFile . Text , Does . Contain ( "id?: string;" ) ) ;
330
+ Assert . That ( typesFile . Text , Does . Contain ( "name?: string;" ) ) ;
331
+ Assert . That ( typesFile . Text , Does . Contain ( "price?: number;" ) ) ;
332
+ Assert . That ( typesFile . Text , Does . Contain ( "}" ) ) ;
333
+ }
334
+
335
+ [ Test ]
336
+ public void GenerateExampleApiTypeScript_DataPropertiesRequired ( )
337
+ {
338
+ const string definition = "service TestApi { data Widget { [required] id: string; name: string!; price: decimal; } }" ;
339
+ var parser = CreateParser ( ) ;
340
+ var service = parser . ParseDefinition ( new ServiceDefinitionText ( "TestApi.fsd" , definition ) ) ;
341
+ var generator = new JavaScriptGenerator { GeneratorName = "JavaScriptGeneratorTests" , TypeScript = true } ;
342
+ var result = generator . GenerateOutput ( service ) ;
343
+ Assert . That ( result , Is . Not . Null ) ;
344
+
345
+ var typesFile = result . Files . Single ( f => f . Name == "testApiTypes.ts" ) ;
346
+ Assert . That ( typesFile . Text , Does . Contain ( "export interface IWidget {" ) ) ;
347
+ Assert . That ( typesFile . Text , Does . Contain ( "id?: string;" ) ) ;
348
+ Assert . That ( typesFile . Text , Does . Contain ( "name?: string;" ) ) ;
349
+ Assert . That ( typesFile . Text , Does . Contain ( "price?: number;" ) ) ;
350
+ Assert . That ( typesFile . Text , Does . Contain ( "}" ) ) ;
351
+ }
352
+
317
353
[ TestCase ( "" , true ) ]
318
354
[ TestCase ( "" , false ) ]
319
355
[ TestCase ( "suffix" , true ) ]
0 commit comments