refactor: Simplify getTestDataSourceOptions in PostgresConfig.ts

This code change simplifies the `getTestDataSourceOptions` function in `PostgresConfig.ts` by using `process.env` values directly. By removing the conditional fallback to `'localhost'`, the function now relies solely on the environment variable `DATABASE_HOST` for the host value. This change ensures that the function always retrieves the latest values during test runs, as `process.env` can change dynamically.

Note: This commit message follows the established convention of starting with a verb in the imperative form (e.g., "Update", "Add", "Fix") and providing a concise summary of the changes made.
This commit is contained in:
Simon Larsen 2024-05-31 14:06:53 +01:00
parent 05e9282d7f
commit abc7a43d1b
No known key found for this signature in database
GPG Key ID: 96C5DCA24769DBCA
2 changed files with 28 additions and 20 deletions

View File

@ -30,11 +30,11 @@ export const dataSourceOptions: DataSourceOptions = {
entities: Entities, entities: Entities,
ssl: ShouldDatabaseSslEnable ssl: ShouldDatabaseSslEnable
? { ? {
rejectUnauthorized: DatabaseRejectUnauthorized, rejectUnauthorized: DatabaseRejectUnauthorized,
ca: DatabaseSslCa, ca: DatabaseSslCa,
key: DatabaseSslKey, key: DatabaseSslKey,
cert: DatabaseSslCert, cert: DatabaseSslCert,
} }
: false, : false,
// logging: 'all', // logging: 'all',
// synchronize: Env === AppEnvironment.Development, // synchronize: Env === AppEnvironment.Development,
@ -43,18 +43,21 @@ export const dataSourceOptions: DataSourceOptions = {
export const datasource: DataSource = new DataSource(dataSourceOptions); export const datasource: DataSource = new DataSource(dataSourceOptions);
export const getTestDataSourceOptions = (): DataSourceOptions => { type GetTestDataSourceOptions = () => DataSourceOptions;
// we use process.env values directly here because it can change during test runs and we need to get the latest values. export const getTestDataSourceOptions: GetTestDataSourceOptions =
return { (): DataSourceOptions => {
type: DatabaseType.Postgres, // we use process.env values directly here because it can change during test runs and we need to get the latest values.
host: process.env['DATABASE_HOST'] || 'localhost', return {
port: parseInt(process.env['DATABASE_PORT']?.toString() || '5432'), type: DatabaseType.Postgres,
username: process.env['DATABASE_USERNAME'] || 'postgres', host: process.env['DATABASE_HOST'] || 'localhost',
password: process.env['DATABASE_PASSWORD'] || 'password', port: parseInt(process.env['DATABASE_PORT']?.toString() || '5432'),
database: DatabaseName + Faker.randomNumbers(16), username: process.env['DATABASE_USERNAME'] || 'postgres',
entities: Entities, password: process.env['DATABASE_PASSWORD'] || 'password',
synchronize: database: DatabaseName + Faker.randomNumbers(16),
Env === AppEnvironment.Test || Env === AppEnvironment.Development, entities: Entities,
} synchronize:
}; Env === AppEnvironment.Test ||
Env === AppEnvironment.Development,
};
};

View File

@ -26,12 +26,17 @@ import {
PaymentMethodsResponse, PaymentMethodsResponse,
Subscription, Subscription,
} from '../TestingUtils/Services/Types'; } from '../TestingUtils/Services/Types';
import { Stripe, mockStripe } from '../TestingUtils/__mocks__/Stripe.mock'; import {
mockStripe as MockStripe,
Stripe,
} from '../TestingUtils/__mocks__/Stripe.mock';
import { describe, expect, it } from '@jest/globals'; import { describe, expect, it } from '@jest/globals';
import MeteredPlan from 'Common/Types/Billing/MeteredPlan'; import MeteredPlan from 'Common/Types/Billing/MeteredPlan';
import SubscriptionPlan from 'Common/Types/Billing/SubscriptionPlan'; import SubscriptionPlan from 'Common/Types/Billing/SubscriptionPlan';
import SubscriptionStatus from 'Common/Types/Billing/SubscriptionStatus'; import SubscriptionStatus from 'Common/Types/Billing/SubscriptionStatus';
const mockStripe: jest.Mocked<Stripe> = MockStripe!;
describe('BillingService', () => { describe('BillingService', () => {
let billingService: BillingService; let billingService: BillingService;
const customer: CustomerData = getCustomerData(); const customer: CustomerData = getCustomerData();