text: const { dropDatabase, createDatabase } = require("pg-god")
  const { createConnection } = require("typeorm")
  
  const path = require("path")
  
  const DbTestUtil = {
    db_: null,
  
    setDb: function (connection) {
      this.db_ = connection
    },
  
    clear: function () {
      return this.db_.synchronize(true)
    },
  
    shutdown: async function () {
      await this.db_.close()
      return dropDatabase({ databaseName })
    },
  }
  
  const instance = DbTestUtil
  
  module.exports = {
    initDb: async function ({ cwd }) {
      const migrationDir = path.resolve(
        path.join(
          cwd,
          `node_modules`,
          `@medusajs`,
          `medusa`,
          `dist`,
          `migrations`
        )
      )
  
      const databaseName = "medusa-fixtures"
      await createDatabase({ databaseName })
  
      const connection = await createConnection({
        type: "postgres",
        url: "postgres://localhost/medusa-fixtures",
        migrations: [`${migrationDir}/*.js`],
      })
  
      await connection.runMigrations()
      await connection.close()
  
      const modelsLoader = require(path.join(
        cwd,
        `node_modules`,
        `@medusajs`,
        `medusa`,
        `dist`,
        `loaders`,
        `models`
      )).default
  
      const entities = modelsLoader({}, { register: false })
      const dbConnection = await createConnection({
        type: "postgres",
        url: "postgres://localhost/medusa-fixtures",
        entities,
      })
  
      instance.setDb(dbConnection)
      return dbConnection
    },
    useDb: function () {
      return instance
    },
  }
  