This is a pass through test failures and deprecation warnings:
* Make all ambiguous `.with(..., key: val)` use explicit hashes to
prevent test failures for argument mismatch in Ruby 3.0
* Scope down all unbounded `raise_error` to address warnings (remove
one test that was revealed to be referencing a nonexistent variable
once the raise_error was scoped.)
* Update all `any_instance` usage to new syntax to address warnings
* Allow the service cache to be cleared and do so between some tests
* Fix a small bug in with_plugin's plugin not found code path (revealed
by a scoped and_raise)
This makes rspec print out one line per test, which helps verify
progress is being made when spying on CI jobs. GitHub Actions would not
show dots when you hopped in to view a running job, presumably because
its doing line-based streaming.
This ensures that we get the Ruby 3 keywords support that landed in that
version https://github.com/rspec/rspec-mocks/pull/1394
Unfortunately this does not magically fix our test failures, just
ensures that expectations are being handled properly across Ruby
versions going forward.
Update the Ruby service implementations to use the funcspec util
module for generating spec content. A helper method is now used
for generating a parent class for services to subclass which
automatically includes all required modules for usage.
There was a hash assignment that was overriding values when there were
multiple synced folders for a given implementation.
Includes some stub-tastic unit tests to help verify the hash munging
behavior does what it's supposed to do going forward.
When detecting the machine guest, first sort the guest plugins
by the number of ancestors. This allows for returning on the
first match instead of requiring running the detection process
on every registered guest plugin.