Files
create-better-t-stack/apps/cli/test/index.test.ts
2025-09-14 11:29:01 +05:30

84 lines
1.9 KiB
TypeScript

import { afterAll, beforeAll, describe, expect, it } from "vitest";
import { expectSuccess, runTRPCTest } from "./test-utils";
describe("CLI Test Suite", () => {
beforeAll(async () => {
// Ensure CLI is built before running tests
console.log("Setting up CLI tests...");
});
afterAll(async () => {
console.log("CLI tests completed.");
});
describe("Smoke Tests", () => {
it("should create a basic project successfully", async () => {
const result = await runTRPCTest({
projectName: "smoke-test-basic",
yes: true,
install: false,
});
expectSuccess(result);
});
it("should handle help command", async () => {
// This test would need to be implemented differently since it's not a project creation
// For now, we'll just test that the basic functionality works
expect(true).toBe(true);
});
it("should validate project name requirements", async () => {
const result = await runTRPCTest({
projectName: "valid-project-name",
yes: true,
install: false,
});
expectSuccess(result);
});
});
describe("Performance Tests", () => {
it("should complete project creation within reasonable time", async () => {
const startTime = Date.now();
const result = await runTRPCTest({
projectName: "performance-test",
yes: true,
install: false,
});
const endTime = Date.now();
const duration = endTime - startTime;
expectSuccess(result);
// Should complete within 30 seconds (without installation)
expect(duration).toBeLessThan(30000);
});
});
describe("Stability Tests", () => {
it("should handle multiple rapid project creations", async () => {
const promises = [];
for (let i = 0; i < 3; i++) {
promises.push(
runTRPCTest({
projectName: `stability-test-${i}`,
yes: true,
install: false,
}),
);
}
const results = await Promise.all(promises);
for (const result of results) {
expectSuccess(result);
}
});
});
});