-
Notifications
You must be signed in to change notification settings - Fork 378
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Multichoice implementation contd #4666
Multichoice implementation contd #4666
Conversation
…/JanKrivanek/templating into multichoice-implementation-contd
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Great work!
left some comments inline.
It would be good to add more tests on parsing, reading\writing template cache, help and may be split RPG tests to json parsing and e2e test.
What about JSON schema update? do you plan to make it in separate PR?
...Microsoft.TemplateEngine.Orchestrator.RunnableProjects.UnitTests/MacroTests/JoinMacroTest.cs
Outdated
Show resolved
Hide resolved
// Template content preparation | ||
// | ||
|
||
string templateConfig = @" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
(not actionable):
couple of ideas how to avoid strings (they a hard to manage)
- use anonymous classes where members match properties
- after recent refactoring you can create
SimpleConfigModel
and init its fields
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I actually considered those test to be a typo of e2e test that can be a bit more performant - so I prefered the input to be as unprocessed as possible
{ | ||
return match; | ||
} | ||
List<string?> val = literal.Tokenize().Select(t => ResolveChoice(environmentSettings, t, param)).Where(r => !string.IsNullOrEmpty(r)).ToList(); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
(not actionable)
it would be great to move from string, string
relation to string, object
or string, IParameterValue
relation for template parameters as part of the further refactoring
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeah - that would be much better. However we still likely would need to keep it in edge contracts
* #4490 implementing support for quote-less choice literals (#4574) * #4490 implementing support for quote-less choice literals * Testfix * Make the unquoted literals feature opt-in via EnableQuotelessLiterals property * Localize error message * Fix code and tests after merge * Multichoice implementation contd (#4666) * #4490 implementing support for quote-less choice literals * #4490 multichoice parameters implementation * Add Tab completion test cases * Fix code + tests after merge * Fix code and unit tests after merging * Add support for multichoice parameters in join macro * Improve based on review comments * fix #4650 - adding validation for multichoice symbols (#4698) * fix #4650 - adding validation for multichoice symbols * Adjust error message * Multichoice refactor quoteless (#4708) * #4665 Refactoring part 1: Make EnableQuotelessLiterals exposed only to Orchestrator * Fix parameters localization * Fix after merge
…ft.TemplateEngine.Abstractions (#4717) * #4490 implementing support for quote-less choice literals (#4574) * #4490 implementing support for quote-less choice literals * Testfix * Make the unquoted literals feature opt-in via EnableQuotelessLiterals property * Localize error message * Fix code and tests after merge * Multichoice implementation contd (#4666) * #4490 implementing support for quote-less choice literals * #4490 multichoice parameters implementation * Add Tab completion test cases * Fix code + tests after merge * Fix code and unit tests after merging * Add support for multichoice parameters in join macro * Improve based on review comments * fix #4650 - adding validation for multichoice symbols (#4698) * fix #4650 - adding validation for multichoice symbols * Adjust error message * #4665 Refactoring part 1: Make EnableQuotelessLiterals exposed only to Orchestrator * Fix parameters localization * #4665: Refactor step 2 - lower the Core dependency on Abstractions * Fix tests - proper fixtures typing * Fix tests after refactorings - mainly issues with PhysicalFileSystem * Fix tests * Revert back to mounted file system in orchestrator for source files * fix api * Improve - further removal of IEnvironemnt, test logger improvement, nullability to api, other * Fix test bug - add log providers to test log factory
Problem
#4490
Solution
Checks:
#nullable enable
to all the modified files ?