import path from "path";
import * as testUtils from "test/server/testUtils";
import {execFileSync} from "child_process";

export async function prepareDatabase(tempDirectory: string) {
  // Let's create a sqlite db that we can share with servers that run in other processes, hence
  // not an in-memory db. Running seed.ts directly might not take in account the most recent value
  // for TYPEORM_DATABASE, because ormconfig.js may already have been loaded with a different
  // configuration (in-memory for instance). Spawning a process is one way to make sure that the
  // latest value prevail.
  process.env.TYPEORM_DATABASE = path.join(tempDirectory, 'landing.db');
  const seed = await testUtils.getBuildFile('test/gen-server/seed.js');
  execFileSync('node', [seed, 'init'], {
    env: process.env,
    stdio: 'inherit'
  });
}