This might be silly, but do you test for other types beyond just a string here?  Keep in mind I don't know if this stuff is already limited / parsed in some way to only allow strings / ints.

```ruby
["later", :later, {}, [], nil].each do |timeout|
    it "should reject a non-integer (#{timeout.class}) value" do
      expect {
        resource[:timeout] = timeout
      }.to raise_error(Puppet::ResourceError, /The timeout must be an integer/)
    end
end
```