workos 9.1.0 → 9.3.0
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.
- checksums.yaml +4 -4
- data/.github/workflows/release-please.yml +42 -83
- data/.last-synced-sha +1 -1
- data/.oagen-manifest.json +74 -3
- data/.release-please-manifest.json +1 -1
- data/CHANGELOG.md +64 -0
- data/Gemfile.lock +2 -2
- data/lib/workos/authorization/create_group_role_assignment.rb +7 -0
- data/lib/workos/authorization/delete_group_role_assignments_by_criteria.rb +7 -0
- data/lib/workos/authorization/group_role_assignment.rb +37 -0
- data/lib/workos/authorization/group_role_assignment_list.rb +25 -0
- data/lib/workos/authorization/group_role_assignment_resource.rb +25 -0
- data/lib/workos/authorization/replace_group_role_assignment_entry.rb +7 -0
- data/lib/workos/authorization/replace_group_role_assignments.rb +18 -0
- data/lib/workos/authorization/user_role_assignment_resource.rb +1 -19
- data/lib/workos/authorization.rb +180 -0
- data/lib/workos/client.rb +8 -0
- data/lib/workos/client_api/client_api_token.rb +22 -0
- data/lib/workos/client_api/client_api_token_response.rb +18 -0
- data/lib/workos/client_api.rb +39 -0
- data/lib/workos/organization_membership/organization_membership.rb +3 -0
- data/lib/workos/organization_membership/user_organization_membership.rb +3 -0
- data/lib/workos/pipes/connected_account.rb +6 -0
- data/lib/workos/pipes/data_integrations_list_response_data.rb +3 -0
- data/lib/workos/pipes/data_integrations_list_response_data_connected_account.rb +6 -0
- data/lib/workos/pipes.rb +5 -5
- data/lib/workos/pipes_provider/configure_data_integration_body.rb +28 -0
- data/lib/workos/pipes_provider/data_integration_configuration_list_response.rb +22 -0
- data/lib/workos/pipes_provider/data_integration_configuration_response.rb +46 -0
- data/lib/workos/pipes_provider/data_integration_credentials.rb +31 -0
- data/lib/workos/pipes_provider.rb +68 -0
- data/lib/workos/types/connected_account_auth_method.rb +13 -0
- data/lib/workos/types/data_integration_access_token_response_error.rb +2 -2
- data/lib/workos/types/data_integration_credentials_credentials_type.rb +14 -0
- data/lib/workos/types/data_integrations_list_response_data_auth_methods.rb +9 -0
- data/lib/workos/types/data_integrations_list_response_data_connected_account_auth_method.rb +9 -0
- data/lib/workos/types/widget_session_token_scopes.rb +2 -1
- data/lib/workos/user_management.rb +1 -1
- data/lib/workos/version.rb +1 -1
- data/lib/workos/widgets/widget_session_token_response.rb +1 -12
- data/lib/workos.rb +2 -0
- data/rbi/workos/authorization.rbi +63 -0
- data/rbi/workos/authorization_code_session_authenticate_request.rbi +2 -2
- data/rbi/workos/client.rbi +6 -0
- data/rbi/workos/client_api.rbi +22 -0
- data/rbi/workos/client_api_token.rbi +30 -0
- data/rbi/workos/client_api_token_response.rbi +24 -0
- data/rbi/workos/configure_data_integration_body.rbi +42 -0
- data/rbi/workos/connected_account.rbi +12 -0
- data/rbi/workos/create_group_role_assignment.rbi +42 -0
- data/rbi/workos/data_integration_configuration_list_response.rbi +30 -0
- data/rbi/workos/data_integration_configuration_response.rbi +78 -0
- data/rbi/workos/data_integration_credentials.rbi +48 -0
- data/rbi/workos/data_integrations_list_response_data.rbi +6 -0
- data/rbi/workos/data_integrations_list_response_data_connected_account.rbi +12 -0
- data/rbi/workos/delete_group_role_assignments_by_criteria.rbi +42 -0
- data/rbi/workos/group_role_assignment.rbi +60 -0
- data/rbi/workos/group_role_assignment_resource.rbi +36 -0
- data/rbi/workos/organization_membership.rbi +6 -0
- data/rbi/workos/organization_membership_service.rbi +1 -1
- data/rbi/workos/pipes.rbi +2 -2
- data/rbi/workos/pipes_provider.rbi +34 -0
- data/rbi/workos/refresh_token_session_authenticate_request.rbi +2 -2
- data/rbi/workos/replace_group_role_assignment_entry.rbi +42 -0
- data/rbi/workos/replace_group_role_assignments.rbi +24 -0
- data/rbi/workos/user_management.rbi +3 -3
- data/rbi/workos/user_organization_membership.rbi +6 -0
- data/test/workos/test_authorization.rb +48 -0
- data/test/workos/test_client_api.rb +33 -0
- data/test/workos/test_model_round_trip.rb +222 -177
- data/test/workos/test_pipes.rb +3 -3
- data/test/workos/test_pipes_provider.rb +41 -0
- data/test/workos/test_user_management.rb +2 -2
- metadata +36 -1
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
# This file is auto-generated by oagen. Do not edit.
|
|
4
|
+
|
|
5
|
+
# typed: strong
|
|
6
|
+
|
|
7
|
+
module WorkOS
|
|
8
|
+
class GroupRoleAssignment
|
|
9
|
+
sig { params(json: T.any(String, T::Hash[Symbol, T.untyped])).void }
|
|
10
|
+
def initialize(json); end
|
|
11
|
+
|
|
12
|
+
sig { returns(String) }
|
|
13
|
+
def object; end
|
|
14
|
+
|
|
15
|
+
sig { params(value: String).returns(String) }
|
|
16
|
+
def object=(value); end
|
|
17
|
+
|
|
18
|
+
sig { returns(String) }
|
|
19
|
+
def id; end
|
|
20
|
+
|
|
21
|
+
sig { params(value: String).returns(String) }
|
|
22
|
+
def id=(value); end
|
|
23
|
+
|
|
24
|
+
sig { returns(String) }
|
|
25
|
+
def group_id; end
|
|
26
|
+
|
|
27
|
+
sig { params(value: String).returns(String) }
|
|
28
|
+
def group_id=(value); end
|
|
29
|
+
|
|
30
|
+
sig { returns(WorkOS::SlimRole) }
|
|
31
|
+
def role; end
|
|
32
|
+
|
|
33
|
+
sig { params(value: WorkOS::SlimRole).returns(WorkOS::SlimRole) }
|
|
34
|
+
def role=(value); end
|
|
35
|
+
|
|
36
|
+
sig { returns(WorkOS::GroupRoleAssignmentResource) }
|
|
37
|
+
def resource; end
|
|
38
|
+
|
|
39
|
+
sig { params(value: WorkOS::GroupRoleAssignmentResource).returns(WorkOS::GroupRoleAssignmentResource) }
|
|
40
|
+
def resource=(value); end
|
|
41
|
+
|
|
42
|
+
sig { returns(String) }
|
|
43
|
+
def created_at; end
|
|
44
|
+
|
|
45
|
+
sig { params(value: String).returns(String) }
|
|
46
|
+
def created_at=(value); end
|
|
47
|
+
|
|
48
|
+
sig { returns(String) }
|
|
49
|
+
def updated_at; end
|
|
50
|
+
|
|
51
|
+
sig { params(value: String).returns(String) }
|
|
52
|
+
def updated_at=(value); end
|
|
53
|
+
|
|
54
|
+
sig { returns(T::Hash[Symbol, T.untyped]) }
|
|
55
|
+
def to_h; end
|
|
56
|
+
|
|
57
|
+
sig { params(args: T.untyped).returns(String) }
|
|
58
|
+
def to_json(*args); end
|
|
59
|
+
end
|
|
60
|
+
end
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
# This file is auto-generated by oagen. Do not edit.
|
|
4
|
+
|
|
5
|
+
# typed: strong
|
|
6
|
+
|
|
7
|
+
module WorkOS
|
|
8
|
+
class GroupRoleAssignmentResource
|
|
9
|
+
sig { params(json: T.any(String, T::Hash[Symbol, T.untyped])).void }
|
|
10
|
+
def initialize(json); end
|
|
11
|
+
|
|
12
|
+
sig { returns(String) }
|
|
13
|
+
def id; end
|
|
14
|
+
|
|
15
|
+
sig { params(value: String).returns(String) }
|
|
16
|
+
def id=(value); end
|
|
17
|
+
|
|
18
|
+
sig { returns(String) }
|
|
19
|
+
def external_id; end
|
|
20
|
+
|
|
21
|
+
sig { params(value: String).returns(String) }
|
|
22
|
+
def external_id=(value); end
|
|
23
|
+
|
|
24
|
+
sig { returns(String) }
|
|
25
|
+
def resource_type_slug; end
|
|
26
|
+
|
|
27
|
+
sig { params(value: String).returns(String) }
|
|
28
|
+
def resource_type_slug=(value); end
|
|
29
|
+
|
|
30
|
+
sig { returns(T::Hash[Symbol, T.untyped]) }
|
|
31
|
+
def to_h; end
|
|
32
|
+
|
|
33
|
+
sig { params(args: T.untyped).returns(String) }
|
|
34
|
+
def to_json(*args); end
|
|
35
|
+
end
|
|
36
|
+
end
|
|
@@ -75,6 +75,12 @@ module WorkOS
|
|
|
75
75
|
sig { params(value: WorkOS::SlimRole).returns(WorkOS::SlimRole) }
|
|
76
76
|
def role=(value); end
|
|
77
77
|
|
|
78
|
+
sig { returns(T::Array[WorkOS::SlimRole]) }
|
|
79
|
+
def roles; end
|
|
80
|
+
|
|
81
|
+
sig { params(value: T::Array[WorkOS::SlimRole]).returns(T::Array[WorkOS::SlimRole]) }
|
|
82
|
+
def roles=(value); end
|
|
83
|
+
|
|
78
84
|
sig { returns(WorkOS::User) }
|
|
79
85
|
def user; end
|
|
80
86
|
|
|
@@ -43,7 +43,7 @@ module WorkOS
|
|
|
43
43
|
statuses: T.nilable(T::Array[String]),
|
|
44
44
|
user_id: T.nilable(String),
|
|
45
45
|
request_options: T::Hash[Symbol, T.untyped]
|
|
46
|
-
).returns(
|
|
46
|
+
).returns(WorkOS::Types::ListStruct)
|
|
47
47
|
end
|
|
48
48
|
def list_organization_memberships(before:, after:, limit:, order:, organization_id:, statuses:, user_id:, request_options:); end
|
|
49
49
|
|
data/rbi/workos/pipes.rbi
CHANGED
|
@@ -22,13 +22,13 @@ module WorkOS
|
|
|
22
22
|
|
|
23
23
|
sig do
|
|
24
24
|
params(
|
|
25
|
-
|
|
25
|
+
provider: String,
|
|
26
26
|
user_id: String,
|
|
27
27
|
organization_id: T.nilable(String),
|
|
28
28
|
request_options: T::Hash[Symbol, T.untyped]
|
|
29
29
|
).returns(WorkOS::DataIntegrationAccessTokenResponse)
|
|
30
30
|
end
|
|
31
|
-
def
|
|
31
|
+
def get_access_token(provider:, user_id:, organization_id:, request_options:); end
|
|
32
32
|
|
|
33
33
|
sig do
|
|
34
34
|
params(
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
# This file is auto-generated by oagen. Do not edit.
|
|
4
|
+
|
|
5
|
+
# typed: strong
|
|
6
|
+
|
|
7
|
+
module WorkOS
|
|
8
|
+
class PipesProvider
|
|
9
|
+
sig { params(client: WorkOS::BaseClient).void }
|
|
10
|
+
def initialize(client); end
|
|
11
|
+
|
|
12
|
+
sig do
|
|
13
|
+
params(
|
|
14
|
+
organization_id: String,
|
|
15
|
+
request_options: T::Hash[Symbol, T.untyped]
|
|
16
|
+
).returns(WorkOS::DataIntegrationConfigurationListResponse)
|
|
17
|
+
end
|
|
18
|
+
def list_organization_data_integration_configurations(organization_id:, request_options:); end
|
|
19
|
+
|
|
20
|
+
sig do
|
|
21
|
+
params(
|
|
22
|
+
organization_id: String,
|
|
23
|
+
slug: String,
|
|
24
|
+
enabled: T.nilable(T::Boolean),
|
|
25
|
+
scopes: T.nilable(T::Array[String]),
|
|
26
|
+
client_id: T.nilable(String),
|
|
27
|
+
client_secret: T.nilable(String),
|
|
28
|
+
request_options: T::Hash[Symbol, T.untyped]
|
|
29
|
+
).returns(WorkOS::DataIntegrationConfigurationResponse)
|
|
30
|
+
end
|
|
31
|
+
def update_organization_data_integration_configuration(organization_id:, slug:, enabled:, scopes:, client_id:, client_secret:, request_options:); end
|
|
32
|
+
|
|
33
|
+
end
|
|
34
|
+
end
|
|
@@ -15,10 +15,10 @@ module WorkOS
|
|
|
15
15
|
sig { params(value: String).returns(String) }
|
|
16
16
|
def client_id=(value); end
|
|
17
17
|
|
|
18
|
-
sig { returns(String) }
|
|
18
|
+
sig { returns(T.nilable(String)) }
|
|
19
19
|
def client_secret; end
|
|
20
20
|
|
|
21
|
-
sig { params(value: String).returns(String) }
|
|
21
|
+
sig { params(value: T.nilable(String)).returns(T.nilable(String)) }
|
|
22
22
|
def client_secret=(value); end
|
|
23
23
|
|
|
24
24
|
sig { returns(String) }
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
# This file is auto-generated by oagen. Do not edit.
|
|
4
|
+
|
|
5
|
+
# typed: strong
|
|
6
|
+
|
|
7
|
+
module WorkOS
|
|
8
|
+
class ReplaceGroupRoleAssignmentEntry
|
|
9
|
+
sig { params(json: T.any(String, T::Hash[Symbol, T.untyped])).void }
|
|
10
|
+
def initialize(json); end
|
|
11
|
+
|
|
12
|
+
sig { returns(String) }
|
|
13
|
+
def role_slug; end
|
|
14
|
+
|
|
15
|
+
sig { params(value: String).returns(String) }
|
|
16
|
+
def role_slug=(value); end
|
|
17
|
+
|
|
18
|
+
sig { returns(T.nilable(String)) }
|
|
19
|
+
def resource_id; end
|
|
20
|
+
|
|
21
|
+
sig { params(value: T.nilable(String)).returns(T.nilable(String)) }
|
|
22
|
+
def resource_id=(value); end
|
|
23
|
+
|
|
24
|
+
sig { returns(T.nilable(String)) }
|
|
25
|
+
def resource_external_id; end
|
|
26
|
+
|
|
27
|
+
sig { params(value: T.nilable(String)).returns(T.nilable(String)) }
|
|
28
|
+
def resource_external_id=(value); end
|
|
29
|
+
|
|
30
|
+
sig { returns(T.nilable(String)) }
|
|
31
|
+
def resource_type_slug; end
|
|
32
|
+
|
|
33
|
+
sig { params(value: T.nilable(String)).returns(T.nilable(String)) }
|
|
34
|
+
def resource_type_slug=(value); end
|
|
35
|
+
|
|
36
|
+
sig { returns(T::Hash[Symbol, T.untyped]) }
|
|
37
|
+
def to_h; end
|
|
38
|
+
|
|
39
|
+
sig { params(args: T.untyped).returns(String) }
|
|
40
|
+
def to_json(*args); end
|
|
41
|
+
end
|
|
42
|
+
end
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
# This file is auto-generated by oagen. Do not edit.
|
|
4
|
+
|
|
5
|
+
# typed: strong
|
|
6
|
+
|
|
7
|
+
module WorkOS
|
|
8
|
+
class ReplaceGroupRoleAssignments
|
|
9
|
+
sig { params(json: T.any(String, T::Hash[Symbol, T.untyped])).void }
|
|
10
|
+
def initialize(json); end
|
|
11
|
+
|
|
12
|
+
sig { returns(T::Array[WorkOS::ReplaceGroupRoleAssignmentEntry]) }
|
|
13
|
+
def role_assignments; end
|
|
14
|
+
|
|
15
|
+
sig { params(value: T::Array[WorkOS::ReplaceGroupRoleAssignmentEntry]).returns(T::Array[WorkOS::ReplaceGroupRoleAssignmentEntry]) }
|
|
16
|
+
def role_assignments=(value); end
|
|
17
|
+
|
|
18
|
+
sig { returns(T::Hash[Symbol, T.untyped]) }
|
|
19
|
+
def to_h; end
|
|
20
|
+
|
|
21
|
+
sig { params(args: T.untyped).returns(String) }
|
|
22
|
+
def to_json(*args); end
|
|
23
|
+
end
|
|
24
|
+
end
|
|
@@ -48,9 +48,9 @@ module WorkOS
|
|
|
48
48
|
sig do
|
|
49
49
|
params(
|
|
50
50
|
client_id: String,
|
|
51
|
-
client_secret: String,
|
|
52
51
|
grant_type: String,
|
|
53
52
|
code: String,
|
|
53
|
+
client_secret: T.nilable(String),
|
|
54
54
|
code_verifier: T.nilable(String),
|
|
55
55
|
invitation_token: T.nilable(String),
|
|
56
56
|
ip_address: T.nilable(String),
|
|
@@ -59,7 +59,7 @@ module WorkOS
|
|
|
59
59
|
request_options: T::Hash[Symbol, T.untyped]
|
|
60
60
|
).returns(WorkOS::AuthenticateResponse)
|
|
61
61
|
end
|
|
62
|
-
def create_authenticate(client_id:,
|
|
62
|
+
def create_authenticate(client_id:, grant_type:, code:, client_secret:, code_verifier:, invitation_token:, ip_address:, device_id:, user_agent:, request_options:); end
|
|
63
63
|
|
|
64
64
|
sig do
|
|
65
65
|
params(
|
|
@@ -252,7 +252,7 @@ module WorkOS
|
|
|
252
252
|
organization_id: T.nilable(String),
|
|
253
253
|
email: T.nilable(String),
|
|
254
254
|
request_options: T::Hash[Symbol, T.untyped]
|
|
255
|
-
).returns(
|
|
255
|
+
).returns(WorkOS::Types::ListStruct)
|
|
256
256
|
end
|
|
257
257
|
def list_invitations(before:, after:, limit:, order:, organization_id:, email:, request_options:); end
|
|
258
258
|
|
|
@@ -75,6 +75,12 @@ module WorkOS
|
|
|
75
75
|
sig { params(value: WorkOS::SlimRole).returns(WorkOS::SlimRole) }
|
|
76
76
|
def role=(value); end
|
|
77
77
|
|
|
78
|
+
sig { returns(T::Array[WorkOS::SlimRole]) }
|
|
79
|
+
def roles; end
|
|
80
|
+
|
|
81
|
+
sig { params(value: T::Array[WorkOS::SlimRole]).returns(T::Array[WorkOS::SlimRole]) }
|
|
82
|
+
def roles=(value); end
|
|
83
|
+
|
|
78
84
|
sig { returns(WorkOS::User) }
|
|
79
85
|
def user; end
|
|
80
86
|
|
|
@@ -11,6 +11,48 @@ class AuthorizationTest < Minitest::Test
|
|
|
11
11
|
@client = WorkOS::Client.new(api_key: "sk_test_123")
|
|
12
12
|
end
|
|
13
13
|
|
|
14
|
+
def test_list_group_role_assignments_returns_expected_result
|
|
15
|
+
stub_request(:get, %r{\Ahttps://api\.workos\.com/authorization/groups/stub/role_assignments(\?|\z)})
|
|
16
|
+
.to_return(body: '{"data": [], "list_metadata": {}}', status: 200)
|
|
17
|
+
result = @client.authorization.list_group_role_assignments(group_id: "stub")
|
|
18
|
+
assert_kind_of WorkOS::Types::ListStruct, result
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def test_create_group_role_assignment_returns_expected_result
|
|
22
|
+
stub_request(:post, %r{\Ahttps://api\.workos\.com/authorization/groups/stub/role_assignments(\?|\z)})
|
|
23
|
+
.to_return(body: "{}", status: 200)
|
|
24
|
+
result = @client.authorization.create_group_role_assignment(group_id: "stub", role_slug: "stub")
|
|
25
|
+
refute_nil result
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
def test_update_group_role_assignments_returns_expected_result
|
|
29
|
+
stub_request(:put, %r{\Ahttps://api\.workos\.com/authorization/groups/stub/role_assignments(\?|\z)})
|
|
30
|
+
.to_return(body: '{"data": [], "list_metadata": {}}', status: 200)
|
|
31
|
+
result = @client.authorization.update_group_role_assignments(group_id: "stub", role_assignments: [{}])
|
|
32
|
+
assert_kind_of WorkOS::Types::ListStruct, result
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
def test_delete_group_role_assignments_returns_expected_result
|
|
36
|
+
stub_request(:delete, %r{\Ahttps://api\.workos\.com/authorization/groups/stub/role_assignments(\?|\z)})
|
|
37
|
+
.to_return(body: "{}", status: 200)
|
|
38
|
+
result = @client.authorization.delete_group_role_assignments(group_id: "stub", role_slug: "stub")
|
|
39
|
+
assert_nil result
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
def test_get_group_role_assignment_returns_expected_result
|
|
43
|
+
stub_request(:get, %r{\Ahttps://api\.workos\.com/authorization/groups/stub/role_assignments/stub(\?|\z)})
|
|
44
|
+
.to_return(body: "{}", status: 200)
|
|
45
|
+
result = @client.authorization.get_group_role_assignment(group_id: "stub", role_assignment_id: "stub")
|
|
46
|
+
refute_nil result
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
def test_delete_group_role_assignment_returns_expected_result
|
|
50
|
+
stub_request(:delete, %r{\Ahttps://api\.workos\.com/authorization/groups/stub/role_assignments/stub(\?|\z)})
|
|
51
|
+
.to_return(body: "{}", status: 200)
|
|
52
|
+
result = @client.authorization.delete_group_role_assignment(group_id: "stub", role_assignment_id: "stub")
|
|
53
|
+
assert_nil result
|
|
54
|
+
end
|
|
55
|
+
|
|
14
56
|
def test_check_returns_expected_result
|
|
15
57
|
stub_request(:post, %r{\Ahttps://api\.workos\.com/authorization/organization_memberships/stub/check(\?|\z)})
|
|
16
58
|
.with(body: hash_including("permission_slug" => "stub", "resource_id" => "stub"))
|
|
@@ -352,6 +394,12 @@ class AuthorizationTest < Minitest::Test
|
|
|
352
394
|
|
|
353
395
|
# Parameterized authentication error tests (one per endpoint).
|
|
354
396
|
[
|
|
397
|
+
{name: :list_group_role_assignments, verb: :get, url: %r{\Ahttps://api\.workos\.com/authorization/groups/stub/role_assignments(\?|\z)}, args: {group_id: "stub"}},
|
|
398
|
+
{name: :create_group_role_assignment, verb: :post, url: %r{\Ahttps://api\.workos\.com/authorization/groups/stub/role_assignments(\?|\z)}, args: {group_id: "stub", role_slug: "stub"}},
|
|
399
|
+
{name: :update_group_role_assignments, verb: :put, url: %r{\Ahttps://api\.workos\.com/authorization/groups/stub/role_assignments(\?|\z)}, args: {group_id: "stub", role_assignments: [{}]}},
|
|
400
|
+
{name: :delete_group_role_assignments, verb: :delete, url: %r{\Ahttps://api\.workos\.com/authorization/groups/stub/role_assignments(\?|\z)}, args: {group_id: "stub", role_slug: "stub"}},
|
|
401
|
+
{name: :get_group_role_assignment, verb: :get, url: %r{\Ahttps://api\.workos\.com/authorization/groups/stub/role_assignments/stub(\?|\z)}, args: {group_id: "stub", role_assignment_id: "stub"}},
|
|
402
|
+
{name: :delete_group_role_assignment, verb: :delete, url: %r{\Ahttps://api\.workos\.com/authorization/groups/stub/role_assignments/stub(\?|\z)}, args: {group_id: "stub", role_assignment_id: "stub"}},
|
|
355
403
|
{name: :check, verb: :post, url: %r{\Ahttps://api\.workos\.com/authorization/organization_memberships/stub/check(\?|\z)}, args: {organization_membership_id: "stub", permission_slug: "stub", resource_target: WorkOS::Authorization::ResourceTargetById.new(resource_id: "stub")}},
|
|
356
404
|
{name: :list_resources_for_membership, verb: :get, url: %r{\Ahttps://api\.workos\.com/authorization/organization_memberships/stub/resources(\?|\z)}, args: {organization_membership_id: "stub", permission_slug: "stub", parent_resource: WorkOS::Authorization::ParentResourceById.new(parent_resource_id: "stub")}},
|
|
357
405
|
{name: :list_effective_permissions, verb: :get, url: %r{\Ahttps://api\.workos\.com/authorization/organization_memberships/stub/resources/stub/permissions(\?|\z)}, args: {organization_membership_id: "stub", resource_id: "stub"}},
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
# This file is auto-generated by oagen. Do not edit.
|
|
4
|
+
|
|
5
|
+
require "test_helper"
|
|
6
|
+
|
|
7
|
+
class ClientApiTest < Minitest::Test
|
|
8
|
+
include FixtureHelper
|
|
9
|
+
|
|
10
|
+
def setup
|
|
11
|
+
@client = WorkOS::Client.new(api_key: "sk_test_123")
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def test_create_token_returns_expected_result
|
|
15
|
+
stub_request(:post, %r{\Ahttps://api\.workos\.com/client/token(\?|\z)})
|
|
16
|
+
.to_return(body: "{}", status: 200)
|
|
17
|
+
result = @client.client_api.create_token(organization_id: "stub", user_id: "stub")
|
|
18
|
+
refute_nil result
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
# Parameterized authentication error tests (one per endpoint).
|
|
22
|
+
[
|
|
23
|
+
{name: :create_token, verb: :post, url: %r{\Ahttps://api\.workos\.com/client/token(\?|\z)}, args: {organization_id: "stub", user_id: "stub"}}
|
|
24
|
+
].each do |spec|
|
|
25
|
+
define_method("test_#{spec[:name]}_raises_authentication_error_on_401") do
|
|
26
|
+
stub_request(spec[:verb], spec[:url])
|
|
27
|
+
.to_return(body: '{"message": "Unauthorized"}', status: 401)
|
|
28
|
+
assert_raises(WorkOS::AuthenticationError) do
|
|
29
|
+
@client.client_api.send(spec[:name], **(spec[:args] || {}))
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
end
|