Skip to content

Commit e2ec1f0

Browse files
committed
unify config schema
1 parent 5116dd8 commit e2ec1f0

File tree

3 files changed

+39
-53
lines changed

3 files changed

+39
-53
lines changed

ee/packages/federation-matrix/tests/end-to-end/messaging.spec.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ import { SynapseClient } from '../helper/synapse-client';
2222
beforeAll(async () => {
2323
// Create admin request config for RC1
2424
rc1AdminRequestConfig = await getRequestConfig(
25-
federationConfig.rc1.apiUrl,
25+
federationConfig.rc1.url,
2626
federationConfig.rc1.adminUser,
2727
federationConfig.rc1.adminPassword,
2828
);

ee/packages/federation-matrix/tests/end-to-end/room.spec.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ import { SynapseClient } from '../helper/synapse-client';
3030
beforeAll(async () => {
3131
// Create admin request config for RC1
3232
rc1AdminRequestConfig = await getRequestConfig(
33-
federationConfig.rc1.apiUrl,
33+
federationConfig.rc1.url,
3434
federationConfig.rc1.adminUser,
3535
federationConfig.rc1.adminPassword,
3636
);
@@ -48,7 +48,7 @@ import { SynapseClient } from '../helper/synapse-client';
4848

4949
// Create user1 request config for RC1
5050
rc1User1RequestConfig = await getRequestConfig(
51-
federationConfig.rc1.apiUrl,
51+
federationConfig.rc1.url,
5252
federationConfig.rc1.additionalUser1.username,
5353
federationConfig.rc1.additionalUser1.password,
5454
);
@@ -84,7 +84,7 @@ import { SynapseClient } from '../helper/synapse-client';
8484
beforeAll(async () => {
8585
const user = { username: `user-${Date.now()}`, password: '123' };
8686
createdUser = await createUser(user, rc1AdminRequestConfig);
87-
userRequestConfig = await getRequestConfig(federationConfig.rc1.apiUrl, user.username, user.password);
87+
userRequestConfig = await getRequestConfig(federationConfig.rc1.url, user.username, user.password);
8888
});
8989

9090
afterAll(async () => {
@@ -256,7 +256,7 @@ import { SynapseClient } from '../helper/synapse-client';
256256
describe('Go to the composer and use the /invite slash command to add a federated user', () => {
257257
it('It should not allow and show an error message', async () => {
258258
// Set up DDP listener to catch ephemeral messages
259-
const ddpListener = createDDPListener(federationConfig.rc1.apiUrl, rc1AdminRequestConfig);
259+
const ddpListener = createDDPListener(federationConfig.rc1.url, rc1AdminRequestConfig);
260260

261261
// Connect to DDP and subscribe to ephemeral messages
262262
await ddpListener.connect();

ee/packages/federation-matrix/tests/helper/config.ts

Lines changed: 34 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -5,29 +5,22 @@
55
* Rocket.Chat instances, Matrix homeservers, and user credentials needed
66
* for end-to-end federation testing.
77
*/
8-
export interface IFederationConfig {
9-
rc1: {
10-
apiUrl: string;
11-
adminUser: string;
12-
adminPassword: string;
13-
adminMatrixUserId: string;
14-
additionalUser1: {
15-
username: string;
16-
password: string;
17-
matrixUserId: string;
18-
};
19-
};
20-
hs1: {
21-
url: string;
22-
adminMatrixUserId: string;
23-
adminUser: string;
24-
adminPassword: string;
25-
additionalUser1: {
26-
username: string;
27-
password: string;
28-
matrixUserId: string;
29-
};
8+
9+
type FederationServerConfig = {
10+
url: string;
11+
domain: string;
12+
adminUser: string;
13+
adminPassword: string;
14+
adminMatrixUserId: string;
15+
additionalUser1: {
16+
username: string;
17+
password: string;
18+
matrixUserId: string;
3019
};
20+
};
21+
export interface IFederationConfig {
22+
rc1: FederationServerConfig;
23+
hs1: FederationServerConfig;
3124
}
3225

3326
/**
@@ -38,13 +31,12 @@ export interface IFederationConfig {
3831
* Throws an error if a required variable is missing or empty.
3932
*
4033
* @param name - The name of the environment variable for error messages
41-
* @param value - The environment variable value (may be undefined)
4234
* @param defaultValue - Optional default value to use if variable is not set
4335
* @returns The validated value (either the env var or default)
4436
* @throws Error if the variable is required but missing or empty
4537
*/
46-
function validateEnvVar(name: string, value: string | undefined, defaultValue?: string): string {
47-
const finalValue = value || defaultValue;
38+
function validateEnvVar(name: string, defaultValue?: string): string {
39+
const finalValue = process.env[name] || defaultValue;
4840
if (!finalValue || finalValue.trim() === '') {
4941
throw new Error(`Required environment variable ${name} is not set or is empty`);
5042
}
@@ -63,46 +55,40 @@ function validateEnvVar(name: string, value: string | undefined, defaultValue?:
6355
* @throws Error if any required configuration is missing or invalid
6456
*/
6557
function getFederationConfig(): IFederationConfig {
66-
const rcDomain = validateEnvVar('FEDERATION_RC1_DOMAIN', process.env.FEDERATION_RC1_DOMAIN, 'rc1');
67-
const rcAdminUser = validateEnvVar('FEDERATION_RC1_ADMIN_USER', process.env.FEDERATION_RC1_ADMIN_USER, 'admin');
68-
const rcAdditionalUser1 = validateEnvVar('FEDERATION_RC1_ADDITIONAL_USER1', process.env.FEDERATION_RC1_ADDITIONAL_USER1, 'user2');
58+
const rcDomain = validateEnvVar('FEDERATION_RC1_DOMAIN', 'rc1');
59+
const rcAdminUser = validateEnvVar('FEDERATION_RC1_ADMIN_USER', 'admin');
60+
const rcAdminPassword = validateEnvVar('FEDERATION_RC1_ADMIN_PASSWORD', 'admin');
61+
const rcAdditionalUser1 = validateEnvVar('FEDERATION_RC1_ADDITIONAL_USER1', 'user2');
62+
const rcAdditionalUser1Password = validateEnvVar('FEDERATION_RC1_ADDITIONAL_USER1_PASSWORD', 'user2pass');
6963

70-
const hs1Domain = validateEnvVar('FEDERATION_SYNAPSE_DOMAIN', process.env.FEDERATION_SYNAPSE_DOMAIN, 'hs1');
71-
const hs1AdminUser = validateEnvVar('FEDERATION_SYNAPSE_ADMIN_USER', process.env.FEDERATION_SYNAPSE_ADMIN_USER, 'admin');
72-
const hs1AdditionalUser1 = validateEnvVar(
73-
'FEDERATION_SYNAPSE_ADDITIONAL_USER1',
74-
process.env.FEDERATION_SYNAPSE_ADDITIONAL_USER1,
75-
'alice',
76-
);
64+
const hs1Domain = validateEnvVar('FEDERATION_SYNAPSE_DOMAIN', 'hs1');
65+
const hs1AdminUser = validateEnvVar('FEDERATION_SYNAPSE_ADMIN_USER', 'admin');
66+
const hs1AdminPassword = validateEnvVar('FEDERATION_SYNAPSE_ADMIN_PASSWORD', 'admin');
67+
const hs1AdditionalUser1 = validateEnvVar('FEDERATION_SYNAPSE_ADDITIONAL_USER1', 'alice');
68+
const hs1AdditionalUser1Password = validateEnvVar('FEDERATION_SYNAPSE_ADDITIONAL_USER1_PASSWORD', 'alice');
7769

7870
return {
7971
rc1: {
80-
apiUrl: `https://${rcDomain}`,
72+
url: `https://${rcDomain}`,
73+
domain: rcDomain,
8174
adminUser: rcAdminUser,
82-
adminPassword: validateEnvVar('FEDERATION_RC1_ADMIN_PASSWORD', process.env.FEDERATION_RC1_ADMIN_PASSWORD, 'admin'),
75+
adminPassword: rcAdminPassword,
8376
adminMatrixUserId: `@${rcAdminUser}:${rcDomain}`,
8477
additionalUser1: {
8578
username: rcAdditionalUser1,
86-
password: validateEnvVar(
87-
'FEDERATION_RC1_ADDITIONAL_USER1_PASSWORD',
88-
process.env.FEDERATION_RC1_ADDITIONAL_USER1_PASSWORD,
89-
'user2pass',
90-
),
79+
password: rcAdditionalUser1Password,
9180
matrixUserId: `@${rcAdditionalUser1}:${rcDomain}`,
9281
},
9382
},
9483
hs1: {
9584
url: `https://${hs1Domain}`,
85+
domain: hs1Domain,
9686
adminUser: hs1AdminUser,
9787
adminMatrixUserId: `@${hs1AdminUser}:${hs1Domain}`,
98-
adminPassword: validateEnvVar('FEDERATION_SYNAPSE_ADMIN_PASSWORD', process.env.FEDERATION_SYNAPSE_ADMIN_PASSWORD, 'admin'),
88+
adminPassword: hs1AdminPassword,
9989
additionalUser1: {
10090
username: hs1AdditionalUser1,
101-
password: validateEnvVar(
102-
'FEDERATION_SYNAPSE_ADDITIONAL_USER1_PASSWORD',
103-
process.env.FEDERATION_SYNAPSE_ADDITIONAL_USER1_PASSWORD,
104-
'alice',
105-
),
91+
password: hs1AdditionalUser1Password,
10692
matrixUserId: `@${hs1AdditionalUser1}:${hs1Domain}`,
10793
},
10894
},

0 commit comments

Comments
 (0)