@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.
- package/README.md +5 -5
- package/{reference.md → REFERENCE.md} +530 -748
- package/lib/auth.d.ts +9 -6
- package/lib/auth.js +4 -20
- package/lib/auth.js.map +1 -1
- package/lib/connect.d.ts +3 -3
- package/lib/connect.js +1 -2
- package/lib/connect.js.map +1 -1
- package/lib/connection.d.ts +2 -2
- package/lib/connection.js +4 -4
- package/lib/connection.js.map +1 -1
- package/lib/core.js +2 -2
- package/lib/core.js.map +1 -1
- package/lib/directory.d.ts +2 -2
- package/lib/directory.js +7 -7
- package/lib/directory.js.map +1 -1
- package/lib/domain.d.ts +6 -5
- package/lib/domain.js +4 -5
- package/lib/domain.js.map +1 -1
- package/lib/errors/base-exception.d.ts +1 -1
- package/lib/errors/base-exception.js +1 -1
- package/lib/errors/base-exception.js.map +1 -1
- package/lib/organization.d.ts +10 -9
- package/lib/organization.js +11 -9
- package/lib/organization.js.map +1 -1
- package/lib/passwordless.d.ts +2 -2
- package/lib/passwordless.js +8 -7
- package/lib/passwordless.js.map +1 -1
- package/lib/permission.d.ts +6 -5
- package/lib/permission.js +10 -11
- package/lib/permission.js.map +1 -1
- package/lib/pkg/grpc/buf/validate/validate_pb.d.ts +7 -0
- package/lib/pkg/grpc/buf/validate/validate_pb.js +25 -0
- package/lib/pkg/grpc/buf/validate/validate_pb.js.map +1 -0
- package/lib/pkg/grpc/google/api/annotations_pb.d.ts +7 -0
- package/lib/pkg/grpc/google/api/annotations_pb.js +25 -0
- package/lib/pkg/grpc/google/api/annotations_pb.js.map +1 -0
- package/lib/pkg/grpc/google/api/field_behavior_pb.d.ts +7 -0
- package/lib/pkg/grpc/google/api/field_behavior_pb.js +25 -0
- package/lib/pkg/grpc/google/api/field_behavior_pb.js.map +1 -0
- package/lib/pkg/grpc/google/api/visibility_pb.d.ts +7 -0
- package/lib/pkg/grpc/google/api/visibility_pb.js +25 -0
- package/lib/pkg/grpc/google/api/visibility_pb.js.map +1 -0
- package/lib/pkg/grpc/protoc-gen-openapiv2/options/annotations_pb.d.ts +7 -0
- package/lib/pkg/grpc/protoc-gen-openapiv2/options/annotations_pb.js +25 -0
- package/lib/pkg/grpc/protoc-gen-openapiv2/options/annotations_pb.js.map +1 -0
- package/lib/pkg/grpc/scalekit/v1/auditlogs/auditlogs_pb.d.ts +48 -42
- package/lib/pkg/grpc/scalekit/v1/auditlogs/auditlogs_pb.js +27 -263
- package/lib/pkg/grpc/scalekit/v1/auditlogs/auditlogs_pb.js.map +1 -1
- package/lib/pkg/grpc/scalekit/v1/auth/auth_pb.d.ts +371 -325
- package/lib/pkg/grpc/scalekit/v1/auth/auth_pb.js +132 -835
- package/lib/pkg/grpc/scalekit/v1/auth/auth_pb.js.map +1 -1
- package/lib/pkg/grpc/scalekit/v1/auth/passwordless_pb.d.ts +113 -87
- package/lib/pkg/grpc/scalekit/v1/auth/passwordless_pb.js +45 -201
- package/lib/pkg/grpc/scalekit/v1/auth/passwordless_pb.js.map +1 -1
- package/lib/pkg/grpc/scalekit/v1/auth/webauthn_pb.d.ts +262 -265
- package/lib/pkg/grpc/scalekit/v1/auth/webauthn_pb.js +92 -938
- package/lib/pkg/grpc/scalekit/v1/auth/webauthn_pb.js.map +1 -1
- package/lib/pkg/grpc/scalekit/v1/commons/commons_pb.d.ts +162 -157
- package/lib/pkg/grpc/scalekit/v1/commons/commons_pb.js +42 -313
- package/lib/pkg/grpc/scalekit/v1/commons/commons_pb.js.map +1 -1
- package/lib/pkg/grpc/scalekit/v1/connections/connections_pb.d.ts +1488 -1459
- package/lib/pkg/grpc/scalekit/v1/connections/connections_pb.js +353 -2362
- package/lib/pkg/grpc/scalekit/v1/connections/connections_pb.js.map +1 -1
- package/lib/pkg/grpc/scalekit/v1/directories/directories_pb.d.ts +520 -483
- package/lib/pkg/grpc/scalekit/v1/directories/directories_pb.js +224 -1555
- package/lib/pkg/grpc/scalekit/v1/directories/directories_pb.js.map +1 -1
- package/lib/pkg/grpc/scalekit/v1/domains/domains_pb.d.ts +219 -191
- package/lib/pkg/grpc/scalekit/v1/domains/domains_pb.js +96 -553
- package/lib/pkg/grpc/scalekit/v1/domains/domains_pb.js.map +1 -1
- package/lib/pkg/grpc/scalekit/v1/errdetails/errdetails_pb.d.ts +76 -102
- package/lib/pkg/grpc/scalekit/v1/errdetails/errdetails_pb.js +37 -393
- package/lib/pkg/grpc/scalekit/v1/errdetails/errdetails_pb.js.map +1 -1
- package/lib/pkg/grpc/scalekit/v1/options/options_pb.d.ts +36 -26
- package/lib/pkg/grpc/scalekit/v1/options/options_pb.js +20 -69
- package/lib/pkg/grpc/scalekit/v1/options/options_pb.js.map +1 -1
- package/lib/pkg/grpc/scalekit/v1/organizations/organizations_pb.d.ts +447 -400
- package/lib/pkg/grpc/scalekit/v1/organizations/organizations_pb.js +163 -1238
- package/lib/pkg/grpc/scalekit/v1/organizations/organizations_pb.js.map +1 -1
- package/lib/pkg/grpc/scalekit/v1/roles/roles_pb.d.ts +622 -556
- package/lib/pkg/grpc/scalekit/v1/roles/roles_pb.js +201 -1718
- package/lib/pkg/grpc/scalekit/v1/roles/roles_pb.js.map +1 -1
- package/lib/pkg/grpc/scalekit/v1/sessions/sessions_pb.d.ts +135 -132
- package/lib/pkg/grpc/scalekit/v1/sessions/sessions_pb.js +55 -518
- package/lib/pkg/grpc/scalekit/v1/sessions/sessions_pb.js.map +1 -1
- package/lib/pkg/grpc/scalekit/v1/users/users_pb.d.ts +445 -413
- package/lib/pkg/grpc/scalekit/v1/users/users_pb.js +142 -1490
- package/lib/pkg/grpc/scalekit/v1/users/users_pb.js.map +1 -1
- package/lib/role.d.ts +8 -7
- package/lib/role.js +14 -14
- package/lib/role.js.map +1 -1
- package/lib/scalekit.d.ts +0 -4
- package/lib/scalekit.js +0 -4
- package/lib/scalekit.js.map +1 -1
- package/lib/session.js +15 -24
- package/lib/session.js.map +1 -1
- package/lib/user.d.ts +6 -5
- package/lib/user.js +17 -20
- package/lib/user.js.map +1 -1
- package/lib/webauthn.js +6 -5
- package/lib/webauthn.js.map +1 -1
- package/package.json +12 -10
- package/.github/dependabot.yml +0 -10
- package/.nvmrc +0 -1
- package/buf.gen.yaml +0 -24
- package/jest.config.js +0 -15
- package/lib/connected-accounts.d.ts +0 -119
- package/lib/connected-accounts.js +0 -241
- package/lib/connected-accounts.js.map +0 -1
- package/lib/pkg/grpc/scalekit/v1/auditlogs/auditlogs_connect.d.ts +0 -19
- package/lib/pkg/grpc/scalekit/v1/auditlogs/auditlogs_connect.js +0 -27
- package/lib/pkg/grpc/scalekit/v1/auditlogs/auditlogs_connect.js.map +0 -1
- package/lib/pkg/grpc/scalekit/v1/auth/auth_connect.d.ts +0 -118
- package/lib/pkg/grpc/scalekit/v1/auth/auth_connect.js +0 -126
- package/lib/pkg/grpc/scalekit/v1/auth/auth_connect.js.map +0 -1
- package/lib/pkg/grpc/scalekit/v1/auth/passwordless_connect.d.ts +0 -37
- package/lib/pkg/grpc/scalekit/v1/auth/passwordless_connect.js +0 -45
- package/lib/pkg/grpc/scalekit/v1/auth/passwordless_connect.js.map +0 -1
- package/lib/pkg/grpc/scalekit/v1/auth/webauthn_connect.d.ts +0 -82
- package/lib/pkg/grpc/scalekit/v1/auth/webauthn_connect.js +0 -90
- package/lib/pkg/grpc/scalekit/v1/auth/webauthn_connect.js.map +0 -1
- package/lib/pkg/grpc/scalekit/v1/connected_accounts/connected_accounts_connect.d.ts +0 -87
- package/lib/pkg/grpc/scalekit/v1/connected_accounts/connected_accounts_connect.js +0 -95
- package/lib/pkg/grpc/scalekit/v1/connected_accounts/connected_accounts_connect.js.map +0 -1
- package/lib/pkg/grpc/scalekit/v1/connected_accounts/connected_accounts_pb.d.ts +0 -718
- package/lib/pkg/grpc/scalekit/v1/connected_accounts/connected_accounts_pb.js +0 -893
- package/lib/pkg/grpc/scalekit/v1/connected_accounts/connected_accounts_pb.js.map +0 -1
- package/lib/pkg/grpc/scalekit/v1/connections/connections_connect.d.ts +0 -172
- package/lib/pkg/grpc/scalekit/v1/connections/connections_connect.js +0 -180
- package/lib/pkg/grpc/scalekit/v1/connections/connections_connect.js.map +0 -1
- package/lib/pkg/grpc/scalekit/v1/directories/directories_connect.d.ts +0 -154
- package/lib/pkg/grpc/scalekit/v1/directories/directories_connect.js +0 -162
- package/lib/pkg/grpc/scalekit/v1/directories/directories_connect.js.map +0 -1
- package/lib/pkg/grpc/scalekit/v1/domains/domains_connect.d.ts +0 -73
- package/lib/pkg/grpc/scalekit/v1/domains/domains_connect.js +0 -81
- package/lib/pkg/grpc/scalekit/v1/domains/domains_connect.js.map +0 -1
- package/lib/pkg/grpc/scalekit/v1/organizations/organizations_connect.d.ts +0 -171
- package/lib/pkg/grpc/scalekit/v1/organizations/organizations_connect.js +0 -179
- package/lib/pkg/grpc/scalekit/v1/organizations/organizations_connect.js.map +0 -1
- package/lib/pkg/grpc/scalekit/v1/roles/roles_connect.d.ts +0 -250
- package/lib/pkg/grpc/scalekit/v1/roles/roles_connect.js +0 -258
- package/lib/pkg/grpc/scalekit/v1/roles/roles_connect.js.map +0 -1
- package/lib/pkg/grpc/scalekit/v1/sessions/sessions_connect.d.ts +0 -46
- package/lib/pkg/grpc/scalekit/v1/sessions/sessions_connect.js +0 -54
- package/lib/pkg/grpc/scalekit/v1/sessions/sessions_connect.js.map +0 -1
- package/lib/pkg/grpc/scalekit/v1/tools/tools_connect.d.ts +0 -75
- package/lib/pkg/grpc/scalekit/v1/tools/tools_connect.js +0 -83
- package/lib/pkg/grpc/scalekit/v1/tools/tools_connect.js.map +0 -1
- package/lib/pkg/grpc/scalekit/v1/tools/tools_pb.d.ts +0 -431
- package/lib/pkg/grpc/scalekit/v1/tools/tools_pb.js +0 -627
- package/lib/pkg/grpc/scalekit/v1/tools/tools_pb.js.map +0 -1
- package/lib/pkg/grpc/scalekit/v1/users/users_connect.d.ts +0 -173
- package/lib/pkg/grpc/scalekit/v1/users/users_connect.js +0 -181
- package/lib/pkg/grpc/scalekit/v1/users/users_connect.js.map +0 -1
- package/lib/tools.d.ts +0 -75
- package/lib/tools.js +0 -127
- package/lib/tools.js.map +0 -1
- package/src/auth.ts +0 -99
- package/src/connect.ts +0 -33
- package/src/connected-accounts.ts +0 -358
- package/src/connection.ts +0 -267
- package/src/constants/user.ts +0 -22
- package/src/core.ts +0 -139
- package/src/directory.ts +0 -431
- package/src/domain.ts +0 -272
- package/src/errors/base-exception.ts +0 -262
- package/src/errors/index.ts +0 -3
- package/src/errors/specific-exceptions.ts +0 -88
- package/src/index.ts +0 -10
- package/src/organization.ts +0 -568
- package/src/passwordless.ts +0 -138
- package/src/permission.ts +0 -310
- package/src/pkg/grpc/scalekit/v1/auditlogs/auditlogs_connect.ts +0 -26
- package/src/pkg/grpc/scalekit/v1/auditlogs/auditlogs_pb.ts +0 -342
- package/src/pkg/grpc/scalekit/v1/auth/auth_connect.ts +0 -125
- package/src/pkg/grpc/scalekit/v1/auth/auth_pb.ts +0 -1213
- package/src/pkg/grpc/scalekit/v1/auth/passwordless_connect.ts +0 -44
- package/src/pkg/grpc/scalekit/v1/auth/passwordless_pb.ts +0 -336
- package/src/pkg/grpc/scalekit/v1/auth/webauthn_connect.ts +0 -89
- package/src/pkg/grpc/scalekit/v1/auth/webauthn_pb.ts +0 -1263
- package/src/pkg/grpc/scalekit/v1/commons/commons_pb.ts +0 -573
- package/src/pkg/grpc/scalekit/v1/connected_accounts/connected_accounts_connect.ts +0 -94
- package/src/pkg/grpc/scalekit/v1/connected_accounts/connected_accounts_pb.ts +0 -1294
- package/src/pkg/grpc/scalekit/v1/connections/connections_connect.ts +0 -179
- package/src/pkg/grpc/scalekit/v1/connections/connections_pb.ts +0 -3846
- package/src/pkg/grpc/scalekit/v1/directories/directories_connect.ts +0 -161
- package/src/pkg/grpc/scalekit/v1/directories/directories_pb.ts +0 -2119
- package/src/pkg/grpc/scalekit/v1/domains/domains_connect.ts +0 -80
- package/src/pkg/grpc/scalekit/v1/domains/domains_pb.ts +0 -855
- package/src/pkg/grpc/scalekit/v1/errdetails/errdetails_pb.ts +0 -524
- package/src/pkg/grpc/scalekit/v1/options/options_pb.ts +0 -230
- package/src/pkg/grpc/scalekit/v1/organizations/organizations_connect.ts +0 -178
- package/src/pkg/grpc/scalekit/v1/organizations/organizations_pb.ts +0 -1766
- package/src/pkg/grpc/scalekit/v1/roles/roles_connect.ts +0 -257
- package/src/pkg/grpc/scalekit/v1/roles/roles_pb.ts +0 -2395
- package/src/pkg/grpc/scalekit/v1/sessions/sessions_connect.ts +0 -53
- package/src/pkg/grpc/scalekit/v1/sessions/sessions_pb.ts +0 -749
- package/src/pkg/grpc/scalekit/v1/tools/tools_connect.ts +0 -82
- package/src/pkg/grpc/scalekit/v1/tools/tools_pb.ts +0 -847
- package/src/pkg/grpc/scalekit/v1/users/users_connect.ts +0 -180
- package/src/pkg/grpc/scalekit/v1/users/users_pb.ts +0 -2151
- package/src/role.ts +0 -461
- package/src/scalekit.ts +0 -809
- package/src/session.ts +0 -337
- package/src/tools.ts +0 -166
- package/src/types/auth.ts +0 -73
- package/src/types/organization.ts +0 -12
- package/src/types/scalekit.ts +0 -50
- package/src/types/user.ts +0 -21
- package/src/user.ts +0 -825
- package/src/webauthn.ts +0 -98
- package/tests/README.md +0 -25
- package/tests/connected-accounts.test.ts +0 -472
- package/tests/connection.test.ts +0 -42
- package/tests/directory.test.ts +0 -46
- package/tests/domain.test.ts +0 -293
- package/tests/organization.test.ts +0 -81
- package/tests/passwordless.test.ts +0 -108
- package/tests/permission.test.ts +0 -399
- package/tests/role.test.ts +0 -323
- package/tests/scalekit.test.ts +0 -104
- package/tests/setup.ts +0 -34
- package/tests/tools.test.ts +0 -239
- package/tests/users.test.ts +0 -168
- package/tests/utils/test-data.ts +0 -481
- package/tsconfig.json +0 -19
package/tests/domain.test.ts
DELETED
|
@@ -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
|
-
});
|