1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872
|
---
layout: base
title: Change Log
icon: fa fa-history
---
## [2.11.1]
<a href="https://github.com/puppetlabs/rspec-puppet/compare/v2.11.0...v2.11.1"
class="btn btn-primary btn-inline pull-right">View Diff</a>
### Fixed
* Ensure FacterImpl consistency between example groups ([#19](https://github.com/puppetlabs/rspec-puppet/pull/19))
## [2.11.0]
<a href="https://github.com/puppetlabs/rspec-puppet/compare/v2.10.0...v2.11.0"
class="btn btn-primary btn-inline pull-right">View Diff</a>
### Added
* Add setting to use custom Facter implementation ([GH-16](https://github.com/puppetlabs/rspec-puppet/pull/16))
## [2.10.0]
<a href="https://github.com/puppetlabs/rspec-puppet/compare/v2.9.0...v2.10.0"
class="btn btn-primary btn-inline pull-right">View Diff</a>
The release sees rspec-puppet move into the puppetlabs namespace
### Added
* Add ruby 3 support ([GH-11](https://github.com/puppetlabs/rspec-puppet/pull/11))
## [2.9.0]
<a href="https://github.com/puppetlabs/rspec-puppet/compare/v2.8.0...v2.9.0"
class="btn btn-primary btn-inline pull-right">View Diff</a>
### Added
* Allow users to disable app_management for Puppet 4
* Added support for regexp arguments to Sensitive
* Handle all auto*, not just autorequire
* Set up loaders so that 4.x functions resolve properly
## [2.8.0]
<a href="https://github.com/puppetlabs/rspec-puppet/compare/v2.7.10...v2.8.0"
class="btn btn-primary btn-inline pull-right">View Diff</a>
### Breaking Changes
* As of the 2.8.0 release, the `rspec-puppet` project no longer guarantees compatibility
with Puppet 2.x or 3.x (running under Ruby 1.8.7) or Puppet 4.x (running under Ruby 1.9.3).
* This release adds support for the [`Sensitive`](https://puppet.com/docs/puppet/latest/lang_data_sensitive.html)
data type, however existing tests that were expecting `String` content may need to be updated
to wrap the expected value in the new `sensitive` helper:
```ruby
# Old
it { is_expected.to contain_file('/etc/mysecret.conf').with_content("top secret\n") }
# New
it { is_expected.to contain_file('/etc/mysecret.conf').with_content(sensitive("top secret\n")) }
```
### Added
* Added support for [trusted external fact data](https://github.com/puppetlabs/rspec-puppet#specifying-trusted-external-data).
* Added the ability to exclude resources from the coverage report calculations using a regular expression.
(See [documentation](https://rspec-puppet.com/documentation/coverage/#excluded-resources) for an example.
* Added `have_unique_values_for_all` matcher to assert a specific resource parameter value is unique across
the entire catalogue.
(See [documentation](https://rspec-puppet.com/documentation/classes/#test-resource-parameter-values-for-uniqueness).)
* Added ability to customize module-layer Hiera configuration via new settings. See
[documentation](https://rspec-puppet.com/documentation/configuration/#disable_module_hiera) for details.
### Changed
* `RSpec::Puppet::Cache` now evicts least recently used entries when it reaches max size.
* `rspec-puppet`'s implementation of `match_manifests` will no longer look in `init.pp` for class
declarations if a manifest file exactly matching the class name exists.
### Fixed
* Resolved compatibility issues with Ruby 2.7.x and added Ruby 2.7.x to the test matrix.
* Resolved issues calculating coverage and reporting results when there are 0 tested resources.
* Resolved compatibility issue with `rspec-expectations` 3.10.0.
## 2.7.10
<a href="https://github.com/puppetlabs/rspec-puppet/compare/v2.7.8...v2.7.10"
class="btn btn-primary btn-inline pull-right">View Diff</a>
### Fixed
* Fix issues with removal of `default_env` method in Puppet 6.17.0.
## 2.7.9
This release had unintended breaking changes and was withdrawn.
## 2.7.8
<a href="https://github.com/puppetlabs/rspec-puppet/compare/v2.7.7...v2.7.8"
class="btn btn-primary btn-inline pull-right">View Diff</a>
### Fixed
* Fix cross-platform testing for Puppet >= 6.9.0 when there is no `ipaddress6`
fact defined.
## 2.7.7
<a href="https://github.com/puppetlabs/rspec-puppet/compare/v2.7.6...v2.7.7"
class="btn btn-primary btn-inline pull-right">View Diff</a>
### Fixed
* Fix the support for rspec-expectations >= 3.8.5.
### Changed
* Remove the rspec-expectations dependency limit introduced in 2.7.6.
## 2.7.6
<a href="https://github.com/puppetlabs/rspec-puppet/compare/v2.7.5...v2.7.6"
class="btn btn-primary btn-inline pull-right">View Diff</a>
### Changed
* Limit rspec-expectations dependency to < 3.8.5 due to an incompatible
change.
## 2.7.5
<a href="https://github.com/puppetlabs/rspec-puppet/compare/v2.7.4...v2.7.5"
class="btn btn-primary btn-inline pull-right">View Diff</a>
### Fixed
* Minor refactor to prevent the fix introduced in 2.7.4 from raising
a deprecation warning on latest RSpec.
## 2.7.4
<a href="https://github.com/puppetlabs/rspec-puppet/compare/v2.7.3...v2.7.4"
class="btn btn-primary btn-inline pull-right">View Diff</a>
### Fixed
* Fix the resource coverage test so that rspec will exit non-zero if the
desired coverage is not met.
## 2.7.3
<a href="https://github.com/puppetlabs/rspec-puppet/compare/v2.7.2...v2.7.3"
class="btn btn-primary btn-inline pull-right">View Diff</a>
### Fixed
* Puppet 6 deferred functions are now evaluated and resolved as part of the
catalogue compilation process.
* If running with parallel\_tests, the resources that are filtered out of the
resource coverage report are now taken into account when merging the final
report, fixing false negative results that can occur.
## 2.7.2
<a href="https://github.com/puppetlabs/rspec-puppet/compare/v2.7.1...v2.7.2"
class="btn btn-primary btn-inline pull-right">View Diff</a>
### Changed
* Reverted the change introduced in 2.7.0 that reencoded resource parameter
values to modify their line endings.
## 2.7.1
<a href="https://github.com/puppetlabs/rspec-puppet/compare/v2.7.0...v2.7.1"
class="btn btn-primary btn-inline pull-right">View Diff</a>
### Fixed
* Fixed a bug that prevented the platform pretending/stubbing logic from being
temporarily disabled when loading Ruby code.
## 2.7.0
<a href="https://github.com/puppetlabs/rspec-puppet/compare/v2.6.15...v2.7.0"
class="btn btn-primary btn-inline pull-right">View Diff</a>
### Changed
* Official Puppet 6 support added.
* When testing resource parameter values, the values received from Puppet are
now reencoded before testing to ensure that the line endings (if present)
match the platform being tested.
* `vendormoduledir` and `basemodulepath` settings (introduced in Puppet 6) are
now configurable in rspec-puppet.
## 2.6.15
<a href="https://github.com/puppetlabs/rspec-puppet/compare/v2.6.14...v2.6.15"
class="btn btn-primary btn-inline pull-right">View Diff</a>
### Fixed
* Added a Puppet 6.x adapter so that rspec-puppet does not try to set removed
Puppet settings (specifically `trusted_server_facts`) when running tests
against the upcoming Puppet 6.0.0 release.
## 2.6.14
<a href="https://github.com/puppetlabs/rspec-puppet/compare/v2.6.13...v2.6.14"
class="btn btn-primary btn-inline pull-right">View Diff</a>
### Fixed
* If present, `Win32::Dir` will be used to managed the fixtures directory
junction on Windows as the builtin `File` module does not have complete
support for directory junctions on Ruby <= 2.1.
### Changed
* Resource coverage results are now exposed to the configured RSpec reporter
rather than only being printed to STDOUT.
* If running with parallel\_tests, resource coverage data is stored in
per-process temp files and merged at the end of the final rspec process,
allowing for a complete coverage report to be generated when splitting
a test suite across multiple rspec processes.
## 2.6.13
<a href="https://github.com/puppetlabs/rspec-puppet/compare/v2.6.12...v2.6.13"
class="btn btn-primary btn-inline pull-right">View Diff</a>
### Fixed
* rspec-puppet no longer attempts to set the `trusted_server_facts` Puppet
setting on Puppet 4.0.0, as the setting was only introduced in Puppet 4.1.0.
* Automatic `Selinux` stubbing introduced in 2.6.12 no longer assumes the use
of rspec-mocks. If rspec-mocks is not available, it will fall back to mocha
and finally fall back to doing nothing if neither is available.
## 2.6.12
<a href="https://github.com/puppetlabs/rspec-puppet/compare/v2.6.11...v2.6.12"
class="btn btn-primary btn-inline pull-right">View Diff</a>
### Fixed
* Updated `Win32::TaskScheduler` stubs to match the latest release of
`win32-taskscheduler`.
* The `os` structured fact is now correctly treated as a Hash when determining
the platform that rspec-puppet pretends to be.
* The default resources that Puppet adds to the catalogue (`Class[main]`,
`Class[Settings]`, etc) are now filtered out of the catalogue when using the
`have_resource_count` matcher, rather than simply subtracted from the
resource count. This allows the `have_resource_count` matcher to be used on
subsects of the catalogue (`exported_resources` for example).
* When running on Windows, rspec-puppet will now convert Puppet configuration
settings from `/dev/null` to `NUL`, preventing Puppet from automatically
creating directories like `C:\dev` when running tests on Windows as an
Administrator.
* When overriding fact values, rspec-puppet will now assign the stub facts
a weight of 1000 to ensure that they override the generated fact values from
Facter 3.x.
* `Selinux.is_selinux_enabled` is now automatically stubbed to return 0 to
disable any SELinux related apply-time validation of resources.
* When testing against Puppet 3.x, rspec-puppet will now honour the
`RSpec.configuration.parser` value when determining the module name to set
up the fixture symlink.
* When testing for the absence of a parameter using `only_with(:parameter_name
=> nil`), this will no longer incorrectly affect the expected parameter
count.
## 2.6.11
<a href="https://github.com/puppetlabs/rspec-puppet/compare/v2.6.10...v2.6.11"
class="btn btn-primary btn-inline pull-right">View Diff</a>
### Fixed
* The `server_facts` hash is now only built if
`RSpec.configuration.trusted_server_facts` is `true`. Previously, this was
always built but only used when enabled.
## 2.6.10
<a href="https://github.com/puppetlabs/rspec-puppet/compare/v2.6.9...v2.6.10"
class="btn btn-primary btn-inline pull-right">View Diff</a>
### Fixed
* Replaced deprecated `File.exists?` calls in `rspec-puppet-init` with
`File.exist?`, which behaves much more reliably in respect to symlinks.
* Stubbed out `Puppet::Util::Windows::Security.supports_acl?` when compiling
the catalogue as this check only make sense when applying the resources to
a host and prevents testing Windows File resources on non-Windows hosts.
* The cached default provider for native types is now reset before compiling
a new catalogue.
* Resource titles that contain single quotes are now rendered correctly,
allowing them to be tested.
* When pretending to be a different platform, the methods in
`Puppet::Util::Platform` are now stubbed after the catalogue has been
compiled, allowing path related logic in custom facts to behave as expected.
* A mock version of `Win32::TaskScheduler` has been added to rspec-puppet.
This will be loaded when running rspec-puppet on a non-Windows host in order
to allow testing of catalogues containing Scheduled\_task resources.
* Stubbed out the `manages_symlinks` feature on
`Puppet::Type::File::ProviderWindows` as this can only be evaluated at apply
time and prevents testing Windows File resources that manage symlinks on
non-Windows hosts.
* Fixed unhandled exception when testing resource parameters where the
expected value is an Array or a Hash and the actual value is a different
data type.
* A mock version of `Win32::Registry` has been added to rspec-puppet. This
will be loaded when running rspec-puppet on a non-Windows host in order to
allow testing of catalogues that contain Exec resources that use the
`powershell` provider from the `puppetlabs/puppetlabs-powershell` module.
* Fixed a case where the order in which tests are run can cause a resource
that is being tested to be falsely reported as untested in the coverage
report.
### Changed
* The tests for the `compile` matcher have been updated to support the new
error message format introduced in Puppet 5.3.4.
* The builtin `$server_facts` hash is now populated on versions of Puppet that
support it (Puppet >= 4.3). This is not currently enabled by default, but
can be enabled by setting `RSpec.configuration.trusted_server_facts` to
`true`.
* `$facts['os']['family']` and `$facts['os']['name']` are now checked when
determining if rspec-puppet needs to pretend to be running on a different
platform (previously only `$facts['operatingsystem']` and
`$facts['osfamily']` were used).
## 2.6.9
<a href="https://github.com/puppetlabs/rspec-puppet/compare/v2.6.8...v2.6.9"
class="btn btn-primary btn-inline pull-right">View Diff</a>
### Fixed
* Initialise Hiera 3 before loading any monkey patches to ensure that the
correct code is loaded for the actual platform running the tests.
## 2.6.8
<a href="https://github.com/puppetlabs/rspec-puppet/compare/v2.6.7...v2.6.8"
class="btn btn-primary btn-inline pull-right">View Diff</a>
### Fixed
* Performance regression with Puppet < 4.0.0 due to overly agressive cache
invalidation.
* Clarified rspec-puppet-init output when run inside a directory that does not
contain a `metadata.json` file.
## 2.6.7
<a href="https://github.com/puppetlabs/rspec-puppet/compare/v2.6.6...v2.6.7"
class="btn btn-primary btn-inline pull-right">View Diff</a>
### Fixed
* An issue where the optional minimum resource coverage check would throw an
exception when the coverage wasn't 100%.
## 2.6.6
<a href="https://github.com/puppetlabs/rspec-puppet/compare/v2.6.5...v2.6.6"
class="btn btn-primary btn-inline pull-right">View Diff</a>
### Fixed
* Fixed an issue caused by `Puppet::Util.get_env` when pretending to be a
Windows host.
## 2.6.5
<a href="https://github.com/puppetlabs/rspec-puppet/compare/v2.6.4...v2.6.5"
class="btn btn-primary btn-inline pull-right">View Diff</a>
### Changed
* `derive_node_facts_from_nodename` setting added to disable the overriding of
`fqdn`, `hostname`, and `domain` facts with values derived from the node
name specified with `let(:node)`.
### Fixed
* The `trusted_facts` hash now accepts symbol keys, matching the behaviour of
the `facts` hash.
* The modifications made to Puppet internals are now contained to rspec-puppet
examples, preventing them from bleeding out into other examples in the same
RSpec process (like Ruby unit tests).
* rspec-puppet no longer attempts to configure settings for Puppet 3.x
releases that they do not support.
## 2.6.4
<a href="https://github.com/puppetlabs/rspec-puppet/compare/v2.6.3...v2.6.4"
class="btn btn-primary btn-inline pull-right">View Diff</a>
### Fixed
* A regression that prevented environment names to be specified as a symbol.
* A regression that prevented the `environmentpath` setting from taking
effect.
* Stubbed out the automatic confines created by resource providers on their
specified commands, which was preventing the correct provider from being
assigned to a resource when performing cross-platform testing.
## 2.6.3
<a href="https://github.com/puppetlabs/rspec-puppet/compare/v2.6.2...v2.6.3"
class="btn btn-primary btn-inline pull-right">View Diff</a>
### Fixed
* Facts derived from the node name now only get merged on top of the facts
specified by `RSpec.configuration.default_facts` and `let(:facts)` if the
node name has been manually specified with `let(:node)`.
## 2.6.2
<a href="https://github.com/puppetlabs/rspec-puppet/compare/v2.6.1...v2.6.2"
class="btn btn-primary btn-inline pull-right">View Diff</a>
### Changed
* Puppet 5.0.x added to the CI test matrices.
* The automatic setup code now checks for the presence of `metadata.json` in
the working directory. If not present, it assumes that rspec-puppet is
running from inside a control repo instead of a module and skips creating
the `spec/fixtures` directory structure and link.
### Added
* A new configuration option has been added
(`RSpec.configuration.setup_fixtures`) that controls whether rspec-puppet
will manage the `spec/fixtures` link.
### Fixed
* A race condition when running rspec-puppet under parallel\_tests causing
errors when creating the `spec/fixtures` link.
* The contents of the `networking` fact hash is no longer cleared when merging
in the facts derived from the node name.
## 2.6.1
<a href="https://github.com/puppetlabs/rspec-puppet/compare/v2.6.0...v2.6.1"
class="btn btn-primary btn-inline pull-right">View Diff</a>
### Fixed
* 2.6.0 introduced a change to how resource titles are rendered in the test
manifest which caused them to get rendered as double quoted strings. This
caused a failure for tests of defined types that contained `$` characters
as Puppet would try and interpolate the values in the title as variable(s).
## 2.6.0
<a href="https://github.com/puppetlabs/rspec-puppet/compare/v2.5.0...v2.6.0"
class="btn btn-primary btn-inline pull-right">View Diff</a>
The Windows parity release. rspec-puppet now officially supports Windows. A lot
of work has been put in to support cross-platform tests, so that you can now
test your Windows manifests on \*nix, and your \*nix manifests on Windows.
### Changed
* Puppet settings are now applied as application overrides, allowing users to
call `Puppet.settings` directly to make changes to settings without them
getting clobbered by rspec-puppet.
* Improved support for setting up the `spec/fixtures/modules` link on Windows
by using directory junctions instead of symlinks, removing the need for
Administrator access.
* When testing for the absence of a parameter on a resource, the error message
now contains the value(s) of the parameter(s) that should be undefined.
* When testing a defined type, the defined type being tested is no longer part
of the coverage report.
* The cached catalogue will now be invalidated when hiera-puppet-helper users
change their `hiera_data` value.
* Multiple instances of a defined type can now be tested at once by providing
an array of strings with `let(:title)`.
* Explicitly specifying the type of an example group (`:type => :class`) now
takes precedence over the type inferred from the spec file's location.
* The manifest specified in `RSpec.configuration.manifest` (path to `site.pp`
for Puppet < 4.x) is now imported if specified on Puppet >= 4.x.
* Puppet functions called when testing a Puppet function now get executed in
the same scope as parent function.
### Added
* The module is now automatically linked into `spec/fixtures/modules` at the
start of the rspec-puppet run.
* CI testing of PRs on Windows via Appveyor.
* Support for setting node parameters (mocking the behaviour of an ENC or
Puppet Enterprise Console) using `let(:node_params)`.
* Support for injecting Puppet code at the end of the test code using
`let(:post_condition)`.
* Resource coverage reports for `host` specs.
* Puppet functions that take a lambda as a parameter can now be tested by
chaining `with_lambda` to the `run` matcher.
* Facts and trusted facts are now available when testing Puppet functions.
* Hiera configuration can now be specified when testing Puppet functions using
`let(:hiera_config)`.
* Trusted facts (`$trusted[]`) can now be specified in
`RSpec.configuration.default_trusted_facts` or by `let(:trusted_facts)`.
* `:default` is now a supported parameter value when passed in by
`let(:params)`.
* Support for testing Puppet data type aliases.
### Fixed
* Facts generated from the node name (as set by `let(:node)`) now take
precedence over the values specified in `RSpec.configuration.default_facts`
or by `let(:facts)`.
* Only fact names will now be converted to lowercase, not the fact values.
* Matchers now support resources where the namevar has a different value to
the title.
* Resources created outside of the module being tested by functions like
`create_resources` or `ensure_package` are no longer present in the coverage
report from Puppet 4.6 onwards.
* Guards have been put in place to prevent the possibility of rspec-puppet
getting stuck in an infinite recursion when testing the relationships
between resources.
* A full `spec/spec_helper.rb` file is now written out by `rspec-puppet-init`
to fix the `fixture_path` issue on new modules.
* The namevar of a resources is no longer taken into account when testing the
exact parameters of the resource with `only_with`.
* Minimum resource coverage check for RSpec <= 3.2.
* Resource parameters that take a hash as their value will no longer have that
hash converted into an array.
* Testing the value of a parameter with a Proc that returns `nil` now works as
expected.
* When testing Puppet functions, the function name is no longer automatically
coverted to lowercase.
* The value of `$::environment` is now forced to be a string as expected for
Puppet 4.0 - 4.3.
* app\_management is no longer enabled by rspec-puppet for Puppet >= 5.0 as it
is already enabled by default.
* Failing to provide parameters when testing an application now raises the
correct exception (`ArgumentError`).
* Ruby symbols in nested hashes or arrays are now converted into strings when
passed in by `let(:params)`.
* Namespaced resources are now correctly capitalised when being added to the
resource coverage filter.
## 2.5.0
<a href="https://github.com/puppetlabs/rspec-puppet/compare/v2.4.0...v2.5.0"
class="btn btn-primary btn-inline pull-right">View Diff</a>
Headline features are app management, nested hashes in params, and testing for
"internal" functions.
Thanks to everyone who contributed: Leo Arnold, Matt Schuchard, and Si Wilkins.
### Changed
* Updates to the README
* Improved Gemfile to work with older versions of Ruby
### Added
* Added support for app management testing
* Added support for nested hashes in params
* Added support for testing Puppet 4.x "internal" functions
* Link functions and types into test dir on setup
* Increased test coverage
## 2.4.0
<a href="https://github.com/puppetlabs/rspec-puppet/compare/v2.3.0...v2.4.0"
class="btn btn-primary btn-inline pull-right">View Diff</a>
This release now supports testing exported resources in the same way that
normal resources in the catalogue are tested. Access them in your examples
using `exported_resources`. See "Testing Exported Resources" in the README for
examples.
Thanks to Adrien Thebo, Arthur Gautier, Brett Gray and Nicholas Hinds, as well
as all the folks helping out on github for the contributions to this release.
### Changed
* Pulled a lot of the version specific code into separate classes to reduce
complexity and enable easier maintenance going forward.
### Added
* Added support for colon separated module\_path and environmentpath values
* Added support for setting a minimum threshold for the code coverage test
* Added code to reinitialise Puppet before each example in order to ensure
a consistent test environment.
## 2.3.2
<a href="https://github.com/puppetlabs/rspec-puppet/compare/v2.3.1...v2.3.2"
class="btn btn-primary btn-inline pull-right">View Diff</a>
Properly fix yesterday's issue by unsharing the cache key before passing the
data to Puppet. This also contains a new test matrix to avoid missing
a half-baked fix.
## 2.3.1
<a href="https://github.com/puppetlabs/rspec-puppet/compare/v2.3.0...v2.3.1"
class="btn btn-primary btn-inline pull-right">View Diff</a>
A quick workaround to re-enable testing with the recently released Puppet 3.8.5
and the soon to be released Puppet 4.3.2. See PUP-5743 for the gritty details.
Upgrade to this version if you hit the "undefined method \`resource' for
nil:NilClass" error.
## 2.3.0
<a href="https://github.com/puppetlabs/rspec-puppet/compare/v2.2.0...v2.3.0"
class="btn btn-primary btn-inline pull-right">View Diff</a>
rspec-puppet now supports testing custom types, `:undef` values in params,
structured facts, and checks resource dependencies recursively.
The settings in `module_path` and `manifest` are now respected throughout the
code base. The former default for `module_path` (`/etc/puppet/modules`) was
dropped to avoid accidentally poisoning the test environment with unrelated
code.
To reduce the maintenance overhead of boilerplate code, rspec-puppet now
provides some of the code that rspec-puppet-init deployed in helper files that
you can just `require` instead.
This release also reduces memory usage on bigger testsuites drastically by
reducing the caching of compiled catalogues.
Thanks to Adrien Thebo, Alex Harvey, Brian, Dan Bode, Dominic Cleal, Javier
Palacios, Jeff McCune, Jordan Moldow, Peter van Zetten, Raphael Pinson, Simon
Kohlmeyer, and Tristan Colgate for their contibutions to this release.
### Changed
* Limit the catalogue cache to 16 entries. Significant memory savings and
reduced runtime were observed in testing this.
* Prevent Puppet 3.x \_timestamp fact from invalidating the cache.
* Extracted catalogue cache from RSpec::Puppet::Support.
* Updates README to use the rspec 3 expect syntax, and additional
explanations.
* `contain_file(...).with_content(...)` will now only show the diff and not
the full contents of the file.
### Added
* Custom type testing example group and matcher
* before/require/subscribe/notify checking now searches recursively through
all dependencies. `File[a] -> File[b] -> File[c]` is now matched by
`contain_file('a').that_comes_before('File[c]')`, whereas earlier versions
would have missed that.
* Support structured facts with keys as symbols or strings
* rspec-puppet-init now creates smaller files, using rspec-puppet helpers,
instead of pasting code into the module.
* Added a list of related projects to the README.
### Fixed
* `compile.and_raise_error` now correctly considers successful compilation an
error.
* Puppet's `module_path` can now contain multiple entries and rspec-puppet
will configure Puppet to load code from all of them.
* Support running with rspec 2.99 again
* Non-class resources are now covered by the coverage code
* Autorequires checking doesn't abort on "undefined method \`[]' for
nil:NilClass"
* Improved documentation for hiera integration, added example spec
* Document the `scope` property.
## 2.2.0
<a href="https://github.com/puppetlabs/rspec-puppet/compare/v2.1.0...v2.2.0"
class="btn btn-primary btn-inline pull-right">View Diff</a>
### Added
* Added setting for ordering, strict\_variables, stringify\_facts, and
trusted\_node\_data.
* Exposed the scope in function example groups.
### Fixed
* rspec-puppet-init now works with Puppet 4
* Several fixes and enhancements for the `run` matcher
* Recompile the catalogue when the hiera config changes
## 2.1.0
<a href="https://github.com/puppetlabs/rspec-puppet/compare/v2.0.1...v2.1.0"
class="btn btn-primary btn-inline pull-right">View Diff</a>
### Added
* Puppet 4 support
* Ability to set `environment` with a let block
* Better function failure messages
### Fixed
* Filter fixtures out of coverage reports
* Fix functions accidentally modifying rspec function arguments
* Restructured TravisCI matrix (NB: Puppet 2.6 is no longer tested)
## 2.0.1
<a href="https://github.com/puppetlabs/rspec-puppet/compare/v2.0.0...v2.0.1"
class="btn btn-primary btn-inline pull-right">View Diff</a>
### Fixed
* Allow RSpec 2 to still be used
## 2.0.0
<a href="https://github.com/puppetlabs/rspec-puppet/compare/v1.0.1...v2.0.0"
class="btn btn-primary btn-inline pull-right">View Diff</a>
### Changed
* `subject` is now a lambda to enable catching of compilation failures.
### Added
* Ability to use RSpec 3
* Hiera integration
* Coverage reports
* Ability to test on the future parser
* Function tests now have access to the catalogue
* Add array of references support to the relationship matchers
### Fixed
* Better error messages and handling for parameters (`nil` and friends) and
dependency cycles
## 1.0.1
<a href="https://github.com/puppetlabs/rspec-puppet/compare/v1.0.0...v1.0.1"
class="btn btn-primary btn-inline pull-right">View Diff</a>
* Fixed bug where under certain circumstances a newline isn't added after the
user specified `pre_condition`, causing the catalogue compilation to fail.
* When comparing parameter values, munge the actual value into an array if the
expected value is an array with a single item.
## 1.0.0
<a href="https://github.com/puppetlabs/rspec-puppet/compare/v0.1.6...v1.0.0"
class="btn btn-primary btn-inline pull-right">View Diff</a>
* Added support for setting `confdir` inside the `RSpec.configure` block
* Added support for checking if all the dependencies in the graph have been met
* Added support for passing values to `without_*`
* Added matcher to count the number of resources in the catalogue of
a particular type
* Function matcher now checks if the specified error has been thrown
* Added `only_with` chain to the `contain_*` matchers to check if the resource
only has the specified parameters.
* Manifest matchers (`contain_*`, etc.) are now available when testing
functions
* Added support for passing Procs to `with_` and `without_` chains
* Fixed `.and_return(false)` when testing functions
* Removed the deprecated `create_resource` matcher
* Added `compile` matcher to check if the manifest compiles without any
dependency cycles
* Improved the Rakefile generated by `rspec-puppet-init`
* Fixed bug where RSpec fails when passed nil pre\_condition
* Added heira support
* Removed the dependency on puppetlabs\_spec\_helper
* Added implementation agnostic relationship matchers
* Puppet 3.2.x support
* Puppet 3.3.x support
* Improved matching of parameter values, now supports complex data types
* Fixed bug where RSpec fails when testing a define without specifying
parameters.
* Deprecated `include_class` matcher in favour of `contain_class`
## 0.1.6
<a href="https://github.com/puppetlabs/rspec-puppet/compare/v0.1.5...v0.1.6"
class="btn btn-primary btn-inline pull-right">View Diff</a>
* Allow an array of pre\_conditions
* Fix `object name is a symbol` error when a test on a function fails
* Puppet 3.1.x support
## 0.1.5
<a href="https://github.com/puppetlabs/rspec-puppet/compare/v0.1.4...v0.1.5"
class="btn btn-primary btn-inline pull-right">View Diff</a>
* Puppet 3.0.x support
## 0.1.4
<a href="https://github.com/puppetlabs/rspec-puppet/compare/v0.1.3...v0.1.4"
class="btn btn-primary btn-inline pull-right">View Diff</a>
* Improved catalogue caching for faster testing on the same compiled catalogue
* Add support for pre\_condition when testing functions
* Fix bug when specifying a array with a single value as a parameter
## 0.1.3
<a href="https://github.com/puppetlabs/rspec-puppet/compare/v0.1.1...v0.1.3"
class="btn btn-primary btn-inline pull-right">View Diff</a>
* Add support for testing the catalogue of a node
* Add Puppet[:config] as a supported option
* Add rspec-puppet-init helper script
* Chained methods added to description of contain\_\* matcher
* Add support for Ruby 1.9.x
## 0.1.1
<a href="https://github.com/puppetlabs/rspec-puppet/compare/v0.1.0...v0.1.1"
class="btn btn-primary btn-inline pull-right">View Diff</a>
* Add 'with' and 'without' chains to the 'contain\_' matcher to support
testing multiple parameters by supplying a Hash.
* Add support for passing regular expressions to 'with\_' and 'without\_'
chains.
## 0.1.0
<a href="https://github.com/puppetlabs/rspec-puppet/compare/v0.0.9...v0.1.0"
class="btn btn-primary btn-inline pull-right">View Diff</a>
* Add support for testing Puppet functions
## 0.0.9
<a href="https://github.com/puppetlabs/rspec-puppet/compare/v0.0.8...v0.0.9"
class="btn btn-primary btn-inline pull-right">View Diff</a>
* Add support for setting custom 'manifestdir', 'manifest' and 'templatedir'
Puppet config values
* Provide a default 'domain' fact
## 0.0.8
<a href="https://github.com/puppetlabs/rspec-puppet/compare/v0.0.7...v0.0.8"
class="btn btn-primary btn-inline pull-right">View Diff</a>
* Add support for fact names as Symbols
## 0.0.7
<a href="https://github.com/puppetlabs/rspec-puppet/compare/v0.0.6...v0.0.7"
class="btn btn-primary btn-inline pull-right">View Diff</a>
* Add 'without\_\*' chain to the 'contain\_\*' matcher to test for the absence
of parameters.
## 0.0.6
<a href="https://github.com/puppetlabs/rspec-puppet/compare/v0.0.7...v0.0.6"
class="btn btn-primary btn-inline pull-right">View Diff</a>
* Remove Faces API call for Puppet 2.7.x
* Remove quotes from resource references
## 0.0.5
<a href="https://github.com/puppetlabs/rspec-puppet/compare/v0.0.4...v0.0.5"
class="btn btn-primary btn-inline pull-right">View Diff</a>
* Fix 0.0.4 release (incorrect tag pushed for 0.0.4 release)
## 0.0.4
<a href="https://github.com/puppetlabs/rspec-puppet/compare/v0.0.3...v0.0.4"
class="btn btn-primary btn-inline pull-right">View Diff</a>
* DRY up catalogue compilation
* Add support for 'pre_condition' to allow the specification of external
dependencies for classes and defines
## 0.0.3
<a href="https://github.com/puppetlabs/rspec-puppet/compare/v0.0.2...v0.0.3"
class="btn btn-primary btn-inline pull-right">View Diff</a>
* Provide default 'hostname' and 'fqdn' facts
* Change generic resource matcher to support 'contain\_' as well as 'create\_'
* Support '\_\_' for resources/classes that contain '::'
## 0.0.2
* Initial release
|