-
Notifications
You must be signed in to change notification settings - Fork 32
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
Purpose of scriptblock parser in Get-Poshspecparam? #4
Comments
This would likely be better served by LocalGroupMembership resource and maybe a LocalUser resource since the Win32_Group class does not have a members property and the Win32_UserAccount does not have a memberof property. Also in Pester, the "Contain" assertion does not work with arrays, however "Be" does work. Juan |
@devblackops The goal was to get a lot of the logic outside of the scope of the Pester functions to enable testing. The parsing of the scriptblock replaces the variables with their value - sort of half-evaluating the expression. There's probably a better way to do it. You could move that snippet into a new Private function like That is a good example. I'll see about making it supported without a function. |
@cdhunt Thanks. I'll mess around with extending |
I assumed the value in the Should block would be a constant, but it should be possible to expand variables with |
@cdhunt Hah, amazing, I didn't realise that's what that was doing.... So much cleaner now.
Thank you! Would you be up for me submitting a PR with this fixed in the module? |
I just tested adding I shortened it with an alias: Set-Alias -Name exp -Value Fix-PoshSpecInterpolation
Describe "test should block" {
$running = "Running"
Service w32time Status (Exp{Should Be $running})
} Which is easier on the user? |
I'm not really sure of the purpose of parsing
$TestExpression
inGet-Poshspecparam
, turning around and constructing a string from it, then invoking it withInvoke-Expression
. Can you explain why this is needed?I'm getting some errors when
$TestExpression
starts to become a little complex. I don't have much experience dealing with language parsing in PowerShell but my gut feeling is the logic inGet-Poshspecparam
may need to be considerably more complex in order to deal with the various scriptblocks thrown at it.The code below would be an enhancement to the
LocalGroup
resource which will return the group name and members but fails with a parse exception.The
members
property of the object returned should be able to be inspected with the test below.This is the error I receive when testing this resource.
Thoughts?
Brandon
The text was updated successfully, but these errors were encountered: