From ed5abc4340dbd8c2bb869b7a0a3df4f21e16ba21 Mon Sep 17 00:00:00 2001 From: blam Date: Fri, 29 Nov 2024 09:40:58 +0100 Subject: [PATCH] chore: code review Signed-off-by: blam Signed-off-by: blam --- .../database/connectors/postgres.test.ts | 25 +++++++++++++++++++ .../database/connectors/postgres.ts | 4 +++ 2 files changed, 29 insertions(+) diff --git a/packages/backend-defaults/src/entrypoints/database/connectors/postgres.test.ts b/packages/backend-defaults/src/entrypoints/database/connectors/postgres.test.ts index 2481004131..6f66f98f15 100644 --- a/packages/backend-defaults/src/entrypoints/database/connectors/postgres.test.ts +++ b/packages/backend-defaults/src/entrypoints/database/connectors/postgres.test.ts @@ -163,6 +163,31 @@ describe('postgres', () => { }); }); + it('should throw with incorrect config', async () => { + await expect( + buildPgDatabaseConfig( + new ConfigReader({ + client: 'pg', + connection: { + type: 'cloudsql', + }, + }), + ), + ).rejects.toThrow(/Missing instance connection name for Cloud SQL/); + + await expect( + buildPgDatabaseConfig( + new ConfigReader({ + client: 'not-pg', + connection: { + type: 'cloudsql', + instance: 'asd:asd:asd', + }, + }), + ), + ).rejects.toThrow(/Cloud SQL only supports the pg client/); + }); + it('adds the settings from cloud-sql-connector', async () => { const { Connector } = jest.requireMock( '@google-cloud/cloud-sql-connector', diff --git a/packages/backend-defaults/src/entrypoints/database/connectors/postgres.ts b/packages/backend-defaults/src/entrypoints/database/connectors/postgres.ts index b938d657a2..5f21d278e7 100644 --- a/packages/backend-defaults/src/entrypoints/database/connectors/postgres.ts +++ b/packages/backend-defaults/src/entrypoints/database/connectors/postgres.ts @@ -78,6 +78,10 @@ export async function buildPgDatabaseConfig( ); if (config.connection?.type === 'cloudsql') { + if (config.client !== 'pg') { + throw new Error('Cloud SQL only supports the pg client'); + } + if (!config.connection.instance) { throw new Error('Missing instance connection name for Cloud SQL'); }