Skip to content

Conversation

@ekohl
Copy link
Member

@ekohl ekohl commented Aug 6, 2021

I'm not entirely sure if this is a good idea. It does have some magic feeling to it. On the other hand, specs are more readable this way (IMHO). I'm interested in feedback.

I only converted a few specs, but hopefully that's enough to see the pattern.

@ekohl
Copy link
Member Author

ekohl commented Aug 6, 2021

voxpupuli/rspec-puppet-facts#132 is the same thing, but more generalized.

describe_plugin 'foreman_proxy::plugin::abrt' do
describe 'with default settings' do
include_examples 'a plugin with a settings file', 'abrt' do
let(:expected_config) { /:enabled: https/ }
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Generally I like the examples tactic here as it simplifies the boilerplate. I think it can take some experience to unwind include_examples sometimes. I would probably prefer if each spec declared this in the same way with my preference being https://github.com/theforeman/puppet-foreman_proxy/pull/697/files#diff-622e312bc4439aacb45352c217bcd7880af426efd40e1e8f6dc27501eab16769R8-R14 because it makes it clear its a yaml file and declares it -- less mental overhead when reading through these or as developers copy/paste for new plugins.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For what it's worth, I kept the change minimal here. The old example was also this regex. I'm not opposed to an explicit long form everywhere, at least for default settings. For the case where we disable it and only want to ensure it's :enabled: false I think the regex form is still better.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants