mirror of
https://github.com/FranP-code/create-better-t-stack.git
synced 2025-10-12 23:52:15 +00:00
84 lines
1.9 KiB
TypeScript
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);
|
|
}
|
|
});
|
|
});
|
|
});
|