@scalekit-sdk/node 2.2.0-beta.1 → 2.2.1

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 (226) hide show
  1. package/README.md +5 -5
  2. package/{reference.md → REFERENCE.md} +530 -748
  3. package/lib/auth.d.ts +9 -6
  4. package/lib/auth.js +4 -20
  5. package/lib/auth.js.map +1 -1
  6. package/lib/connect.d.ts +3 -3
  7. package/lib/connect.js +1 -2
  8. package/lib/connect.js.map +1 -1
  9. package/lib/connection.d.ts +2 -2
  10. package/lib/connection.js +4 -4
  11. package/lib/connection.js.map +1 -1
  12. package/lib/core.js +2 -2
  13. package/lib/core.js.map +1 -1
  14. package/lib/directory.d.ts +2 -2
  15. package/lib/directory.js +7 -7
  16. package/lib/directory.js.map +1 -1
  17. package/lib/domain.d.ts +6 -5
  18. package/lib/domain.js +4 -5
  19. package/lib/domain.js.map +1 -1
  20. package/lib/errors/base-exception.d.ts +1 -1
  21. package/lib/errors/base-exception.js +1 -1
  22. package/lib/errors/base-exception.js.map +1 -1
  23. package/lib/organization.d.ts +10 -9
  24. package/lib/organization.js +11 -9
  25. package/lib/organization.js.map +1 -1
  26. package/lib/passwordless.d.ts +2 -2
  27. package/lib/passwordless.js +8 -7
  28. package/lib/passwordless.js.map +1 -1
  29. package/lib/permission.d.ts +6 -5
  30. package/lib/permission.js +10 -11
  31. package/lib/permission.js.map +1 -1
  32. package/lib/pkg/grpc/buf/validate/validate_pb.d.ts +7 -0
  33. package/lib/pkg/grpc/buf/validate/validate_pb.js +25 -0
  34. package/lib/pkg/grpc/buf/validate/validate_pb.js.map +1 -0
  35. package/lib/pkg/grpc/google/api/annotations_pb.d.ts +7 -0
  36. package/lib/pkg/grpc/google/api/annotations_pb.js +25 -0
  37. package/lib/pkg/grpc/google/api/annotations_pb.js.map +1 -0
  38. package/lib/pkg/grpc/google/api/field_behavior_pb.d.ts +7 -0
  39. package/lib/pkg/grpc/google/api/field_behavior_pb.js +25 -0
  40. package/lib/pkg/grpc/google/api/field_behavior_pb.js.map +1 -0
  41. package/lib/pkg/grpc/google/api/visibility_pb.d.ts +7 -0
  42. package/lib/pkg/grpc/google/api/visibility_pb.js +25 -0
  43. package/lib/pkg/grpc/google/api/visibility_pb.js.map +1 -0
  44. package/lib/pkg/grpc/protoc-gen-openapiv2/options/annotations_pb.d.ts +7 -0
  45. package/lib/pkg/grpc/protoc-gen-openapiv2/options/annotations_pb.js +25 -0
  46. package/lib/pkg/grpc/protoc-gen-openapiv2/options/annotations_pb.js.map +1 -0
  47. package/lib/pkg/grpc/scalekit/v1/auditlogs/auditlogs_pb.d.ts +48 -42
  48. package/lib/pkg/grpc/scalekit/v1/auditlogs/auditlogs_pb.js +27 -263
  49. package/lib/pkg/grpc/scalekit/v1/auditlogs/auditlogs_pb.js.map +1 -1
  50. package/lib/pkg/grpc/scalekit/v1/auth/auth_pb.d.ts +371 -325
  51. package/lib/pkg/grpc/scalekit/v1/auth/auth_pb.js +132 -835
  52. package/lib/pkg/grpc/scalekit/v1/auth/auth_pb.js.map +1 -1
  53. package/lib/pkg/grpc/scalekit/v1/auth/passwordless_pb.d.ts +113 -87
  54. package/lib/pkg/grpc/scalekit/v1/auth/passwordless_pb.js +45 -201
  55. package/lib/pkg/grpc/scalekit/v1/auth/passwordless_pb.js.map +1 -1
  56. package/lib/pkg/grpc/scalekit/v1/auth/webauthn_pb.d.ts +262 -265
  57. package/lib/pkg/grpc/scalekit/v1/auth/webauthn_pb.js +92 -938
  58. package/lib/pkg/grpc/scalekit/v1/auth/webauthn_pb.js.map +1 -1
  59. package/lib/pkg/grpc/scalekit/v1/commons/commons_pb.d.ts +162 -157
  60. package/lib/pkg/grpc/scalekit/v1/commons/commons_pb.js +42 -313
  61. package/lib/pkg/grpc/scalekit/v1/commons/commons_pb.js.map +1 -1
  62. package/lib/pkg/grpc/scalekit/v1/connections/connections_pb.d.ts +1488 -1459
  63. package/lib/pkg/grpc/scalekit/v1/connections/connections_pb.js +353 -2362
  64. package/lib/pkg/grpc/scalekit/v1/connections/connections_pb.js.map +1 -1
  65. package/lib/pkg/grpc/scalekit/v1/directories/directories_pb.d.ts +520 -483
  66. package/lib/pkg/grpc/scalekit/v1/directories/directories_pb.js +224 -1555
  67. package/lib/pkg/grpc/scalekit/v1/directories/directories_pb.js.map +1 -1
  68. package/lib/pkg/grpc/scalekit/v1/domains/domains_pb.d.ts +219 -191
  69. package/lib/pkg/grpc/scalekit/v1/domains/domains_pb.js +96 -553
  70. package/lib/pkg/grpc/scalekit/v1/domains/domains_pb.js.map +1 -1
  71. package/lib/pkg/grpc/scalekit/v1/errdetails/errdetails_pb.d.ts +76 -102
  72. package/lib/pkg/grpc/scalekit/v1/errdetails/errdetails_pb.js +37 -393
  73. package/lib/pkg/grpc/scalekit/v1/errdetails/errdetails_pb.js.map +1 -1
  74. package/lib/pkg/grpc/scalekit/v1/options/options_pb.d.ts +36 -26
  75. package/lib/pkg/grpc/scalekit/v1/options/options_pb.js +20 -69
  76. package/lib/pkg/grpc/scalekit/v1/options/options_pb.js.map +1 -1
  77. package/lib/pkg/grpc/scalekit/v1/organizations/organizations_pb.d.ts +447 -400
  78. package/lib/pkg/grpc/scalekit/v1/organizations/organizations_pb.js +163 -1238
  79. package/lib/pkg/grpc/scalekit/v1/organizations/organizations_pb.js.map +1 -1
  80. package/lib/pkg/grpc/scalekit/v1/roles/roles_pb.d.ts +622 -556
  81. package/lib/pkg/grpc/scalekit/v1/roles/roles_pb.js +201 -1718
  82. package/lib/pkg/grpc/scalekit/v1/roles/roles_pb.js.map +1 -1
  83. package/lib/pkg/grpc/scalekit/v1/sessions/sessions_pb.d.ts +135 -132
  84. package/lib/pkg/grpc/scalekit/v1/sessions/sessions_pb.js +55 -518
  85. package/lib/pkg/grpc/scalekit/v1/sessions/sessions_pb.js.map +1 -1
  86. package/lib/pkg/grpc/scalekit/v1/users/users_pb.d.ts +445 -413
  87. package/lib/pkg/grpc/scalekit/v1/users/users_pb.js +142 -1490
  88. package/lib/pkg/grpc/scalekit/v1/users/users_pb.js.map +1 -1
  89. package/lib/role.d.ts +8 -7
  90. package/lib/role.js +14 -14
  91. package/lib/role.js.map +1 -1
  92. package/lib/scalekit.d.ts +0 -4
  93. package/lib/scalekit.js +0 -4
  94. package/lib/scalekit.js.map +1 -1
  95. package/lib/session.js +15 -24
  96. package/lib/session.js.map +1 -1
  97. package/lib/user.d.ts +6 -5
  98. package/lib/user.js +17 -20
  99. package/lib/user.js.map +1 -1
  100. package/lib/webauthn.js +6 -5
  101. package/lib/webauthn.js.map +1 -1
  102. package/package.json +12 -10
  103. package/.github/dependabot.yml +0 -10
  104. package/.nvmrc +0 -1
  105. package/buf.gen.yaml +0 -24
  106. package/jest.config.js +0 -15
  107. package/lib/connected-accounts.d.ts +0 -119
  108. package/lib/connected-accounts.js +0 -241
  109. package/lib/connected-accounts.js.map +0 -1
  110. package/lib/pkg/grpc/scalekit/v1/auditlogs/auditlogs_connect.d.ts +0 -19
  111. package/lib/pkg/grpc/scalekit/v1/auditlogs/auditlogs_connect.js +0 -27
  112. package/lib/pkg/grpc/scalekit/v1/auditlogs/auditlogs_connect.js.map +0 -1
  113. package/lib/pkg/grpc/scalekit/v1/auth/auth_connect.d.ts +0 -118
  114. package/lib/pkg/grpc/scalekit/v1/auth/auth_connect.js +0 -126
  115. package/lib/pkg/grpc/scalekit/v1/auth/auth_connect.js.map +0 -1
  116. package/lib/pkg/grpc/scalekit/v1/auth/passwordless_connect.d.ts +0 -37
  117. package/lib/pkg/grpc/scalekit/v1/auth/passwordless_connect.js +0 -45
  118. package/lib/pkg/grpc/scalekit/v1/auth/passwordless_connect.js.map +0 -1
  119. package/lib/pkg/grpc/scalekit/v1/auth/webauthn_connect.d.ts +0 -82
  120. package/lib/pkg/grpc/scalekit/v1/auth/webauthn_connect.js +0 -90
  121. package/lib/pkg/grpc/scalekit/v1/auth/webauthn_connect.js.map +0 -1
  122. package/lib/pkg/grpc/scalekit/v1/connected_accounts/connected_accounts_connect.d.ts +0 -87
  123. package/lib/pkg/grpc/scalekit/v1/connected_accounts/connected_accounts_connect.js +0 -95
  124. package/lib/pkg/grpc/scalekit/v1/connected_accounts/connected_accounts_connect.js.map +0 -1
  125. package/lib/pkg/grpc/scalekit/v1/connected_accounts/connected_accounts_pb.d.ts +0 -718
  126. package/lib/pkg/grpc/scalekit/v1/connected_accounts/connected_accounts_pb.js +0 -893
  127. package/lib/pkg/grpc/scalekit/v1/connected_accounts/connected_accounts_pb.js.map +0 -1
  128. package/lib/pkg/grpc/scalekit/v1/connections/connections_connect.d.ts +0 -172
  129. package/lib/pkg/grpc/scalekit/v1/connections/connections_connect.js +0 -180
  130. package/lib/pkg/grpc/scalekit/v1/connections/connections_connect.js.map +0 -1
  131. package/lib/pkg/grpc/scalekit/v1/directories/directories_connect.d.ts +0 -154
  132. package/lib/pkg/grpc/scalekit/v1/directories/directories_connect.js +0 -162
  133. package/lib/pkg/grpc/scalekit/v1/directories/directories_connect.js.map +0 -1
  134. package/lib/pkg/grpc/scalekit/v1/domains/domains_connect.d.ts +0 -73
  135. package/lib/pkg/grpc/scalekit/v1/domains/domains_connect.js +0 -81
  136. package/lib/pkg/grpc/scalekit/v1/domains/domains_connect.js.map +0 -1
  137. package/lib/pkg/grpc/scalekit/v1/organizations/organizations_connect.d.ts +0 -171
  138. package/lib/pkg/grpc/scalekit/v1/organizations/organizations_connect.js +0 -179
  139. package/lib/pkg/grpc/scalekit/v1/organizations/organizations_connect.js.map +0 -1
  140. package/lib/pkg/grpc/scalekit/v1/roles/roles_connect.d.ts +0 -250
  141. package/lib/pkg/grpc/scalekit/v1/roles/roles_connect.js +0 -258
  142. package/lib/pkg/grpc/scalekit/v1/roles/roles_connect.js.map +0 -1
  143. package/lib/pkg/grpc/scalekit/v1/sessions/sessions_connect.d.ts +0 -46
  144. package/lib/pkg/grpc/scalekit/v1/sessions/sessions_connect.js +0 -54
  145. package/lib/pkg/grpc/scalekit/v1/sessions/sessions_connect.js.map +0 -1
  146. package/lib/pkg/grpc/scalekit/v1/tools/tools_connect.d.ts +0 -75
  147. package/lib/pkg/grpc/scalekit/v1/tools/tools_connect.js +0 -83
  148. package/lib/pkg/grpc/scalekit/v1/tools/tools_connect.js.map +0 -1
  149. package/lib/pkg/grpc/scalekit/v1/tools/tools_pb.d.ts +0 -431
  150. package/lib/pkg/grpc/scalekit/v1/tools/tools_pb.js +0 -627
  151. package/lib/pkg/grpc/scalekit/v1/tools/tools_pb.js.map +0 -1
  152. package/lib/pkg/grpc/scalekit/v1/users/users_connect.d.ts +0 -173
  153. package/lib/pkg/grpc/scalekit/v1/users/users_connect.js +0 -181
  154. package/lib/pkg/grpc/scalekit/v1/users/users_connect.js.map +0 -1
  155. package/lib/tools.d.ts +0 -75
  156. package/lib/tools.js +0 -127
  157. package/lib/tools.js.map +0 -1
  158. package/src/auth.ts +0 -99
  159. package/src/connect.ts +0 -33
  160. package/src/connected-accounts.ts +0 -358
  161. package/src/connection.ts +0 -267
  162. package/src/constants/user.ts +0 -22
  163. package/src/core.ts +0 -139
  164. package/src/directory.ts +0 -431
  165. package/src/domain.ts +0 -272
  166. package/src/errors/base-exception.ts +0 -262
  167. package/src/errors/index.ts +0 -3
  168. package/src/errors/specific-exceptions.ts +0 -88
  169. package/src/index.ts +0 -10
  170. package/src/organization.ts +0 -568
  171. package/src/passwordless.ts +0 -138
  172. package/src/permission.ts +0 -310
  173. package/src/pkg/grpc/scalekit/v1/auditlogs/auditlogs_connect.ts +0 -26
  174. package/src/pkg/grpc/scalekit/v1/auditlogs/auditlogs_pb.ts +0 -342
  175. package/src/pkg/grpc/scalekit/v1/auth/auth_connect.ts +0 -125
  176. package/src/pkg/grpc/scalekit/v1/auth/auth_pb.ts +0 -1213
  177. package/src/pkg/grpc/scalekit/v1/auth/passwordless_connect.ts +0 -44
  178. package/src/pkg/grpc/scalekit/v1/auth/passwordless_pb.ts +0 -336
  179. package/src/pkg/grpc/scalekit/v1/auth/webauthn_connect.ts +0 -89
  180. package/src/pkg/grpc/scalekit/v1/auth/webauthn_pb.ts +0 -1263
  181. package/src/pkg/grpc/scalekit/v1/commons/commons_pb.ts +0 -573
  182. package/src/pkg/grpc/scalekit/v1/connected_accounts/connected_accounts_connect.ts +0 -94
  183. package/src/pkg/grpc/scalekit/v1/connected_accounts/connected_accounts_pb.ts +0 -1294
  184. package/src/pkg/grpc/scalekit/v1/connections/connections_connect.ts +0 -179
  185. package/src/pkg/grpc/scalekit/v1/connections/connections_pb.ts +0 -3846
  186. package/src/pkg/grpc/scalekit/v1/directories/directories_connect.ts +0 -161
  187. package/src/pkg/grpc/scalekit/v1/directories/directories_pb.ts +0 -2119
  188. package/src/pkg/grpc/scalekit/v1/domains/domains_connect.ts +0 -80
  189. package/src/pkg/grpc/scalekit/v1/domains/domains_pb.ts +0 -855
  190. package/src/pkg/grpc/scalekit/v1/errdetails/errdetails_pb.ts +0 -524
  191. package/src/pkg/grpc/scalekit/v1/options/options_pb.ts +0 -230
  192. package/src/pkg/grpc/scalekit/v1/organizations/organizations_connect.ts +0 -178
  193. package/src/pkg/grpc/scalekit/v1/organizations/organizations_pb.ts +0 -1766
  194. package/src/pkg/grpc/scalekit/v1/roles/roles_connect.ts +0 -257
  195. package/src/pkg/grpc/scalekit/v1/roles/roles_pb.ts +0 -2395
  196. package/src/pkg/grpc/scalekit/v1/sessions/sessions_connect.ts +0 -53
  197. package/src/pkg/grpc/scalekit/v1/sessions/sessions_pb.ts +0 -749
  198. package/src/pkg/grpc/scalekit/v1/tools/tools_connect.ts +0 -82
  199. package/src/pkg/grpc/scalekit/v1/tools/tools_pb.ts +0 -847
  200. package/src/pkg/grpc/scalekit/v1/users/users_connect.ts +0 -180
  201. package/src/pkg/grpc/scalekit/v1/users/users_pb.ts +0 -2151
  202. package/src/role.ts +0 -461
  203. package/src/scalekit.ts +0 -809
  204. package/src/session.ts +0 -337
  205. package/src/tools.ts +0 -166
  206. package/src/types/auth.ts +0 -73
  207. package/src/types/organization.ts +0 -12
  208. package/src/types/scalekit.ts +0 -50
  209. package/src/types/user.ts +0 -21
  210. package/src/user.ts +0 -825
  211. package/src/webauthn.ts +0 -98
  212. package/tests/README.md +0 -25
  213. package/tests/connected-accounts.test.ts +0 -472
  214. package/tests/connection.test.ts +0 -42
  215. package/tests/directory.test.ts +0 -46
  216. package/tests/domain.test.ts +0 -293
  217. package/tests/organization.test.ts +0 -81
  218. package/tests/passwordless.test.ts +0 -108
  219. package/tests/permission.test.ts +0 -399
  220. package/tests/role.test.ts +0 -323
  221. package/tests/scalekit.test.ts +0 -104
  222. package/tests/setup.ts +0 -34
  223. package/tests/tools.test.ts +0 -239
  224. package/tests/users.test.ts +0 -168
  225. package/tests/utils/test-data.ts +0 -481
  226. package/tsconfig.json +0 -19
@@ -1,293 +0,0 @@
1
- import ScalekitClient from '../src/scalekit';
2
- import { DomainType } from '../src/pkg/grpc/scalekit/v1/domains/domains_pb';
3
- import { describe, it, expect, beforeEach, afterEach } from '@jest/globals';
4
- import { TestDataGenerator, TestOrganizationManager, TestDomainManager } from './utils/test-data';
5
-
6
- describe('Domains', () => {
7
- let client: ScalekitClient;
8
- let testOrg: string;
9
-
10
- beforeEach(async () => {
11
- // Use global client
12
- client = global.client;
13
-
14
- // Create test organization for each test
15
- testOrg = await TestOrganizationManager.createTestOrganization(client);
16
- });
17
-
18
- afterEach(async () => {
19
- // Clean up test organization
20
- await TestOrganizationManager.cleanupTestOrganization(client, testOrg);
21
- });
22
-
23
- describe('createDomain', () => {
24
- it('should create domain without domainType (backward compatibility)', async () => {
25
- const domainName = TestDataGenerator.generateUniqueDomainName('backward-compat');
26
-
27
- const response = await client.domain.createDomain(testOrg, domainName);
28
-
29
- expect(response).toBeDefined();
30
- expect(response.domain).toBeDefined();
31
- expect(response.domain?.domain).toBe(domainName);
32
- expect(response.domain?.id).toBeDefined();
33
- expect(response.domain?.organizationId).toBe(testOrg);
34
- });
35
-
36
- it('should create domain with ALLOWED_EMAIL_DOMAIN type', async () => {
37
- const domainName = TestDataGenerator.generateUniqueDomainName('allowed-email');
38
-
39
- const response = await client.domain.createDomain(testOrg, domainName, {
40
- domainType: DomainType.ALLOWED_EMAIL_DOMAIN
41
- });
42
-
43
- expect(response).toBeDefined();
44
- expect(response.domain).toBeDefined();
45
- expect(response.domain?.domain).toBe(domainName);
46
- expect(response.domain?.domainType).toBe(DomainType.ALLOWED_EMAIL_DOMAIN);
47
- expect(response.domain?.id).toBeDefined();
48
- expect(response.domain?.organizationId).toBe(testOrg);
49
- });
50
-
51
- it('should create domain with ORGANIZATION_DOMAIN type', async () => {
52
- const domainName = TestDataGenerator.generateUniqueDomainName('org-domain');
53
-
54
- const response = await client.domain.createDomain(testOrg, domainName, {
55
- domainType: DomainType.ORGANIZATION_DOMAIN
56
- });
57
-
58
- expect(response).toBeDefined();
59
- expect(response.domain).toBeDefined();
60
- expect(response.domain?.domain).toBe(domainName);
61
- expect(response.domain?.domainType).toBe(DomainType.ORGANIZATION_DOMAIN);
62
- expect(response.domain?.id).toBeDefined();
63
- expect(response.domain?.organizationId).toBe(testOrg);
64
- });
65
-
66
- it('should create multiple domains of different types', async () => {
67
- const allowedDomainName = TestDataGenerator.generateUniqueDomainName('allowed');
68
- const orgDomainName = TestDataGenerator.generateUniqueDomainName('org');
69
-
70
- // Create allowed email domain
71
- const allowedResponse = await client.domain.createDomain(testOrg, allowedDomainName, {
72
- domainType: DomainType.ALLOWED_EMAIL_DOMAIN
73
- });
74
-
75
- // Create organization domain
76
- const orgResponse = await client.domain.createDomain(testOrg, orgDomainName, {
77
- domainType: DomainType.ORGANIZATION_DOMAIN
78
- });
79
-
80
- expect(allowedResponse.domain?.domainType).toBe(DomainType.ALLOWED_EMAIL_DOMAIN);
81
- expect(orgResponse.domain?.domainType).toBe(DomainType.ORGANIZATION_DOMAIN);
82
- expect(allowedResponse.domain?.domain).toBe(allowedDomainName);
83
- expect(orgResponse.domain?.domain).toBe(orgDomainName);
84
- });
85
-
86
- it('should create domain using TestDomainManager utility', async () => {
87
- const { domainId, domainName, domainType, response } = await TestDomainManager.createTestDomain(
88
- client,
89
- testOrg,
90
- 'allowed'
91
- );
92
-
93
- expect(domainId).toBeDefined();
94
- expect(domainName).toBeDefined();
95
- expect(domainType).toBe(DomainType.ALLOWED_EMAIL_DOMAIN);
96
- expect(response.domain?.domain).toBe(domainName);
97
- });
98
- });
99
-
100
- describe('listDomains', () => {
101
- it('should list domains for organization', async () => {
102
- // Create a test domain first
103
- const { domainName } = await TestDomainManager.createTestDomain(client, testOrg, 'allowed');
104
-
105
- const response = await client.domain.listDomains(testOrg);
106
-
107
- expect(response).toBeDefined();
108
- expect(response.domains).toBeDefined();
109
- expect(Array.isArray(response.domains)).toBe(true);
110
- expect(response.domains.length).toBeGreaterThan(0);
111
-
112
- // Verify basic domain attributes
113
- const firstDomain = response.domains[0];
114
- expect(firstDomain.id).toBeDefined();
115
- expect(firstDomain.domain).toBeDefined();
116
- expect(firstDomain.organizationId).toBe(testOrg);
117
- });
118
-
119
- it('should return empty list when no domains exist', async () => {
120
- // Use a fresh organization without any domains
121
- const freshOrg = await TestOrganizationManager.createTestOrganization(client);
122
-
123
- try {
124
- const response = await client.domain.listDomains(freshOrg);
125
-
126
- expect(response).toBeDefined();
127
- expect(response.domains).toBeDefined();
128
- expect(Array.isArray(response.domains)).toBe(true);
129
- expect(response.domains.length).toBe(0);
130
- } finally {
131
- await TestOrganizationManager.cleanupTestOrganization(client, freshOrg);
132
- }
133
- });
134
-
135
- it('should list domains with different types', async () => {
136
- // Create domains of different types
137
- const { domainName: allowedDomainName } = await TestDomainManager.createTestDomain(client, testOrg, 'allowed');
138
- const { domainName: orgDomainName } = await TestDomainManager.createTestDomain(client, testOrg, 'organization');
139
-
140
- const response = await client.domain.listDomains(testOrg);
141
-
142
- expect(response.domains.length).toBeGreaterThanOrEqual(2);
143
-
144
- const domainNames = response.domains.map(d => d.domain);
145
- const domainTypes = response.domains.map(d => d.domainType);
146
-
147
- expect(domainNames).toContain(allowedDomainName);
148
- expect(domainNames).toContain(orgDomainName);
149
- expect(domainTypes).toContain(DomainType.ALLOWED_EMAIL_DOMAIN);
150
- expect(domainTypes).toContain(DomainType.ORGANIZATION_DOMAIN);
151
- });
152
-
153
- it('should list domains filtered by ALLOWED_EMAIL_DOMAIN type', async () => {
154
- // Create domains of different types
155
- const { domainName: allowedDomainName } = await TestDomainManager.createTestDomain(client, testOrg, 'allowed');
156
- const { domainName: orgDomainName } = await TestDomainManager.createTestDomain(client, testOrg, 'organization');
157
-
158
- // Filter by ALLOWED_EMAIL_DOMAIN type
159
- const response = await client.domain.listDomains(testOrg, {
160
- domainType: DomainType.ALLOWED_EMAIL_DOMAIN
161
- });
162
-
163
- expect(response).toBeDefined();
164
- expect(response.domains).toBeDefined();
165
- expect(Array.isArray(response.domains)).toBe(true);
166
-
167
- // Verify all returned domains are of type ALLOWED_EMAIL_DOMAIN
168
- response.domains.forEach(domain => {
169
- expect(domain.domainType).toBe(DomainType.ALLOWED_EMAIL_DOMAIN);
170
- });
171
-
172
- // Verify the allowed domain is in the filtered list
173
- const domainNames = response.domains.map(d => d.domain);
174
- expect(domainNames).toContain(allowedDomainName);
175
-
176
- // Verify the organization domain is NOT in the filtered list
177
- expect(domainNames).not.toContain(orgDomainName);
178
- });
179
-
180
- it('should list domains filtered by ORGANIZATION_DOMAIN type', async () => {
181
- // Create domains of different types
182
- const { domainName: allowedDomainName } = await TestDomainManager.createTestDomain(client, testOrg, 'allowed');
183
- const { domainName: orgDomainName } = await TestDomainManager.createTestDomain(client, testOrg, 'organization');
184
-
185
- // Filter by ORGANIZATION_DOMAIN type
186
- const response = await client.domain.listDomains(testOrg, {
187
- domainType: DomainType.ORGANIZATION_DOMAIN
188
- });
189
-
190
- expect(response).toBeDefined();
191
- expect(response.domains).toBeDefined();
192
- expect(Array.isArray(response.domains)).toBe(true);
193
-
194
- // Verify all returned domains are of type ORGANIZATION_DOMAIN
195
- response.domains.forEach(domain => {
196
- expect(domain.domainType).toBe(DomainType.ORGANIZATION_DOMAIN);
197
- });
198
-
199
- // Verify the organization domain is in the filtered list
200
- const domainNames = response.domains.map(d => d.domain);
201
- expect(domainNames).toContain(orgDomainName);
202
-
203
- // Verify the allowed domain is NOT in the filtered list
204
- expect(domainNames).not.toContain(allowedDomainName);
205
- });
206
- });
207
-
208
- describe('getDomain', () => {
209
- it('should get domain by ID successfully', async () => {
210
- // Create a test domain first
211
- const { domainId, domainName } = await TestDomainManager.createTestDomain(client, testOrg, 'allowed');
212
-
213
- const response = await client.domain.getDomain(testOrg, domainId);
214
-
215
- expect(response).toBeDefined();
216
- expect(response.domain).toBeDefined();
217
- expect(response.domain?.id).toBe(domainId);
218
- expect(response.domain?.domain).toBe(domainName);
219
- expect(response.domain?.organizationId).toBe(testOrg);
220
- });
221
-
222
- it('should throw error for non-existent domain', async () => {
223
- const nonExistentDomainId = 'non-existent-domain-id';
224
-
225
- await expect(
226
- client.domain.getDomain(testOrg, nonExistentDomainId)
227
- ).rejects.toThrow();
228
- });
229
-
230
- it('should throw error for invalid organization ID', async () => {
231
- // Create a test domain first
232
- const { domainId } = await TestDomainManager.createTestDomain(client, testOrg, 'allowed');
233
- const invalidOrgId = 'invalid-org-id';
234
-
235
- await expect(
236
- client.domain.getDomain(invalidOrgId, domainId)
237
- ).rejects.toThrow();
238
- });
239
- });
240
-
241
- describe('deleteDomain', () => {
242
- it('should delete domain successfully', async () => {
243
- // Create a test domain for deletion
244
- const { domainId, domainName } = await TestDomainManager.createTestDomain(client, testOrg, 'allowed');
245
-
246
- // Verify domain exists before deletion
247
- const getResponse = await client.domain.getDomain(testOrg, domainId);
248
- expect(getResponse.domain?.id).toBe(domainId);
249
-
250
- // Delete the domain
251
- const deleteResponse = await client.domain.deleteDomain(testOrg, domainId);
252
- expect(deleteResponse).toBeDefined();
253
-
254
- // Verify domain is deleted by trying to get it
255
- await expect(
256
- client.domain.getDomain(testOrg, domainId)
257
- ).rejects.toThrow();
258
- });
259
-
260
- it('should throw error when deleting non-existent domain', async () => {
261
- const nonExistentDomainId = 'non-existent-domain-id';
262
-
263
- await expect(
264
- client.domain.deleteDomain(testOrg, nonExistentDomainId)
265
- ).rejects.toThrow();
266
- });
267
-
268
-
269
- });
270
-
271
- describe('error handling', () => {
272
- it('should handle invalid organization ID', async () => {
273
- const invalidOrgId = 'invalid-org-id';
274
- const domainName = TestDataGenerator.generateUniqueDomainName('error-test');
275
-
276
- await expect(
277
- client.domain.createDomain(invalidOrgId, domainName)
278
- ).rejects.toThrow();
279
-
280
- await expect(
281
- client.domain.listDomains(invalidOrgId)
282
- ).rejects.toThrow();
283
- });
284
-
285
- it('should handle invalid domain name format', async () => {
286
- const invalidDomainName = 'invalid-domain-name';
287
-
288
- await expect(
289
- client.domain.createDomain(testOrg, invalidDomainName)
290
- ).rejects.toThrow();
291
- });
292
- });
293
- });
@@ -1,81 +0,0 @@
1
- import ScalekitClient from '../src/scalekit';
2
- import { describe, it, expect, beforeEach, afterEach } from '@jest/globals';
3
- import { TestDataGenerator, TestOrganizationManager } from './utils/test-data';
4
-
5
- describe('Organizations', () => {
6
- let client: ScalekitClient;
7
- let testOrg: string;
8
-
9
- beforeEach(async () => {
10
- // Use global client
11
- client = global.client;
12
-
13
- // Create test organization for each test
14
- testOrg = await TestOrganizationManager.createTestOrganization(client);
15
- });
16
-
17
- afterEach(async () => {
18
- // Clean up test organization
19
- await TestOrganizationManager.cleanupTestOrganization(client, testOrg);
20
- });
21
-
22
- describe('listOrganization', () => {
23
- it('should list organizations', async () => {
24
- const organizations = await client.organization.listOrganization(TestDataGenerator.generatePaginationParams());
25
-
26
- expect(organizations).toBeDefined();
27
- expect(organizations.organizations).toBeDefined();
28
- expect(Array.isArray(organizations.organizations)).toBe(true);
29
- expect(organizations.organizations.length).toBeGreaterThan(0);
30
-
31
- // Verify basic organization attributes
32
- const firstOrg = organizations.organizations[0];
33
- expect(firstOrg.id).toBeDefined();
34
- expect(firstOrg.displayName).toBeDefined();
35
- });
36
-
37
- it('should handle pagination', async () => {
38
- const firstPage = await client.organization.listOrganization(TestDataGenerator.generatePaginationParams(5));
39
-
40
- expect(firstPage).toBeDefined();
41
- expect(firstPage.organizations.length).toBeLessThanOrEqual(5);
42
-
43
- if (firstPage.nextPageToken) {
44
- const secondPage = await client.organization.listOrganization({
45
- pageSize: 5,
46
- pageToken: firstPage.nextPageToken
47
- });
48
-
49
- expect(secondPage).toBeDefined();
50
- expect(secondPage.organizations).toBeDefined();
51
- }
52
- });
53
- });
54
-
55
- describe('getOrganization', () => {
56
- it('should get organization by ID', async () => {
57
- const organization = await client.organization.getOrganization(testOrg);
58
-
59
- expect(organization).toBeDefined();
60
- expect(organization.organization).toBeDefined();
61
- expect(organization.organization?.id).toBe(testOrg);
62
- expect(organization.organization?.displayName).toBeDefined();
63
- });
64
- });
65
-
66
- describe('upsertUserManagementSettings', () => {
67
- it('should upsert max allowed users', async () => {
68
- const maxUsers = 50;
69
- let settings;
70
- try {
71
- settings = await client.organization.upsertUserManagementSettings(testOrg, { maxAllowedUsers: maxUsers });
72
- } catch (error) {
73
- console.warn('Skipping upsertUserManagementSettings test due to error:', error);
74
- return;
75
- }
76
-
77
- expect(settings).toBeDefined();
78
- expect(settings?.maxAllowedUsers).toBe(maxUsers);
79
- });
80
- });
81
- });
@@ -1,108 +0,0 @@
1
- import ScalekitClient from '../src/scalekit';
2
- import { TemplateType } from '../src/pkg/grpc/scalekit/v1/auth/passwordless_pb';
3
- import { describe, it, expect, beforeEach } from '@jest/globals';
4
- import { TestDataGenerator } from './utils/test-data';
5
-
6
- describe('Passwordless', () => {
7
- let client: ScalekitClient;
8
-
9
- beforeEach(() => {
10
- // Use global client
11
- client = global.client;
12
- });
13
-
14
- describe('sendPasswordlessEmail', () => {
15
- it('should send passwordless email with basic parameters', async () => {
16
- const email = TestDataGenerator.generateUniqueEmail();
17
-
18
- const response = await client.passwordless.sendPasswordlessEmail(email, TestDataGenerator.generatePasswordlessEmailData());
19
-
20
- expect(response).toBeDefined();
21
- expect(response.authRequestId).toBeDefined();
22
- expect(response.expiresAt).toBeDefined();
23
- expect(response.expiresIn).toBe(3600);
24
- expect(response.passwordlessType).toBeDefined();
25
- });
26
-
27
- it('should send passwordless email with template variables', async () => {
28
- const email = TestDataGenerator.generateUniqueEmail();
29
-
30
- const response = await client.passwordless.sendPasswordlessEmail(email, TestDataGenerator.generatePasswordlessEmailWithTemplateData());
31
-
32
- expect(response).toBeDefined();
33
- expect(response.authRequestId).toBeDefined();
34
- });
35
-
36
- it('should throw error for invalid email', async () => {
37
- await expect(
38
- client.passwordless.sendPasswordlessEmail('', {
39
- template: TemplateType.SIGNIN
40
- })
41
- ).rejects.toThrow('Email must be a valid string');
42
- });
43
-
44
- it('should throw error for invalid template type', async () => {
45
- const email = TestDataGenerator.generateUniqueEmail();
46
-
47
- await expect(
48
- client.passwordless.sendPasswordlessEmail(email, {
49
- template: 'INVALID_TEMPLATE' as any
50
- })
51
- ).rejects.toThrow('Invalid template type');
52
- });
53
- });
54
-
55
- describe('verifyPasswordlessEmail', () => {
56
- it('should throw error when neither code nor linkToken is provided', async () => {
57
- await expect(
58
- client.passwordless.verifyPasswordlessEmail({})
59
- ).rejects.toThrow('Either code or linkToken must be provided');
60
- });
61
-
62
- it('should verify with code', async () => {
63
- // Mock code for testing - expected to fail
64
- const credential = TestDataGenerator.generateCredentialData('code');
65
-
66
- try {
67
- const response = await client.passwordless.verifyPasswordlessEmail(credential);
68
- expect(response).toBeDefined();
69
- } catch (error) {
70
- // Expected failure with mock code
71
- expect(error).toBeDefined();
72
- }
73
- });
74
-
75
- it('should verify with linkToken', async () => {
76
- // Mock linkToken for testing - expected to fail
77
- const credential = TestDataGenerator.generateCredentialData('linkToken');
78
-
79
- try {
80
- const response = await client.passwordless.verifyPasswordlessEmail(credential);
81
- expect(response).toBeDefined();
82
- } catch (error) {
83
- // Expected failure with mock linkToken
84
- expect(error).toBeDefined();
85
- }
86
- });
87
- });
88
-
89
- describe('resendPasswordlessEmail', () => {
90
- it('should resend passwordless email', async () => {
91
- // Send initial passwordless email
92
- const email = TestDataGenerator.generateUniqueEmail();
93
-
94
- const sendResponse = await client.passwordless.sendPasswordlessEmail(email, TestDataGenerator.generatePasswordlessEmailData());
95
-
96
- // Resend the email
97
- const resendResponse = await client.passwordless.resendPasswordlessEmail(
98
- sendResponse.authRequestId
99
- );
100
-
101
- expect(resendResponse).toBeDefined();
102
- expect(resendResponse.authRequestId).toBeDefined();
103
- expect(resendResponse.expiresAt).toBeDefined();
104
- expect(resendResponse.expiresIn).toBeDefined();
105
- expect(resendResponse.passwordlessType).toBeDefined();
106
- });
107
- });
108
- });