2021-05-03 13:14:30 +02:00
import { getDefaultConfig , overrideWithEnv } from '../src/config/config'
2020-12-08 11:42:51 +01:00
2022-03-10 12:18:24 +01:00
describe ( 'config' , ( ) = > {
test ( 'overrideWithEnv 1' , ( ) = > {
const defaultConfig = getDefaultConfig ( )
const env = {
2022-05-19 19:18:15 +02:00
CLICKHOUSE_SECURE : 'false' ,
2022-03-10 12:18:24 +01:00
TASK_TIMEOUT : '3008' ,
CLICKHOUSE_HOST : '0.0.0.0' ,
BASE_DIR : undefined ,
}
const config = overrideWithEnv ( getDefaultConfig ( ) , env )
2020-12-08 11:42:51 +01:00
2022-05-19 19:18:15 +02:00
expect ( config . CLICKHOUSE_SECURE ) . toEqual ( false )
2022-03-10 12:18:24 +01:00
expect ( config . TASK_TIMEOUT ) . toEqual ( 3008 )
expect ( config . CLICKHOUSE_HOST ) . toEqual ( '0.0.0.0' )
expect ( config . BASE_DIR ) . toEqual ( defaultConfig . BASE_DIR )
} )
2020-12-08 11:42:51 +01:00
2022-03-10 12:18:24 +01:00
test ( 'overrideWithEnv 2' , ( ) = > {
const env = {
2022-05-19 19:18:15 +02:00
CLICKHOUSE_SECURE : '1' ,
2022-03-10 12:18:24 +01:00
TASK_TIMEOUT : '3008.12' ,
}
const config = overrideWithEnv ( getDefaultConfig ( ) , env )
2020-12-08 11:42:51 +01:00
2022-05-19 19:18:15 +02:00
expect ( config . CLICKHOUSE_SECURE ) . toEqual ( true )
2022-03-10 12:18:24 +01:00
expect ( config . TASK_TIMEOUT ) . toEqual ( 3008.12 )
} )
2022-10-19 16:38:40 +02:00
describe ( 'DATABASE_URL' , ( ) = > {
test ( 'Error if DATABASE_URL is not set AND POSTHOG_DB_NAME is not set' , ( ) = > {
const env = {
DATABASE_URL : '' ,
POSTHOG_DB_NAME : '' ,
}
expect ( ( ) = > overrideWithEnv ( getDefaultConfig ( ) , env ) ) . toThrowError (
'You must specify either DATABASE_URL or the database options POSTHOG_DB_NAME, POSTHOG_DB_USER, POSTHOG_DB_PASSWORD, POSTHOG_POSTGRES_HOST, POSTHOG_POSTGRES_PORT!'
)
} )
test ( 'Set DATABASE_URL to a string composed of connection options if DATABASE_URL is not explictly set' , ( ) = > {
const env = {
DATABASE_URL : '' ,
POSTHOG_DB_NAME : 'mydb' ,
POSTHOG_DB_USER : 'user1' ,
POSTHOG_DB_PASSWORD : 'strongpassword' ,
POSTHOG_POSTGRES_HOST : 'my.host' ,
}
const config = overrideWithEnv ( getDefaultConfig ( ) , env )
expect ( config . DATABASE_URL ) . toEqual ( 'postgres://user1:strongpassword@my.host:5432/mydb' )
} )
test ( 'DATABASE_URL takes precedence to individual config options' , ( ) = > {
const env = {
DATABASE_URL : 'my_db_url' ,
POSTHOG_DB_NAME : 'mydb' ,
POSTHOG_DB_USER : 'user1' ,
POSTHOG_DB_PASSWORD : 'strongpassword' ,
POSTHOG_POSTGRES_HOST : 'my.host' ,
}
const config = overrideWithEnv ( getDefaultConfig ( ) , env )
expect ( config . DATABASE_URL ) . toEqual ( 'my_db_url' )
} )
} )
2020-12-08 11:42:51 +01:00
} )