import { expect } from "chai" import { DataSource } from "../../../src/data-source/DataSource" import { createTestingConnections, closeTestingConnections, } from "../../utils/test-utils" import { MemoryLogger } from "./memory-logger" describe("github issues > #7662 postgres extensions installation should be optional", function () { it("should NOT install extensions if option is disabled", async function () { let connection: DataSource | null = null try { const connections = await createTestingConnections({ entities: [`${__dirname}/entity/*{.js,.ts}`], enabledDrivers: ["postgres"], schemaCreate: false, dropSchema: true, createLogger: () => new MemoryLogger(true), driverSpecific: { installExtensions: false, }, }) if (connections.length < 1) { this.skip() return } connection = connections[0] const logger = connection.logger as MemoryLogger const createExtensionQueries = logger.queries.filter((q) => q.startsWith("CREATE EXTENSION IF NOT EXISTS"), ) expect(createExtensionQueries).to.be.empty } finally { if (connection) { const logger = connection.logger as MemoryLogger logger.clear() await closeTestingConnections([connection]) } } }) it("should install extensions if option is undefined", async function () { let connections: DataSource[] = [] try { connections = await createTestingConnections({ entities: [`${__dirname}/entity/*{.js,.ts}`], enabledDrivers: ["postgres"], schemaCreate: false, dropSchema: true, createLogger: () => new MemoryLogger(true), }) if (connections.length < 1) { this.skip() return } const connection = connections[0] const logger = connection.logger as MemoryLogger const createExtensionQueries = logger.queries.filter((q) => q.startsWith("CREATE EXTENSION IF NOT EXISTS"), ) expect(createExtensionQueries).to.have.length(1) } finally { await closeTestingConnections(connections) } }) it("should install extensions if option is enabled", async function () { let connections: DataSource[] = [] try { connections = await createTestingConnections({ entities: [`${__dirname}/entity/*{.js,.ts}`], enabledDrivers: ["postgres"], schemaCreate: false, dropSchema: true, createLogger: () => new MemoryLogger(true), driverSpecific: { installExtensions: true, }, }) if (connections.length < 1) { this.skip() } const connection = connections[0] const logger = connection.logger as MemoryLogger const createExtensionQueries = logger.queries.filter((q) => q.startsWith("CREATE EXTENSION IF NOT EXISTS"), ) expect(createExtensionQueries).to.have.length(1) } finally { await closeTestingConnections(connections) } }) })