52 lines
1.2 KiB
TypeScript
52 lines
1.2 KiB
TypeScript
#!/usr/bin/env bun
|
|
|
|
import { AppEnv } from "@autumn/shared";
|
|
import chalk from "chalk";
|
|
import { createTestLogger } from "./utils/testInitUtils/createTestContext.js";
|
|
import { clearOrg } from "./utils/setup/clearOrg.js";
|
|
import { setupOrg } from "./utils/setup/setupOrg.js";
|
|
|
|
export const clearMasterOrg = async ({
|
|
seedFeatures = true,
|
|
}: {
|
|
seedFeatures?: boolean;
|
|
} = {}) => {
|
|
const logger = createTestLogger();
|
|
console.log(chalk.blue("\nClearing Master Org...\n"));
|
|
|
|
try {
|
|
if (!process.env.TESTS_ORG) {
|
|
console.error(chalk.red("\nTESTS_ORG is not set\n"));
|
|
process.exit(1);
|
|
}
|
|
|
|
const databaseUrl = process.env.DATABASE_URL ?? "";
|
|
if (databaseUrl.toLowerCase().includes("fancy-duckling")) {
|
|
console.error(
|
|
chalk.red(
|
|
"\nRefusing to run clearMasterOrg against prod-like DATABASE_URL.\n",
|
|
),
|
|
);
|
|
process.exit(1);
|
|
}
|
|
|
|
const org = await clearOrg({
|
|
orgSlug: process.env.TESTS_ORG,
|
|
env: AppEnv.Sandbox,
|
|
});
|
|
|
|
logger.info("Master org cleared", { orgId: org.id });
|
|
|
|
await setupOrg({
|
|
orgId: org.id,
|
|
env: AppEnv.Sandbox,
|
|
seedFeatures,
|
|
});
|
|
|
|
console.log(chalk.green("\nMaster org setup complete.\n"));
|
|
} catch (error) {
|
|
console.error(chalk.red("\nError:"), error);
|
|
process.exit(1);
|
|
}
|
|
};
|