Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit e8acb62

Browse files
author
Michael Baldwin
committed
Add tests for current behavior of data properties optional and required.
1 parent 1824ab0 commit e8acb62

File tree

1 file changed

+36
-0
lines changed

1 file changed

+36
-0
lines changed

tests/Facility.CodeGen.JavaScript.UnitTests/JavaScriptGeneratorTests.cs

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -314,6 +314,42 @@ export enum ExampleApiErrors {
314314
Assert.That(typesFile.Text, Contains.Substring(expectedErrorSet));
315315
}
316316

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+
317353
[TestCase("", true)]
318354
[TestCase("", false)]
319355
[TestCase("suffix", true)]

0 commit comments

Comments
 (0)