keycloak-admin 1.1.4 → 1.1.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (101) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/Dockerfile +24 -24
  3. data/.github/workflows/ci.yml +80 -80
  4. data/.gitignore +9 -9
  5. data/.rspec +2 -2
  6. data/CHANGELOG.md +23 -0
  7. data/Dockerfile +12 -12
  8. data/Gemfile +3 -3
  9. data/Gemfile.lock +1 -1
  10. data/MIT-LICENSE +20 -20
  11. data/README.md +20 -1
  12. data/bin/console +9 -9
  13. data/keycloak-admin.gemspec +24 -24
  14. data/lib/keycloak-admin/client/attack_detection_client.rb +41 -41
  15. data/lib/keycloak-admin/client/client.rb +56 -56
  16. data/lib/keycloak-admin/client/client_authz_permission_client.rb +80 -80
  17. data/lib/keycloak-admin/client/client_authz_policy_client.rb +75 -75
  18. data/lib/keycloak-admin/client/client_authz_resource_client.rb +92 -92
  19. data/lib/keycloak-admin/client/client_authz_scope_client.rb +70 -70
  20. data/lib/keycloak-admin/client/client_client.rb +71 -71
  21. data/lib/keycloak-admin/client/client_role_client.rb +20 -20
  22. data/lib/keycloak-admin/client/client_role_mappings_client.rb +32 -32
  23. data/lib/keycloak-admin/client/configurable_token_client.rb +35 -35
  24. data/lib/keycloak-admin/client/group_client.rb +148 -148
  25. data/lib/keycloak-admin/client/identity_provider_client.rb +51 -51
  26. data/lib/keycloak-admin/client/organization_client.rb +245 -0
  27. data/lib/keycloak-admin/client/realm_client.rb +126 -122
  28. data/lib/keycloak-admin/client/role_client.rb +59 -59
  29. data/lib/keycloak-admin/client/role_mapper_client.rb +47 -47
  30. data/lib/keycloak-admin/client/token_client.rb +29 -29
  31. data/lib/keycloak-admin/client/user_client.rb +278 -266
  32. data/lib/keycloak-admin/configuration.rb +52 -52
  33. data/lib/keycloak-admin/representation/attack_detection_representation.rb +17 -17
  34. data/lib/keycloak-admin/representation/camel_json.rb +12 -12
  35. data/lib/keycloak-admin/representation/client_authz_permission_representation.rb +33 -33
  36. data/lib/keycloak-admin/representation/client_authz_policy_config_representation.rb +14 -14
  37. data/lib/keycloak-admin/representation/client_authz_policy_representation.rb +26 -26
  38. data/lib/keycloak-admin/representation/client_authz_resource_representation.rb +25 -25
  39. data/lib/keycloak-admin/representation/client_authz_scope_representation.rb +16 -16
  40. data/lib/keycloak-admin/representation/client_representation.rb +71 -71
  41. data/lib/keycloak-admin/representation/credential_representation.rb +71 -38
  42. data/lib/keycloak-admin/representation/federated_identity_representation.rb +15 -15
  43. data/lib/keycloak-admin/representation/group_representation.rb +21 -21
  44. data/lib/keycloak-admin/representation/identity_provider_mapper_representation.rb +19 -19
  45. data/lib/keycloak-admin/representation/identity_provider_representation.rb +71 -67
  46. data/lib/keycloak-admin/representation/impersonation_redirection_representation.rb +16 -16
  47. data/lib/keycloak-admin/representation/impersonation_representation.rb +43 -43
  48. data/lib/keycloak-admin/representation/member_representation.rb +11 -0
  49. data/lib/keycloak-admin/representation/organization_domain_representation.rb +18 -0
  50. data/lib/keycloak-admin/representation/organization_representation.rb +30 -0
  51. data/lib/keycloak-admin/representation/protocol_mapper_representation.rb +19 -19
  52. data/lib/keycloak-admin/representation/realm_representation.rb +14 -14
  53. data/lib/keycloak-admin/representation/representation.rb +23 -23
  54. data/lib/keycloak-admin/representation/role_representation.rb +19 -19
  55. data/lib/keycloak-admin/representation/session_representation.rb +22 -22
  56. data/lib/keycloak-admin/representation/token_representation.rb +39 -39
  57. data/lib/keycloak-admin/representation/user_representation.rb +47 -47
  58. data/lib/keycloak-admin/resource/base_role_containing_resource.rb +28 -28
  59. data/lib/keycloak-admin/resource/group_resource.rb +11 -11
  60. data/lib/keycloak-admin/resource/user_resource.rb +7 -7
  61. data/lib/keycloak-admin/version.rb +3 -3
  62. data/lib/keycloak-admin.rb +88 -84
  63. data/spec/client/attack_detection_client_spec.rb +102 -102
  64. data/spec/client/client_authz_permission_client_spec.rb +170 -170
  65. data/spec/client/client_authz_policy_client_spec.rb +169 -169
  66. data/spec/client/client_authz_resource_client_spec.rb +150 -150
  67. data/spec/client/client_authz_scope_client_spec.rb +133 -133
  68. data/spec/client/client_client_spec.rb +133 -133
  69. data/spec/client/client_role_mappings_client_spec.rb +82 -82
  70. data/spec/client/client_spec.rb +28 -28
  71. data/spec/client/configurable_token_client_spec.rb +34 -34
  72. data/spec/client/group_client_spec.rb +328 -328
  73. data/spec/client/identity_provider_client_spec.rb +92 -92
  74. data/spec/client/organization_client_spec.rb +595 -0
  75. data/spec/client/realm_client_spec.rb +155 -155
  76. data/spec/client/role_client_spec.rb +79 -79
  77. data/spec/client/role_mapper_client_spec.rb +113 -113
  78. data/spec/client/token_client_spec.rb +68 -68
  79. data/spec/client/user_client_spec.rb +418 -373
  80. data/spec/configuration_spec.rb +113 -113
  81. data/spec/integration/client_authorization_spec.rb +93 -93
  82. data/spec/representation/attack_detection_representation_spec.rb +15 -15
  83. data/spec/representation/client_authz_permission_representation_spec.rb +52 -52
  84. data/spec/representation/client_authz_policy_representation_spec.rb +46 -46
  85. data/spec/representation/client_authz_resource_representation_spec.rb +33 -33
  86. data/spec/representation/client_authz_scope_representation_spec.rb +18 -18
  87. data/spec/representation/client_representation_spec.rb +119 -119
  88. data/spec/representation/credential_representation_spec.rb +68 -0
  89. data/spec/representation/group_representation_spec.rb +22 -22
  90. data/spec/representation/identity_provider_mapper_representation_spec.rb +24 -24
  91. data/spec/representation/identity_provider_representation_spec.rb +113 -113
  92. data/spec/representation/impersonation_representation_spec.rb +163 -163
  93. data/spec/representation/organization_representation_spec.rb +64 -0
  94. data/spec/representation/protocol_mapper_representation_spec.rb +57 -57
  95. data/spec/representation/role_representation_spec.rb +37 -37
  96. data/spec/representation/session_representation_spec.rb +15 -15
  97. data/spec/representation/user_representation_spec.rb +15 -15
  98. data/spec/resource/group_resource_spec.rb +14 -14
  99. data/spec/resource/user_resource_spec.rb +14 -14
  100. data/spec/spec_helper.rb +37 -37
  101. metadata +13 -6
@@ -1,170 +1,170 @@
1
- RSpec.describe KeycloakAdmin::ClientAuthzPolicyClient do
2
-
3
- describe '#initialize' do
4
- let(:realm_name) { nil }
5
- let(:type) { :role }
6
- before(:each) do
7
- @realm = KeycloakAdmin.realm(realm_name)
8
- end
9
-
10
- context "when realm_name is defined" do
11
- let(:realm_name) { "master" }
12
- it "does not raise any error" do
13
- expect {
14
- @realm.authz_policies("", type)
15
- }.to_not raise_error
16
- end
17
- end
18
-
19
- context "when realm_name is not defined" do
20
- let(:realm_name) { nil }
21
- it "raises any error" do
22
- expect {
23
- @realm.authz_policies("", type)
24
- }.to raise_error(ArgumentError)
25
- end
26
- end
27
-
28
- context "when type is bad value" do
29
- let(:realm_name) { "master" }
30
- let(:type) { "bad-type" }
31
- it "does not raise any error" do
32
- expect {
33
- @realm.authz_policies("", type)
34
- }.to raise_error(ArgumentError)
35
- end
36
- end
37
- end
38
-
39
- describe '#create!' do
40
- let(:realm_name) { "valid-realm" }
41
- let(:client_id) { "valid-client-id" }
42
- let(:type) { :role }
43
- let(:name) { "policy name" }
44
- let(:description) { "policy description" }
45
- let(:logic) { "POSITIVE" }
46
- let(:decision_strategy) { "UNANIMOUS" }
47
- let(:fetch_roles) { true }
48
- let(:config) { { roles: [{ id: "1d305dbe-6379-4900-8e63-96541006160a", required: false }] } }
49
- let(:client_authz_policy){ KeycloakAdmin.realm(realm_name).authz_policies(client_id, type) }
50
-
51
- before(:each) do
52
- stub_token_client
53
- allow_any_instance_of(RestClient::Resource).to receive(:post).and_return '{"id":"234f6f33-ef03-4f3f-a8c0-ad7bca27b720","name":"policy name","description":"policy description","type":"role","logic":"POSITIVE","decisionStrategy":"UNANIMOUS","config":{"roles":"[{\"id\":\"1d305dbe-6379-4900-8e63-96541006160a\",\"required\":false}]"}}'
54
- end
55
-
56
- it "creates a new authz policy" do
57
- response = client_authz_policy.create!(name, description, type, logic, decision_strategy, fetch_roles, config[:roles])
58
- expect(response.id).to eq "234f6f33-ef03-4f3f-a8c0-ad7bca27b720"
59
- expect(response.name).to eq "policy name"
60
- expect(response.type).to eq "role"
61
- expect(response.logic).to eq "POSITIVE"
62
- expect(response.decision_strategy).to eq "UNANIMOUS"
63
- expect(response.config.roles[0].id).to eq "1d305dbe-6379-4900-8e63-96541006160a"
64
- end
65
- end
66
-
67
- describe '#get' do
68
- let(:realm_name) { "valid-realm" }
69
- let(:client_id) { "valid-client-id" }
70
- let(:type) { :role }
71
- let(:policy_id) { "234f6f33-ef03-4f3f-a8c0-ad7bca27b720" }
72
- let(:client_authz_policy){ KeycloakAdmin.realm(realm_name).authz_policies(client_id, type) }
73
- before(:each) do
74
- stub_token_client
75
- allow_any_instance_of(RestClient::Resource).to receive(:get).and_return '{"id":"234f6f33-ef03-4f3f-a8c0-ad7bca27b720","name":"policy name","description":"policy description","type":"role","logic":"POSITIVE","decisionStrategy":"UNANIMOUS","config":{"roles":"[{\"id\":\"1d305dbe-6379-4900-8e63-96541006160a\",\"required\":false}]"}}'
76
- end
77
-
78
- it "returns an authz policy" do
79
- response = client_authz_policy.get(policy_id)
80
- expect(response.id).to eq "234f6f33-ef03-4f3f-a8c0-ad7bca27b720"
81
- expect(response.name).to eq "policy name"
82
- expect(response.type).to eq "role"
83
- expect(response.logic).to eq "POSITIVE"
84
- expect(response.decision_strategy).to eq "UNANIMOUS"
85
- expect(response.config.roles[0].id).to eq "1d305dbe-6379-4900-8e63-96541006160a"
86
- end
87
- end
88
-
89
- describe '#find_by' do
90
- let(:realm_name) { "valid-realm" }
91
- let(:client_id) { "valid-client-id" }
92
- let(:type) { :role }
93
- let(:name) { "policy name" }
94
- let(:client_authz_policy){ KeycloakAdmin.realm(realm_name).authz_policies(client_id, type) }
95
- before(:each) do
96
- stub_token_client
97
- allow_any_instance_of(RestClient::Resource).to receive(:get).and_return '[{"id":"234f6f33-ef03-4f3f-a8c0-ad7bca27b720","name":"policy name","description":"policy description","type":"role","logic":"POSITIVE","decisionStrategy":"UNANIMOUS","config":{"roles":"[{\"id\":\"1d305dbe-6379-4900-8e63-96541006160a\",\"required\":false}]"}}]'
98
- end
99
-
100
- it "returns list of authz policies" do
101
- response = client_authz_policy.find_by(name, type)
102
- expect(response.size).to eq 1
103
- expect(response[0].id).to eq "234f6f33-ef03-4f3f-a8c0-ad7bca27b720"
104
- expect(response[0].name).to eq "policy name"
105
- expect(response[0].type).to eq "role"
106
- expect(response[0].logic).to eq "POSITIVE"
107
- expect(response[0].decision_strategy).to eq "UNANIMOUS"
108
- expect(response[0].config.roles[0].id).to eq "1d305dbe-6379-4900-8e63-96541006160a"
109
- end
110
- end
111
-
112
- describe '#delete' do
113
- let(:realm_name) { "valid-realm" }
114
- let(:client_id) { "valid-client-id" }
115
- let(:type) { :role }
116
- let(:policy_id) { "234f6f33-ef03-4f3f-a8c0-ad7bca27b720" }
117
- before(:each) do
118
- @client_authz_policy = KeycloakAdmin.realm(realm_name).authz_policies(client_id, type)
119
- stub_token_client
120
- allow_any_instance_of(RestClient::Resource).to receive(:delete).and_return 'true'
121
- end
122
-
123
- it "deletes an authz policy" do
124
- response = @client_authz_policy.delete(policy_id)
125
- expect(response).to eq true
126
- end
127
- end
128
-
129
- describe '#list' do
130
- let(:realm_name) { "valid-realm" }
131
- let(:client_id) { "valid-client-id" }
132
- let(:type) { :role }
133
- before(:each) do
134
- @client_authz_policy = KeycloakAdmin.realm(realm_name).authz_policies(client_id, type)
135
- stub_token_client
136
- allow_any_instance_of(RestClient::Resource).to receive(:get).and_return '[{"id":"234f6f33-ef03-4f3f-a8c0-ad7bca27b720","name":"policy name","description":"policy description","type":"role","logic":"POSITIVE","decisionStrategy":"UNANIMOUS","config":{"roles":"[{\"id\":\"1d305dbe-6379-4900-8e63-96541006160a\",\"required\":false}]"}}]'
137
- end
138
-
139
- it "returns list of authz policies" do
140
- response = @client_authz_policy.list
141
- expect(response.size).to eq 1
142
- expect(response[0].id).to eq "234f6f33-ef03-4f3f-a8c0-ad7bca27b720"
143
- expect(response[0].name).to eq "policy name"
144
- expect(response[0].type).to eq "role"
145
- expect(response[0].logic).to eq "POSITIVE"
146
- expect(response[0].decision_strategy).to eq "UNANIMOUS"
147
- expect(response[0].config.roles[0].id).to eq "1d305dbe-6379-4900-8e63-96541006160a"
148
- end
149
- end
150
-
151
- describe '#authz_policy_url' do
152
- let(:realm_name) { "valid-realm" }
153
- let(:client_id) { "valid-client-id" }
154
- let(:type) { :role }
155
- let(:client_authz_policy){ KeycloakAdmin.realm(realm_name).authz_policies(client_id, type) }
156
-
157
- context 'when policy_id is nil' do
158
- let(:policy_id) { nil }
159
- it "return a proper url" do
160
- expect(client_authz_policy.authz_policy_url(client_id, type, policy_id)).to eq "http://auth.service.io/auth/admin/realms/valid-realm/clients/valid-client-id/authz/resource-server/policy/role?permission=false"
161
- end
162
- end
163
- context 'when policy_id is not nil' do
164
- let(:policy_id) { "234f6f33-ef03-4f3f-a8c0-ad7bca27b720" }
165
- it "return a proper url" do
166
- expect(client_authz_policy.authz_policy_url(client_id, type, policy_id)).to eq "http://auth.service.io/auth/admin/realms/valid-realm/clients/valid-client-id/authz/resource-server/policy/role/234f6f33-ef03-4f3f-a8c0-ad7bca27b720"
167
- end
168
- end
169
- end
1
+ RSpec.describe KeycloakAdmin::ClientAuthzPolicyClient do
2
+
3
+ describe '#initialize' do
4
+ let(:realm_name) { nil }
5
+ let(:type) { :role }
6
+ before(:each) do
7
+ @realm = KeycloakAdmin.realm(realm_name)
8
+ end
9
+
10
+ context "when realm_name is defined" do
11
+ let(:realm_name) { "master" }
12
+ it "does not raise any error" do
13
+ expect {
14
+ @realm.authz_policies("", type)
15
+ }.to_not raise_error
16
+ end
17
+ end
18
+
19
+ context "when realm_name is not defined" do
20
+ let(:realm_name) { nil }
21
+ it "raises any error" do
22
+ expect {
23
+ @realm.authz_policies("", type)
24
+ }.to raise_error(ArgumentError)
25
+ end
26
+ end
27
+
28
+ context "when type is bad value" do
29
+ let(:realm_name) { "master" }
30
+ let(:type) { "bad-type" }
31
+ it "does not raise any error" do
32
+ expect {
33
+ @realm.authz_policies("", type)
34
+ }.to raise_error(ArgumentError)
35
+ end
36
+ end
37
+ end
38
+
39
+ describe '#create!' do
40
+ let(:realm_name) { "valid-realm" }
41
+ let(:client_id) { "valid-client-id" }
42
+ let(:type) { :role }
43
+ let(:name) { "policy name" }
44
+ let(:description) { "policy description" }
45
+ let(:logic) { "POSITIVE" }
46
+ let(:decision_strategy) { "UNANIMOUS" }
47
+ let(:fetch_roles) { true }
48
+ let(:config) { { roles: [{ id: "1d305dbe-6379-4900-8e63-96541006160a", required: false }] } }
49
+ let(:client_authz_policy){ KeycloakAdmin.realm(realm_name).authz_policies(client_id, type) }
50
+
51
+ before(:each) do
52
+ stub_token_client
53
+ allow_any_instance_of(RestClient::Resource).to receive(:post).and_return '{"id":"234f6f33-ef03-4f3f-a8c0-ad7bca27b720","name":"policy name","description":"policy description","type":"role","logic":"POSITIVE","decisionStrategy":"UNANIMOUS","config":{"roles":"[{\"id\":\"1d305dbe-6379-4900-8e63-96541006160a\",\"required\":false}]"}}'
54
+ end
55
+
56
+ it "creates a new authz policy" do
57
+ response = client_authz_policy.create!(name, description, type, logic, decision_strategy, fetch_roles, config[:roles])
58
+ expect(response.id).to eq "234f6f33-ef03-4f3f-a8c0-ad7bca27b720"
59
+ expect(response.name).to eq "policy name"
60
+ expect(response.type).to eq "role"
61
+ expect(response.logic).to eq "POSITIVE"
62
+ expect(response.decision_strategy).to eq "UNANIMOUS"
63
+ expect(response.config.roles[0].id).to eq "1d305dbe-6379-4900-8e63-96541006160a"
64
+ end
65
+ end
66
+
67
+ describe '#get' do
68
+ let(:realm_name) { "valid-realm" }
69
+ let(:client_id) { "valid-client-id" }
70
+ let(:type) { :role }
71
+ let(:policy_id) { "234f6f33-ef03-4f3f-a8c0-ad7bca27b720" }
72
+ let(:client_authz_policy){ KeycloakAdmin.realm(realm_name).authz_policies(client_id, type) }
73
+ before(:each) do
74
+ stub_token_client
75
+ allow_any_instance_of(RestClient::Resource).to receive(:get).and_return '{"id":"234f6f33-ef03-4f3f-a8c0-ad7bca27b720","name":"policy name","description":"policy description","type":"role","logic":"POSITIVE","decisionStrategy":"UNANIMOUS","config":{"roles":"[{\"id\":\"1d305dbe-6379-4900-8e63-96541006160a\",\"required\":false}]"}}'
76
+ end
77
+
78
+ it "returns an authz policy" do
79
+ response = client_authz_policy.get(policy_id)
80
+ expect(response.id).to eq "234f6f33-ef03-4f3f-a8c0-ad7bca27b720"
81
+ expect(response.name).to eq "policy name"
82
+ expect(response.type).to eq "role"
83
+ expect(response.logic).to eq "POSITIVE"
84
+ expect(response.decision_strategy).to eq "UNANIMOUS"
85
+ expect(response.config.roles[0].id).to eq "1d305dbe-6379-4900-8e63-96541006160a"
86
+ end
87
+ end
88
+
89
+ describe '#find_by' do
90
+ let(:realm_name) { "valid-realm" }
91
+ let(:client_id) { "valid-client-id" }
92
+ let(:type) { :role }
93
+ let(:name) { "policy name" }
94
+ let(:client_authz_policy){ KeycloakAdmin.realm(realm_name).authz_policies(client_id, type) }
95
+ before(:each) do
96
+ stub_token_client
97
+ allow_any_instance_of(RestClient::Resource).to receive(:get).and_return '[{"id":"234f6f33-ef03-4f3f-a8c0-ad7bca27b720","name":"policy name","description":"policy description","type":"role","logic":"POSITIVE","decisionStrategy":"UNANIMOUS","config":{"roles":"[{\"id\":\"1d305dbe-6379-4900-8e63-96541006160a\",\"required\":false}]"}}]'
98
+ end
99
+
100
+ it "returns list of authz policies" do
101
+ response = client_authz_policy.find_by(name, type)
102
+ expect(response.size).to eq 1
103
+ expect(response[0].id).to eq "234f6f33-ef03-4f3f-a8c0-ad7bca27b720"
104
+ expect(response[0].name).to eq "policy name"
105
+ expect(response[0].type).to eq "role"
106
+ expect(response[0].logic).to eq "POSITIVE"
107
+ expect(response[0].decision_strategy).to eq "UNANIMOUS"
108
+ expect(response[0].config.roles[0].id).to eq "1d305dbe-6379-4900-8e63-96541006160a"
109
+ end
110
+ end
111
+
112
+ describe '#delete' do
113
+ let(:realm_name) { "valid-realm" }
114
+ let(:client_id) { "valid-client-id" }
115
+ let(:type) { :role }
116
+ let(:policy_id) { "234f6f33-ef03-4f3f-a8c0-ad7bca27b720" }
117
+ before(:each) do
118
+ @client_authz_policy = KeycloakAdmin.realm(realm_name).authz_policies(client_id, type)
119
+ stub_token_client
120
+ allow_any_instance_of(RestClient::Resource).to receive(:delete).and_return 'true'
121
+ end
122
+
123
+ it "deletes an authz policy" do
124
+ response = @client_authz_policy.delete(policy_id)
125
+ expect(response).to eq true
126
+ end
127
+ end
128
+
129
+ describe '#list' do
130
+ let(:realm_name) { "valid-realm" }
131
+ let(:client_id) { "valid-client-id" }
132
+ let(:type) { :role }
133
+ before(:each) do
134
+ @client_authz_policy = KeycloakAdmin.realm(realm_name).authz_policies(client_id, type)
135
+ stub_token_client
136
+ allow_any_instance_of(RestClient::Resource).to receive(:get).and_return '[{"id":"234f6f33-ef03-4f3f-a8c0-ad7bca27b720","name":"policy name","description":"policy description","type":"role","logic":"POSITIVE","decisionStrategy":"UNANIMOUS","config":{"roles":"[{\"id\":\"1d305dbe-6379-4900-8e63-96541006160a\",\"required\":false}]"}}]'
137
+ end
138
+
139
+ it "returns list of authz policies" do
140
+ response = @client_authz_policy.list
141
+ expect(response.size).to eq 1
142
+ expect(response[0].id).to eq "234f6f33-ef03-4f3f-a8c0-ad7bca27b720"
143
+ expect(response[0].name).to eq "policy name"
144
+ expect(response[0].type).to eq "role"
145
+ expect(response[0].logic).to eq "POSITIVE"
146
+ expect(response[0].decision_strategy).to eq "UNANIMOUS"
147
+ expect(response[0].config.roles[0].id).to eq "1d305dbe-6379-4900-8e63-96541006160a"
148
+ end
149
+ end
150
+
151
+ describe '#authz_policy_url' do
152
+ let(:realm_name) { "valid-realm" }
153
+ let(:client_id) { "valid-client-id" }
154
+ let(:type) { :role }
155
+ let(:client_authz_policy){ KeycloakAdmin.realm(realm_name).authz_policies(client_id, type) }
156
+
157
+ context 'when policy_id is nil' do
158
+ let(:policy_id) { nil }
159
+ it "return a proper url" do
160
+ expect(client_authz_policy.authz_policy_url(client_id, type, policy_id)).to eq "http://auth.service.io/auth/admin/realms/valid-realm/clients/valid-client-id/authz/resource-server/policy/role?permission=false"
161
+ end
162
+ end
163
+ context 'when policy_id is not nil' do
164
+ let(:policy_id) { "234f6f33-ef03-4f3f-a8c0-ad7bca27b720" }
165
+ it "return a proper url" do
166
+ expect(client_authz_policy.authz_policy_url(client_id, type, policy_id)).to eq "http://auth.service.io/auth/admin/realms/valid-realm/clients/valid-client-id/authz/resource-server/policy/role/234f6f33-ef03-4f3f-a8c0-ad7bca27b720"
167
+ end
168
+ end
169
+ end
170
170
  end