You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When sensitive values are compared and do not match, the produce error
message does not help for debugging:
```
1) postgresql::server::role with Password Datatype Sensitive[String] has alter role for "test" user with password as ****
Failure/Error:
is_expected.to contain_postgresql_psql('ALTER ROLE test ENCRYPTED PASSWORD ****')
.with('command' => sensitive('ALTER ROLE "test" ENCRYPTED PASSWORD \'new-pa$s\''),
'sensitive' => 'true',
'unless' => sensitive("SELECT 1 FROM pg_shadow WHERE usename = 'test' AND passwd = 'new-pa$s'"),
'port' => '5432')
expected that the catalogue would contain Postgresql_psql[ALTER ROLE test ENCRYPTED PASSWORD ****] with command set to Sensitive("ALTER ROLE \"test\" ENCRYPTED PASSWORD 'new-pa$s'") but it is set to #<Sensitive [value redacted]>, and parameter unless set to Sensitive("SELECT 1 FROM pg_shadow WHERE usename = 'test' AND passwd = 'new-pa$s'") but it is set to #<Sensitive [value redacted]>
Diff:
<The diff is empty, are your objects producing identical `#inspect` output?>
# ./spec/defines/server/role_spec.rb:56:in `block (3 levels) in <top (required)>'
# /usr/home/romain/.gem/ruby/3.0/bin/rspec:25:in `load'
# /usr/home/romain/.gem/ruby/3.0/bin/rspec:25:in `<main>'
```
With this change, the sensitive values are unwrapped and allow to spot
the missing unwraps in unit tests:
```
1) postgresql::server::role with Password Datatype Sensitive[String] has alter role for "test" user with password as ****
Failure/Error:
is_expected.to contain_postgresql_psql('ALTER ROLE test ENCRYPTED PASSWORD ****')
.with('command' => sensitive('ALTER ROLE "test" ENCRYPTED PASSWORD \'new-pa$s\''),
'sensitive' => 'true',
'unless' => sensitive("SELECT 1 FROM pg_shadow WHERE usename = 'test' AND passwd = 'new-pa$s'"),
'port' => '5432')
expected that the catalogue would contain Postgresql_psql[ALTER ROLE test ENCRYPTED PASSWORD ****] with command set to Sensitive("ALTER ROLE \"test\" ENCRYPTED PASSWORD 'new-pa$s'") but it is set to Sensitive("ALTER ROLE \"test\" ENCRYPTED PASSWORD 'Sensitive [value redacted]'"), and parameter unless set to Sensitive("SELECT 1 FROM pg_shadow WHERE usename = 'test' AND passwd = 'new-pa$s'") but it is set to Sensitive("SELECT 1 FROM pg_shadow WHERE usename = 'test' AND passwd = 'Sensitive [value redacted]'")
Diff:
@@ -1,4 +1,4 @@
-Sensitive("ALTER ROLE \"test\" ENCRYPTED PASSWORD 'new-pa$s'")
+Sensitive("ALTER ROLE \"test\" ENCRYPTED PASSWORD 'Sensitive [value redacted]'")
-Sensitive("SELECT 1 FROM pg_shadow WHERE usename = 'test' AND passwd = 'new-pa$s'")
+Sensitive("SELECT 1 FROM pg_shadow WHERE usename = 'test' AND passwd = 'Sensitive [value redacted]'")
```
0 commit comments