Skip to content

Commit 2028070

Browse files
committed
Add test for template import
1 parent dfcb4a7 commit 2028070

File tree

8 files changed

+73
-1
lines changed

8 files changed

+73
-1
lines changed

.github/workflows/tests.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,9 @@ on:
2020
push:
2121
branches:
2222
- main
23+
pull_request:
24+
branches:
25+
- main
2326

2427
jobs:
2528
ubuntu-latest:

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77

88
## [Unreleased]
99

10+
### Added
11+
12+
- Added import keyword to import templates into other templates
13+
1014
### Changed
1115

1216
- Log error instead of warning when a template file is not found

build/Build.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
[GitHubActions("tests",
2323
GitHubActionsImage.UbuntuLatest,
2424
OnPushBranches = new[] { "main" },
25+
OnPullRequestBranches = new[] { "main" },
2526
InvokedTargets = new[] { nameof(Test) },
2627
PublishCondition = "always()",
2728
EnableGitHubToken = true,

build/build.csproj.DotSettings

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@
1717
<s:Boolean x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/PLACE_SIMPLE_ANONYMOUSMETHOD_ON_SINGLE_LINE/@EntryValue">False</s:Boolean>
1818
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/PredefinedNamingRules/=PrivateInstanceFields/@EntryIndexedValue">&lt;Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /&gt;</s:String>
1919
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/PredefinedNamingRules/=PrivateStaticFields/@EntryIndexedValue">&lt;Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /&gt;</s:String>
20+
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/UserRules/=4a98fdf6_002D7d98_002D4f5a_002Dafeb_002Dea44ad98c70c/@EntryIndexedValue">&lt;Policy&gt;&lt;Descriptor Staticness="Instance" AccessRightKinds="Private" Description="Instance fields (private)"&gt;&lt;ElementKinds&gt;&lt;Kind Name="FIELD" /&gt;&lt;Kind Name="READONLY_FIELD" /&gt;&lt;/ElementKinds&gt;&lt;/Descriptor&gt;&lt;Policy Inspect="True" WarnAboutPrefixesAndSuffixes="False" Prefix="" Suffix="" Style="AaBb" /&gt;&lt;/Policy&gt;</s:String>
21+
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/UserRules/=f9fce829_002De6f4_002D4cb2_002D80f1_002D5497c44f51df/@EntryIndexedValue">&lt;Policy&gt;&lt;Descriptor Staticness="Static" AccessRightKinds="Private" Description="Static fields (private)"&gt;&lt;ElementKinds&gt;&lt;Kind Name="FIELD" /&gt;&lt;/ElementKinds&gt;&lt;/Descriptor&gt;&lt;Policy Inspect="True" WarnAboutPrefixesAndSuffixes="False" Prefix="" Suffix="" Style="AaBb" /&gt;&lt;/Policy&gt;</s:String>
2022
<s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EPsi_002ECSharp_002ECodeStyle_002ECSharpAttributeForSingleLineMethodUpgrade/@EntryIndexedValue">True</s:Boolean>
2123
<s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EPsi_002ECSharp_002ECodeStyle_002ECSharpKeepExistingMigration/@EntryIndexedValue">True</s:Boolean>
2224
<s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EPsi_002ECSharp_002ECodeStyle_002ECSharpPlaceEmbeddedOnSameLineMigration/@EntryIndexedValue">True</s:Boolean>
@@ -25,4 +27,5 @@
2527
<s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EPsi_002ECSharp_002ECodeStyle_002ESettingsUpgrade_002EAddAccessorOwnerDeclarationBracesMigration/@EntryIndexedValue">True</s:Boolean>
2628
<s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EPsi_002ECSharp_002ECodeStyle_002ESettingsUpgrade_002ECSharpPlaceAttributeOnSameLineMigration/@EntryIndexedValue">True</s:Boolean>
2729
<s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EPsi_002ECSharp_002ECodeStyle_002ESettingsUpgrade_002EMigrateBlankLinesAroundFieldToBlankLinesAroundProperty/@EntryIndexedValue">True</s:Boolean>
28-
<s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EPsi_002ECSharp_002ECodeStyle_002ESettingsUpgrade_002EMigrateThisQualifierSettings/@EntryIndexedValue">True</s:Boolean></wpf:ResourceDictionary>
30+
<s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EPsi_002ECSharp_002ECodeStyle_002ESettingsUpgrade_002EMigrateThisQualifierSettings/@EntryIndexedValue">True</s:Boolean>
31+
<s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EPsi_002ECSharp_002ECodeStyle_002ESettingsUpgrade_002EPredefinedNamingRulesToUserRulesUpgrade/@EntryIndexedValue">True</s:Boolean></wpf:ResourceDictionary>

tests/TemplateTests.cs

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ namespace tests;
77
public class TemplateTests
88
{
99
private const string TemplateFile1 = "Templates/Test_Template_1.txt";
10+
private const string TemplateFileImport = "Templates/Test_Template_Import.txt";
11+
private const string TemplateFileImportPartial = "Templates/Test_Template_Import_Partial.txt";
1012
private const string StringDictionaryTemplateFile = "Templates/StringDictionary.txt";
1113
private const string EnumTemplateFile = "Templates/Enum.txt";
1214

@@ -83,4 +85,22 @@ public Task Render_RenderValidTemplate2_TemplateIsRenderedCorrectly()
8385
settings.UseDirectory("Verify");
8486
return Verify(result, settings);
8587
}
88+
89+
[Fact]
90+
public Task Render_TemplateWithImportedTemplate_TemplateIsRenderedCorrectly()
91+
{
92+
Template rootTemplate = Template.ParseFromFile(TemplateFileImport);
93+
94+
var rootData = new
95+
{
96+
Template = "Import",
97+
SomeNumbers = new[] { 1, 2, 3, 4, 5 }
98+
};
99+
100+
string result = rootTemplate.Render(rootData);
101+
102+
var settings = new VerifySettings();
103+
settings.UseDirectory("Verify");
104+
return Verify(result, settings);
105+
}
86106
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
{{ import "Test_Template_1" }}
2+
3+
// Test Template {{ Template }} with imported template
4+
5+
{{ import "Test_Template_1" }}
6+
{{ import "This_Can_Be_Any_Key" }}
7+
8+
{{ for number in SomeNumbers }}
9+
// {{ number }}
10+
{{ end }}
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
// This is text from a partial template
2+
// And this is more text from a partial template with a variable: {{ Variable }}
3+
4+
// Let's also add a list of strings to the template
5+
{{ for item in Strings }}
6+
// {{ item }}
7+
{{ end }}
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
// This is text from a partial template
2+
// And this is more text from a partial template with a variable: this is a string
3+
4+
// Let's also add a list of strings to the template
5+
// hello
6+
// world
7+
// !
8+
9+
// Test Template Import with imported template
10+
11+
// This is text from a partial template
12+
// And this is more text from a partial template with a variable: this is a string
13+
14+
// Let's also add a list of strings to the template
15+
// hello
16+
// world
17+
// !
18+
1234567890
19+
20+
// 1
21+
// 2
22+
// 3
23+
// 4
24+
// 5

0 commit comments

Comments
 (0)