// Copyright 2023 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only

import createDebug from 'debug';

import { Bootstrap } from './bootstrap';

const debug = createDebug('mock:test:setup-ci');

// Sadly, we can reduce flakiness in CI by launching the app once first
export async function mochaGlobalSetup(): Promise<void> {
  if (!process.env.CI) {
    return;
  }

  debug('Launching app before running all tests');
  const bootstrap = new Bootstrap();
  await bootstrap.init();
  const app = await bootstrap.link();

  debug('Closing app before running all tests');
  await app.close();
  await bootstrap.teardown();
  debug('Done');
}
