Transform qualifying scenarios into marketing-ready use cases with: - AI-generated titles, descriptions, ROI estimates, business value - Persona/industry/category taxonomy for targeting - Browseable feed with filtering and ranking - SEO-optimized case study pages - Daily cron job for generation and ranking Database: - Add Persona, Industry, Category lookup tables - Add UseCase model with marketing content fields - Add junction tables for personas/industries/categories - Add SocialProof model for cached metrics API: - GET /api/use-cases - Global directory with filtering - GET /api/use-cases/[id] - Individual use case details - GET /api/public/users/[username]/collections/[slug]/use-cases - POST /api/cron/use-cases - Nightly generation job Frontend: - /use-cases - Global feed with persona dropdown - /use-cases/[slug] - SEO case study page - /[username]/collections/[slug]/use-cases - Collection feed - UseCasesFeed component - Sortable table component - UseCaseCaseStudy component - Full case study layout
27 lines
759 B
JavaScript
27 lines
759 B
JavaScript
import { dirname, resolve } from 'node:path';
|
|
import { fileURLToPath } from 'node:url';
|
|
import { defineConfig } from 'vitest/config';
|
|
|
|
const __filename = fileURLToPath(import.meta.url);
|
|
const __dirname = dirname(__filename);
|
|
|
|
export default defineConfig({
|
|
test: {
|
|
globals: true,
|
|
environment: 'node',
|
|
include: ['src/test/integration/**/*.integration.test.ts'],
|
|
setupFiles: ['./src/test/integration/setup-integration.ts'],
|
|
testTimeout: 60000, // 60s for API calls to production
|
|
// Run tests sequentially to avoid race conditions on shared test data
|
|
sequence: {
|
|
concurrent: false,
|
|
},
|
|
// Fail fast on integration tests
|
|
bail: 5,
|
|
},
|
|
resolve: {
|
|
alias: {
|
|
'~': resolve(__dirname, './src'),
|
|
},
|
|
},
|
|
});
|