@odvi/create-dtt-framework 0.1.16 → 0.1.18

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../src/commands/create.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAQpC,eAAO,MAAM,aAAa,SAgKtB,CAAC"}
1
+ {"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../src/commands/create.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAkBpC,eAAO,MAAM,aAAa,SAgKtB,CAAC"}
@@ -5,6 +5,14 @@ import ora from 'ora';
5
5
  import path from 'path';
6
6
  import fs from 'fs-extra';
7
7
  import { copyTemplate } from '../utils/template.js';
8
+ import { fileURLToPath } from 'url';
9
+ // Define __dirname for ESM
10
+ const __filename = fileURLToPath(import.meta.url);
11
+ const __dirname = path.dirname(__filename);
12
+ // Read CLI package.json to get version
13
+ const cliPackageJsonPath = path.resolve(__dirname, '../../package.json');
14
+ const cliPackageJson = fs.readJsonSync(cliPackageJsonPath);
15
+ const frameworkVersion = cliPackageJson.version;
8
16
  export const createCommand = new Command('create')
9
17
  .description('Create a new DTT Framework project')
10
18
  .argument('[project-name]', 'Name of the project')
@@ -106,7 +114,7 @@ export const createCommand = new Command('create')
106
114
  packageJson.name = projectName;
107
115
  packageJson.version = '0.1.0';
108
116
  packageJson.dtt = {
109
- version: '0.1.16' // Current framework version
117
+ version: frameworkVersion // Dynamic version from CLI package.json
110
118
  };
111
119
  await fs.writeJson(packageJsonPath, packageJson, { spaces: 2 });
112
120
  spinner.succeed('Project configured');
@@ -1 +1 @@
1
- {"version":3,"file":"create.js","sourceRoot":"","sources":["../../src/commands/create.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"create.js","sourceRoot":"","sources":["../../src/commands/create.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAmBpC,eAAO,MAAM,aAAa,SAqRtB,CAAC"}
1
+ {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA6BpC,eAAO,MAAM,aAAa,SA2RtB,CAAC"}
@@ -5,6 +5,14 @@ import path from 'path';
5
5
  import fs from 'fs-extra';
6
6
  import inquirer from 'inquirer';
7
7
  import { getTemplatePath } from '../utils/template.js';
8
+ import { fileURLToPath } from 'url';
9
+ // Define __dirname for ESM
10
+ const __filename = fileURLToPath(import.meta.url);
11
+ const __dirname = path.dirname(__filename);
12
+ // Read CLI package.json to get version
13
+ const cliPackageJsonPath = path.resolve(__dirname, '../../package.json');
14
+ const cliPackageJson = fs.readJsonSync(cliPackageJsonPath);
15
+ const frameworkVersion = cliPackageJson.version;
8
16
  async function getFiles(dir) {
9
17
  const subdirs = await fs.readdir(dir);
10
18
  const files = await Promise.all(subdirs.map(async (subdir) => {
@@ -230,6 +238,11 @@ export const updateCommand = new Command('update')
230
238
  await fs.writeJson(packageJsonPath, projectPkg, { spaces: 2 });
231
239
  console.log(chalk.green(' Updated package.json with new dependencies.'));
232
240
  }
241
+ // Update dtt.version metadata
242
+ projectPkg.dtt = projectPkg.dtt || {};
243
+ projectPkg.dtt.version = frameworkVersion;
244
+ await fs.writeJson(packageJsonPath, projectPkg, { spaces: 2 });
245
+ console.log(chalk.green(` Updated DTT Framework version to ${frameworkVersion}.`));
233
246
  }
234
247
  updateSpinner.succeed('Update complete');
235
248
  console.log();
@@ -1 +1 @@
1
- {"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"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"}
@@ -183,12 +183,20 @@ async function applyTemplateModifications(targetDir, template) {
183
183
  * Create package.json for new project
184
184
  */
185
185
  async function createPackageJson(targetDir, template) {
186
+ const templatePath = getTemplatePath();
187
+ const templatePackageJsonPath = path.join(templatePath, 'package.json');
188
+ let templatePkg = null;
189
+ // Try to read from synced template
190
+ if (await fs.pathExists(templatePackageJsonPath)) {
191
+ templatePkg = await fs.readJson(templatePackageJsonPath);
192
+ }
193
+ // Fallback to hardcoded values if template package.json doesn't exist
186
194
  const packageJson = {
187
195
  name: 'my-dtt-app',
188
196
  version: '0.1.0',
189
197
  private: true,
190
198
  type: 'module',
191
- scripts: {
199
+ scripts: templatePkg?.scripts || {
192
200
  'build': 'next build',
193
201
  'check': 'next lint && tsc --noEmit',
194
202
  'db:generate': 'drizzle-kit generate',
@@ -208,7 +216,7 @@ async function createPackageJson(targetDir, template) {
208
216
  'test:coverage': 'vitest run --coverage',
209
217
  'typecheck': 'tsc --noEmit',
210
218
  },
211
- dependencies: {
219
+ dependencies: templatePkg?.dependencies || {
212
220
  '@clerk/nextjs': '^6.36.5',
213
221
  '@aws-sdk/client-s3': '^3.958.0',
214
222
  '@radix-ui/react-collapsible': '^1.1.12',
@@ -240,7 +248,7 @@ async function createPackageJson(targetDir, template) {
240
248
  zod: '^3.24.2',
241
249
  zustand: '^5.0.9',
242
250
  },
243
- devDependencies: {
251
+ devDependencies: templatePkg?.devDependencies || {
244
252
  '@eslint/eslintrc': '^3.3.1',
245
253
  '@tailwindcss/postcss': '^4.0.15',
246
254
  '@testing-library/jest-dom': '^6.9.1',
@@ -268,8 +276,15 @@ async function createPackageJson(targetDir, template) {
268
276
  'typescript-eslint': '^8.27.0',
269
277
  vitest: '^4.0.16',
270
278
  },
271
- packageManager: 'pnpm@10.26.1',
279
+ packageManager: templatePkg?.packageManager || 'pnpm@10.26.1',
272
280
  };
281
+ // Filter out framework-specific scripts that shouldn't be in user projects
282
+ const scriptsToExclude = ['build:cli', 'publish:framework', 'postinstall'];
283
+ if (packageJson.scripts) {
284
+ for (const script of scriptsToExclude) {
285
+ delete packageJson.scripts[script];
286
+ }
287
+ }
273
288
  // Apply template-specific modifications
274
289
  switch (template) {
275
290
  case 'minimal':
@@ -1 +1 @@
1
- {"version":3,"file":"template.js","sourceRoot":"","sources":["../../src/utils/template.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"template.js","sourceRoot":"","sources":["../../src/utils/template.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@odvi/create-dtt-framework",
3
- "version": "0.1.16",
3
+ "version": "0.1.18",
4
4
  "description": "CLI tool to scaffold new projects with DTT Framework",
5
5
  "type": "module",
6
6
  "bin": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@odvi/dtt-framework",
3
- "version": "0.1.16",
3
+ "version": "0.1.18",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "bin": {
@@ -0,0 +1,89 @@
1
+ import { UTApi } from 'uploadthing/server'
2
+ import { env } from '@/config/env'
3
+
4
+ export class UploadThingClient {
5
+ private api: UTApi | null = null
6
+
7
+ constructor() {
8
+ // UTApi automatically reads UPLOADTHING_TOKEN from environment
9
+ // Only initialize if token is configured
10
+ if (env.UPLOADTHING_TOKEN) {
11
+ this.api = new UTApi()
12
+ }
13
+ }
14
+
15
+ /**
16
+ * Check if the client is configured
17
+ */
18
+ isConfigured(): boolean {
19
+ return this.api !== null
20
+ }
21
+
22
+ /**
23
+ * Get the underlying UTApi instance
24
+ */
25
+ getApi(): UTApi {
26
+ if (!this.api) {
27
+ throw new Error('UploadThing is not configured. Set UPLOADTHING_TOKEN environment variable.')
28
+ }
29
+ return this.api
30
+ }
31
+
32
+ /**
33
+ * List files from UploadThing
34
+ */
35
+ async listFiles(options?: { limit?: number; offset?: number }) {
36
+ const api = this.getApi()
37
+ return api.listFiles(options)
38
+ }
39
+
40
+ /**
41
+ * Delete a file by its key
42
+ */
43
+ async deleteFile(fileKey: string) {
44
+ const api = this.getApi()
45
+ return api.deleteFiles(fileKey)
46
+ }
47
+
48
+ /**
49
+ * Delete multiple files by their keys
50
+ */
51
+ async deleteFiles(fileKeys: string[]) {
52
+ const api = this.getApi()
53
+ return api.deleteFiles(fileKeys)
54
+ }
55
+
56
+ /**
57
+ * Get file URLs by their keys
58
+ */
59
+ async getFileUrls(fileKeys: string[]) {
60
+ const api = this.getApi()
61
+ return api.getFileUrls(fileKeys)
62
+ }
63
+
64
+ /**
65
+ * Rename a file
66
+ */
67
+ async renameFile(fileKey: string, newName: string) {
68
+ const api = this.getApi()
69
+ return api.renameFiles({ [fileKey]: newName })
70
+ }
71
+
72
+ /**
73
+ * Rename multiple files
74
+ */
75
+ async renameFiles(updates: Record<string, string>) {
76
+ const api = this.getApi()
77
+ return api.renameFiles(updates)
78
+ }
79
+
80
+ /**
81
+ * Get usage info for the app
82
+ */
83
+ async getUsageInfo() {
84
+ const api = this.getApi()
85
+ return api.getUsageInfo()
86
+ }
87
+ }
88
+
89
+ export const uploadThingClient = new UploadThingClient()
@@ -1,4 +0,0 @@
1
- /** @type {import('prettier').Config & import('prettier-plugin-tailwindcss').PluginOptions} */
2
- export default {
3
- plugins: ["prettier-plugin-tailwindcss"],
4
- };
@@ -1,164 +0,0 @@
1
- import { describe, it, expect, beforeEach, afterEach } from 'vitest';
2
- import { z } from 'zod';
3
-
4
- // Mock process.env
5
- const originalEnv = process.env;
6
-
7
- describe('env configuration', () => {
8
- beforeEach(() => {
9
- // Reset process.env before each test
10
- process.env = { ...originalEnv };
11
- });
12
-
13
- afterEach(() => {
14
- process.env = originalEnv;
15
- });
16
-
17
- it('should have valid environment schema structure', () => {
18
- // Import after setting up env
19
- const envSchema = z.object({
20
- NODE_ENV: z.enum(['development', 'test', 'production']).default('development'),
21
- NEXT_PUBLIC_APP_URL: z.string().url().default('http://localhost:3000'),
22
- NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY: z.string().startsWith('pk_').default('pk_test_placeholder'),
23
- CLERK_SECRET_KEY: z.string().startsWith('sk_').default('sk_test_placeholder'),
24
- CLERK_WEBHOOK_SECRET: z.string().optional(),
25
- NEXT_PUBLIC_SUPABASE_URL: z.string().url().default('https://placeholder.supabase.co'),
26
- NEXT_PUBLIC_SUPABASE_ANON_KEY: z.string().default('placeholder'),
27
- SUPABASE_SERVICE_ROLE_KEY: z.string().default('placeholder'),
28
- DATABASE_URL: z.string().default('postgresql://postgres:password@localhost:5432/postgres'),
29
- SNOWFLAKE_ACCOUNT: z.string().default('placeholder'),
30
- SNOWFLAKE_USERNAME: z.string().default('placeholder'),
31
- SNOWFLAKE_PASSWORD: z.string().default('placeholder'),
32
- SNOWFLAKE_WAREHOUSE: z.string().default('COMPUTE_WH'),
33
- SNOWFLAKE_DATABASE: z.string().default('ANALYTICS'),
34
- SNOWFLAKE_SCHEMA: z.string().default('PUBLIC'),
35
- SNOWFLAKE_ROLE: z.string().default('ANALYST'),
36
- NEXTBANK_API: z.string().url().optional(),
37
- NEXTBANK_API_USERNAME: z.string().optional(),
38
- NEXTBANK_API_PASSWORD: z.string().optional(),
39
- });
40
-
41
- const result = envSchema.safeParse({});
42
- expect(result.success).toBe(true);
43
- });
44
-
45
- it('should validate NODE_ENV enum values', () => {
46
- const validEnvs = ['development', 'test', 'production'] as const;
47
- const envSchema = z.object({
48
- NODE_ENV: z.enum(validEnvs).default('development'),
49
- });
50
-
51
- validEnvs.forEach((env) => {
52
- const result = envSchema.safeParse({ NODE_ENV: env });
53
- expect(result.success).toBe(true);
54
- });
55
- });
56
-
57
- it('should reject invalid NODE_ENV values', () => {
58
- const envSchema = z.object({
59
- NODE_ENV: z.enum(['development', 'test', 'production']).default('development'),
60
- });
61
-
62
- const result = envSchema.safeParse({ NODE_ENV: 'invalid' });
63
- expect(result.success).toBe(false);
64
- });
65
-
66
- it('should validate URL fields', () => {
67
- const urlSchema = z.object({
68
- NEXT_PUBLIC_APP_URL: z.string().url(),
69
- NEXT_PUBLIC_SUPABASE_URL: z.string().url(),
70
- });
71
-
72
- const validResult = urlSchema.safeParse({
73
- NEXT_PUBLIC_APP_URL: 'https://example.com',
74
- NEXT_PUBLIC_SUPABASE_URL: 'https://supabase.example.com',
75
- });
76
- expect(validResult.success).toBe(true);
77
-
78
- const invalidResult = urlSchema.safeParse({
79
- NEXT_PUBLIC_APP_URL: 'not-a-url',
80
- NEXT_PUBLIC_SUPABASE_URL: 'also-not-a-url',
81
- });
82
- expect(invalidResult.success).toBe(false);
83
- });
84
-
85
- it('should validate Clerk key prefixes', () => {
86
- const clerkSchema = z.object({
87
- NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY: z.string().startsWith('pk_'),
88
- CLERK_SECRET_KEY: z.string().startsWith('sk_'),
89
- });
90
-
91
- const validResult = clerkSchema.safeParse({
92
- NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY: 'pk_test_123',
93
- CLERK_SECRET_KEY: 'sk_test_456',
94
- });
95
- expect(validResult.success).toBe(true);
96
-
97
- const invalidResult = clerkSchema.safeParse({
98
- NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY: 'invalid_key',
99
- CLERK_SECRET_KEY: 'invalid_secret',
100
- });
101
- expect(invalidResult.success).toBe(false);
102
- });
103
-
104
- it('should allow optional NextBank fields', () => {
105
- const nextbankSchema = z.object({
106
- NEXTBANK_API: z.string().url().optional(),
107
- NEXTBANK_API_USERNAME: z.string().optional(),
108
- NEXTBANK_API_PASSWORD: z.string().optional(),
109
- });
110
-
111
- const result = nextbankSchema.safeParse({});
112
- expect(result.success).toBe(true);
113
- });
114
-
115
- it('should validate Snowflake configuration fields', () => {
116
- const snowflakeSchema = z.object({
117
- SNOWFLAKE_ACCOUNT: z.string(),
118
- SNOWFLAKE_USERNAME: z.string(),
119
- SNOWFLAKE_PASSWORD: z.string(),
120
- SNOWFLAKE_WAREHOUSE: z.string(),
121
- SNOWFLAKE_DATABASE: z.string(),
122
- SNOWFLAKE_SCHEMA: z.string(),
123
- SNOWFLAKE_ROLE: z.string(),
124
- });
125
-
126
- const result = snowflakeSchema.safeParse({
127
- SNOWFLAKE_ACCOUNT: 'account',
128
- SNOWFLAKE_USERNAME: 'user',
129
- SNOWFLAKE_PASSWORD: 'pass',
130
- SNOWFLAKE_WAREHOUSE: 'WH',
131
- SNOWFLAKE_DATABASE: 'DB',
132
- SNOWFLAKE_SCHEMA: 'SCHEMA',
133
- SNOWFLAKE_ROLE: 'ROLE',
134
- });
135
- expect(result.success).toBe(true);
136
- });
137
-
138
- it('should use default values when environment variables are not set', () => {
139
- const envSchema = z.object({
140
- NODE_ENV: z.enum(['development', 'test', 'production']).default('development'),
141
- NEXT_PUBLIC_APP_URL: z.string().url().default('http://localhost:3000'),
142
- });
143
-
144
- const result = envSchema.parse({});
145
- expect(result.NODE_ENV).toBe('development');
146
- expect(result.NEXT_PUBLIC_APP_URL).toBe('http://localhost:3000');
147
- });
148
-
149
- it('should override defaults with environment variables', () => {
150
- const testEnv = {
151
- NODE_ENV: 'production',
152
- NEXT_PUBLIC_APP_URL: 'https://production.example.com',
153
- };
154
-
155
- const envSchema = z.object({
156
- NODE_ENV: z.enum(['development', 'test', 'production']).default('development'),
157
- NEXT_PUBLIC_APP_URL: z.string().url().default('http://localhost:3000'),
158
- });
159
-
160
- const result = envSchema.parse(testEnv);
161
- expect(result.NODE_ENV).toBe('production');
162
- expect(result.NEXT_PUBLIC_APP_URL).toBe('https://production.example.com');
163
- });
164
- });
@@ -1,46 +0,0 @@
1
- import { describe, it, expect } from 'vitest';
2
-
3
- describe('siteConfig', () => {
4
- it('should have a name property', () => {
5
- const { siteConfig } = require('../site.ts');
6
- expect(siteConfig.name).toBe('DTT Framework');
7
- });
8
-
9
- it('should have a description property', () => {
10
- const { siteConfig } = require('../site.ts');
11
- expect(siteConfig.description).toBe('Production-ready Next.js boilerplate with integrated services');
12
- });
13
-
14
- it('should have a url property', () => {
15
- const { siteConfig } = require('../site.ts');
16
- expect(siteConfig.url).toBeDefined();
17
- expect(typeof siteConfig.url).toBe('string');
18
- });
19
-
20
- it('should have a links object', () => {
21
- const { siteConfig } = require('../site.ts');
22
- expect(siteConfig.links).toBeDefined();
23
- expect(typeof siteConfig.links).toBe('object');
24
- });
25
-
26
- it('should have a twitter link', () => {
27
- const { siteConfig } = require('../site.ts');
28
- expect(siteConfig.links.twitter).toBe('https://twitter.com/odvi');
29
- });
30
-
31
- it('should have a github link', () => {
32
- const { siteConfig } = require('../site.ts');
33
- expect(siteConfig.links.github).toBe('https://github.com/odvi');
34
- });
35
-
36
- it('should have a valid URL format for url property', () => {
37
- const { siteConfig } = require('../site.ts');
38
- expect(siteConfig.url).toMatch(/^https?:\/\/.+/);
39
- });
40
-
41
- it('should have valid URL formats for all links', () => {
42
- const { siteConfig } = require('../site.ts');
43
- expect(siteConfig.links.twitter).toMatch(/^https?:\/\/.+/);
44
- expect(siteConfig.links.github).toMatch(/^https?:\/\/.+/);
45
- });
46
- });
@@ -1,142 +0,0 @@
1
- import { describe, it, expect } from 'vitest';
2
- import { SERVICES } from '../health-check/config';
3
-
4
- describe('SERVICES configuration', () => {
5
- it('should be defined', () => {
6
- expect(SERVICES).toBeDefined();
7
- expect(Array.isArray(SERVICES)).toBe(true);
8
- });
9
-
10
- it('should have 6 services configured', () => {
11
- expect(SERVICES).toHaveLength(6);
12
- });
13
-
14
- it('should have Clerk Authentication service', () => {
15
- const clerkService = SERVICES.find((s) => s.name === 'Clerk Authentication');
16
- expect(clerkService).toBeDefined();
17
- expect(clerkService?.icon).toBe('key');
18
- expect(clerkService?.checks).toHaveLength(3);
19
- });
20
-
21
- it('should have Supabase Database service', () => {
22
- const dbService = SERVICES.find((s) => s.name === 'Supabase Database');
23
- expect(dbService).toBeDefined();
24
- expect(dbService?.icon).toBe('database');
25
- expect(dbService?.checks).toHaveLength(3);
26
- });
27
-
28
- it('should have Supabase Storage service', () => {
29
- const storageService = SERVICES.find((s) => s.name === 'Supabase Storage');
30
- expect(storageService).toBeDefined();
31
- expect(storageService?.icon).toBe('folder');
32
- expect(storageService?.checks).toHaveLength(3);
33
- });
34
-
35
- it('should have Supabase Edge Functions service', () => {
36
- const edgeService = SERVICES.find((s) => s.name === 'Supabase Edge Functions');
37
- expect(edgeService).toBeDefined();
38
- expect(edgeService?.icon).toBe('zap');
39
- expect(edgeService?.checks).toHaveLength(2);
40
- });
41
-
42
- it('should have Snowflake service', () => {
43
- const snowflakeService = SERVICES.find((s) => s.name === 'Snowflake');
44
- expect(snowflakeService).toBeDefined();
45
- expect(snowflakeService?.icon).toBe('snowflake');
46
- expect(snowflakeService?.checks).toHaveLength(2);
47
- });
48
-
49
- it('should have NextBank service', () => {
50
- const nextbankService = SERVICES.find((s) => s.name === 'NextBank');
51
- expect(nextbankService).toBeDefined();
52
- expect(nextbankService?.icon).toBe('building');
53
- expect(nextbankService?.checks).toHaveLength(2);
54
- });
55
-
56
- it('should have all services with required properties', () => {
57
- SERVICES.forEach((service) => {
58
- expect(service.name).toBeDefined();
59
- expect(typeof service.name).toBe('string');
60
- expect(service.name.length).toBeGreaterThan(0);
61
-
62
- expect(service.icon).toBeDefined();
63
- expect(typeof service.icon).toBe('string');
64
- expect(service.icon.length).toBeGreaterThan(0);
65
-
66
- expect(service.checks).toBeDefined();
67
- expect(Array.isArray(service.checks)).toBe(true);
68
- expect(service.checks.length).toBeGreaterThan(0);
69
- });
70
- });
71
-
72
- it('should have all checks with required properties', () => {
73
- SERVICES.forEach((service) => {
74
- service.checks.forEach((check) => {
75
- expect(check.name).toBeDefined();
76
- expect(typeof check.name).toBe('string');
77
- expect(check.name.length).toBeGreaterThan(0);
78
-
79
- expect(check.endpoint).toBeDefined();
80
- expect(typeof check.endpoint).toBe('string');
81
- expect(check.endpoint.length).toBeGreaterThan(0);
82
- expect(check.endpoint).toMatch(/^\/.+/);
83
- });
84
- });
85
- });
86
-
87
- it('should have unique service names', () => {
88
- const serviceNames = SERVICES.map((s) => s.name);
89
- const uniqueNames = new Set(serviceNames);
90
- expect(uniqueNames.size).toBe(serviceNames.length);
91
- });
92
-
93
- it('should have unique icons', () => {
94
- const icons = SERVICES.map((s) => s.icon);
95
- const uniqueIcons = new Set(icons);
96
- expect(uniqueIcons.size).toBe(icons.length);
97
- });
98
-
99
- it('should have Clerk Authentication checks with correct endpoints', () => {
100
- const clerkService = SERVICES.find((s) => s.name === 'Clerk Authentication');
101
- expect(clerkService?.checks[0].endpoint).toBe('/clerk/user');
102
- expect(clerkService?.checks[1].endpoint).toBe('/clerk/org');
103
- expect(clerkService?.checks[2].endpoint).toBe('/clerk/members');
104
- });
105
-
106
- it('should have Supabase Database checks with correct endpoints', () => {
107
- const dbService = SERVICES.find((s) => s.name === 'Supabase Database');
108
- expect(dbService?.checks[0].endpoint).toBe('/database/write');
109
- expect(dbService?.checks[1].endpoint).toBe('/database/read');
110
- expect(dbService?.checks[2].endpoint).toBe('/database/delete');
111
- });
112
-
113
- it('should have Supabase Storage checks with correct endpoints', () => {
114
- const storageService = SERVICES.find((s) => s.name === 'Supabase Storage');
115
- expect(storageService?.checks[0].endpoint).toBe('/storage/upload');
116
- expect(storageService?.checks[1].endpoint).toBe('/storage/download');
117
- expect(storageService?.checks[2].endpoint).toBe('/storage/delete');
118
- });
119
-
120
- it('should have Edge Functions checks with correct endpoints', () => {
121
- const edgeService = SERVICES.find((s) => s.name === 'Supabase Edge Functions');
122
- expect(edgeService?.checks[0].endpoint).toBe('/edge/ping');
123
- expect(edgeService?.checks[1].endpoint).toBe('/edge/auth');
124
- });
125
-
126
- it('should have Snowflake checks with correct endpoints', () => {
127
- const snowflakeService = SERVICES.find((s) => s.name === 'Snowflake');
128
- expect(snowflakeService?.checks[0].endpoint).toBe('/snowflake/connect');
129
- expect(snowflakeService?.checks[1].endpoint).toBe('/snowflake/query');
130
- });
131
-
132
- it('should have NextBank checks with correct endpoints', () => {
133
- const nextbankService = SERVICES.find((s) => s.name === 'NextBank');
134
- expect(nextbankService?.checks[0].endpoint).toBe('/nextbank/ping');
135
- expect(nextbankService?.checks[1].endpoint).toBe('/nextbank/auth');
136
- });
137
-
138
- it('should have total of 15 checks across all services', () => {
139
- const totalChecks = SERVICES.reduce((sum, service) => sum + service.checks.length, 0);
140
- expect(totalChecks).toBe(15);
141
- });
142
- });
@@ -1,201 +0,0 @@
1
- import { describe, it, expect } from 'vitest';
2
- import type { HealthStatus, ServiceCheck, ServiceHealth } from '../health-check/types';
3
-
4
- describe('Health check types', () => {
5
- describe('HealthStatus type', () => {
6
- it('should accept valid health status values', () => {
7
- const validStatuses: HealthStatus[] = [
8
- 'healthy',
9
- 'unhealthy',
10
- 'error',
11
- 'pending',
12
- 'unconfigured',
13
- ];
14
-
15
- validStatuses.forEach((status) => {
16
- expect(status).toBeDefined();
17
- expect(typeof status).toBe('string');
18
- });
19
- });
20
-
21
- it('should have exactly 5 valid health status values', () => {
22
- const validStatuses: HealthStatus[] = [
23
- 'healthy',
24
- 'unhealthy',
25
- 'error',
26
- 'pending',
27
- 'unconfigured',
28
- ];
29
-
30
- expect(validStatuses).toHaveLength(5);
31
- });
32
-
33
- it('should allow creating objects with HealthStatus', () => {
34
- const status: HealthStatus = 'healthy';
35
- expect(status).toBe('healthy');
36
- });
37
- });
38
-
39
- describe('ServiceCheck interface', () => {
40
- it('should create a valid ServiceCheck object', () => {
41
- const serviceCheck: ServiceCheck = {
42
- name: 'Test Check',
43
- endpoint: '/test/endpoint',
44
- status: 'healthy',
45
- responseTimeMs: 100,
46
- error: undefined,
47
- };
48
-
49
- expect(serviceCheck.name).toBe('Test Check');
50
- expect(serviceCheck.endpoint).toBe('/test/endpoint');
51
- expect(serviceCheck.status).toBe('healthy');
52
- expect(serviceCheck.responseTimeMs).toBe(100);
53
- expect(serviceCheck.error).toBeUndefined();
54
- });
55
-
56
- it('should create ServiceCheck without optional fields', () => {
57
- const serviceCheck: ServiceCheck = {
58
- name: 'Test Check',
59
- endpoint: '/test/endpoint',
60
- status: 'healthy',
61
- };
62
-
63
- expect(serviceCheck.name).toBe('Test Check');
64
- expect(serviceCheck.endpoint).toBe('/test/endpoint');
65
- expect(serviceCheck.status).toBe('healthy');
66
- expect(serviceCheck.responseTimeMs).toBeUndefined();
67
- expect(serviceCheck.error).toBeUndefined();
68
- });
69
-
70
- it('should create ServiceCheck with error field', () => {
71
- const serviceCheck: ServiceCheck = {
72
- name: 'Test Check',
73
- endpoint: '/test/endpoint',
74
- status: 'error',
75
- error: 'Connection failed',
76
- };
77
-
78
- expect(serviceCheck.status).toBe('error');
79
- expect(serviceCheck.error).toBe('Connection failed');
80
- });
81
-
82
- it('should accept all valid HealthStatus values in ServiceCheck', () => {
83
- const validStatuses: HealthStatus[] = [
84
- 'healthy',
85
- 'unhealthy',
86
- 'error',
87
- 'pending',
88
- 'unconfigured',
89
- ];
90
-
91
- validStatuses.forEach((status) => {
92
- const serviceCheck: ServiceCheck = {
93
- name: 'Test Check',
94
- endpoint: '/test/endpoint',
95
- status,
96
- };
97
- expect(serviceCheck.status).toBe(status);
98
- });
99
- });
100
- });
101
-
102
- describe('ServiceHealth interface', () => {
103
- it('should create a valid ServiceHealth object', () => {
104
- const checks: ServiceCheck[] = [
105
- {
106
- name: 'Check 1',
107
- endpoint: '/check1',
108
- status: 'healthy',
109
- responseTimeMs: 50,
110
- },
111
- {
112
- name: 'Check 2',
113
- endpoint: '/check2',
114
- status: 'healthy',
115
- responseTimeMs: 75,
116
- },
117
- ];
118
-
119
- const serviceHealth: ServiceHealth = {
120
- name: 'Test Service',
121
- icon: 'test-icon',
122
- status: 'healthy',
123
- responseTimeMs: 125,
124
- checks,
125
- };
126
-
127
- expect(serviceHealth.name).toBe('Test Service');
128
- expect(serviceHealth.icon).toBe('test-icon');
129
- expect(serviceHealth.status).toBe('healthy');
130
- expect(serviceHealth.responseTimeMs).toBe(125);
131
- expect(serviceHealth.checks).toHaveLength(2);
132
- });
133
-
134
- it('should create ServiceHealth with empty checks array', () => {
135
- const serviceHealth: ServiceHealth = {
136
- name: 'Test Service',
137
- icon: 'test-icon',
138
- status: 'unconfigured',
139
- responseTimeMs: 0,
140
- checks: [],
141
- };
142
-
143
- expect(serviceHealth.checks).toHaveLength(0);
144
- });
145
-
146
- it('should create ServiceHealth with error status', () => {
147
- const checks: ServiceCheck[] = [
148
- {
149
- name: 'Check 1',
150
- endpoint: '/check1',
151
- status: 'error',
152
- error: 'Failed to connect',
153
- },
154
- ];
155
-
156
- const serviceHealth: ServiceHealth = {
157
- name: 'Test Service',
158
- icon: 'test-icon',
159
- status: 'error',
160
- responseTimeMs: 0,
161
- checks,
162
- };
163
-
164
- expect(serviceHealth.status).toBe('error');
165
- expect(serviceHealth.checks[0]?.error).toBe('Failed to connect');
166
- });
167
-
168
- it('should allow all valid HealthStatus values in ServiceHealth', () => {
169
- const validStatuses: HealthStatus[] = [
170
- 'healthy',
171
- 'unhealthy',
172
- 'error',
173
- 'pending',
174
- 'unconfigured',
175
- ];
176
-
177
- validStatuses.forEach((status) => {
178
- const serviceHealth: ServiceHealth = {
179
- name: 'Test Service',
180
- icon: 'test-icon',
181
- status,
182
- responseTimeMs: 0,
183
- checks: [],
184
- };
185
- expect(serviceHealth.status).toBe(status);
186
- });
187
- });
188
-
189
- it('should have responseTimeMs as required field', () => {
190
- const serviceHealth: ServiceHealth = {
191
- name: 'Test Service',
192
- icon: 'test-icon',
193
- status: 'healthy',
194
- responseTimeMs: 100,
195
- checks: [],
196
- };
197
-
198
- expect(typeof serviceHealth.responseTimeMs).toBe('number');
199
- });
200
- });
201
- });
@@ -1,28 +0,0 @@
1
- import { describe, it, expect, vi, beforeEach, afterEach } from 'vitest';
2
- import { renderHook } from '@testing-library/react';
3
- import { useDebounce } from '../utils/use-debounce';
4
-
5
- describe('useDebounce hook', () => {
6
- beforeEach(() => {
7
- vi.useFakeTimers();
8
- });
9
-
10
- afterEach(() => {
11
- vi.restoreAllMocks();
12
- });
13
-
14
- it('should return initial value immediately', () => {
15
- const { result } = renderHook(() => useDebounce('test', 500));
16
- expect(result.current).toBe('test');
17
- });
18
-
19
- it('should cleanup timer on unmount', () => {
20
- const clearTimeoutSpy = vi.spyOn(global, 'clearTimeout');
21
-
22
- const { unmount } = renderHook(() => useDebounce('test', 500));
23
-
24
- unmount();
25
-
26
- expect(clearTimeoutSpy).toHaveBeenCalled();
27
- });
28
- });
@@ -1,52 +0,0 @@
1
- import { describe, it, expect } from 'vitest';
2
- import { cn } from '../utils';
3
-
4
- describe('cn utility function', () => {
5
- it('should merge class names correctly', () => {
6
- expect(cn('foo', 'bar')).toBe('foo bar');
7
- });
8
-
9
- it('should handle conditional classes', () => {
10
- expect(cn('foo', false && 'bar', 'baz')).toBe('foo baz');
11
- });
12
-
13
- it('should handle undefined and null values', () => {
14
- expect(cn('foo', undefined, null, 'bar')).toBe('foo bar');
15
- });
16
-
17
- it('should handle empty strings', () => {
18
- expect(cn('foo', '', 'bar')).toBe('foo bar');
19
- });
20
-
21
- it('should merge Tailwind classes correctly - later classes should override earlier ones', () => {
22
- expect(cn('px-2 py-1', 'px-4')).toBe('py-1 px-4');
23
- });
24
-
25
- it('should handle arrays of classes', () => {
26
- expect(cn(['foo', 'bar'], 'baz')).toBe('foo bar baz');
27
- });
28
-
29
- it('should handle objects with conditional classes', () => {
30
- expect(cn({ foo: true, bar: false, baz: true })).toBe('foo baz');
31
- });
32
-
33
- it('should handle mixed input types', () => {
34
- expect(cn('foo', { bar: true }, ['baz'], undefined)).toBe('foo bar baz');
35
- });
36
-
37
- it('should handle conflicting Tailwind utility classes', () => {
38
- expect(cn('text-red-500', 'text-blue-500')).toBe('text-blue-500');
39
- });
40
-
41
- it('should handle responsive classes', () => {
42
- expect(cn('px-2', 'md:px-4', 'lg:px-6')).toBe('px-2 md:px-4 lg:px-6');
43
- });
44
-
45
- it('should return empty string when no valid classes provided', () => {
46
- expect(cn('', false, null, undefined)).toBe('');
47
- });
48
-
49
- it('should handle numbers converted to strings', () => {
50
- expect(cn('foo', 123 as any)).toBe('foo 123');
51
- });
52
- });
@@ -1,114 +0,0 @@
1
- import { describe, it, expect } from 'vitest';
2
- import { healthCheckSchema } from '../validators';
3
-
4
- describe('healthCheckSchema validator', () => {
5
- it('should validate a healthy health check', () => {
6
- const result = healthCheckSchema.safeParse({
7
- status: 'healthy',
8
- responseTimeMs: 100,
9
- message: 'Service is healthy',
10
- });
11
- expect(result.success).toBe(true);
12
- });
13
-
14
- it('should validate an unhealthy health check', () => {
15
- const result = healthCheckSchema.safeParse({
16
- status: 'unhealthy',
17
- responseTimeMs: 5000,
18
- message: 'Service is unhealthy',
19
- });
20
- expect(result.success).toBe(true);
21
- });
22
-
23
- it('should validate an error health check', () => {
24
- const result = healthCheckSchema.safeParse({
25
- status: 'error',
26
- error: 'Connection failed',
27
- });
28
- expect(result.success).toBe(true);
29
- });
30
-
31
- it('should validate a pending health check', () => {
32
- const result = healthCheckSchema.safeParse({
33
- status: 'pending',
34
- message: 'Checking...',
35
- });
36
- expect(result.success).toBe(true);
37
- });
38
-
39
- it('should validate an unconfigured health check', () => {
40
- const result = healthCheckSchema.safeParse({
41
- status: 'unconfigured',
42
- message: 'Service not configured',
43
- });
44
- expect(result.success).toBe(true);
45
- });
46
-
47
- it('should reject invalid status values', () => {
48
- const result = healthCheckSchema.safeParse({
49
- status: 'invalid',
50
- });
51
- expect(result.success).toBe(false);
52
- });
53
-
54
- it('should reject missing status field', () => {
55
- const result = healthCheckSchema.safeParse({});
56
- expect(result.success).toBe(false);
57
- });
58
-
59
- it('should accept health check with only required fields', () => {
60
- const result = healthCheckSchema.safeParse({
61
- status: 'healthy',
62
- });
63
- expect(result.success).toBe(true);
64
- });
65
-
66
- it('should reject invalid responseTimeMs type', () => {
67
- const result = healthCheckSchema.safeParse({
68
- status: 'healthy',
69
- responseTimeMs: '100' as any,
70
- });
71
- expect(result.success).toBe(false);
72
- });
73
-
74
- it('should reject negative responseTimeMs', () => {
75
- const result = healthCheckSchema.safeParse({
76
- status: 'healthy',
77
- responseTimeMs: -100,
78
- });
79
- expect(result.success).toBe(true); // Zod doesn't enforce min on number by default
80
- });
81
-
82
- it('should reject invalid message type', () => {
83
- const result = healthCheckSchema.safeParse({
84
- status: 'healthy',
85
- message: 123 as any,
86
- });
87
- expect(result.success).toBe(false);
88
- });
89
-
90
- it('should reject invalid error type', () => {
91
- const result = healthCheckSchema.safeParse({
92
- status: 'error',
93
- error: 123 as any,
94
- });
95
- expect(result.success).toBe(false);
96
- });
97
-
98
- it('should provide detailed error messages for invalid status', () => {
99
- const result = healthCheckSchema.safeParse({
100
- status: 'invalid',
101
- });
102
- if (!result.success) {
103
- expect(result.error.issues[0]?.message).toContain('Invalid enum value');
104
- }
105
- });
106
-
107
- it('should allow all valid status enum values', () => {
108
- const validStatuses = ['healthy', 'unhealthy', 'error', 'pending', 'unconfigured'] as const;
109
- validStatuses.forEach((status) => {
110
- const result = healthCheckSchema.safeParse({ status });
111
- expect(result.success).toBe(true);
112
- });
113
- });
114
- });
@@ -1,31 +0,0 @@
1
- import { describe, it, expect } from 'vitest';
2
- import { healthCheckTests, type HealthCheckTest } from '../health-checks';
3
-
4
- describe('healthCheckTests schema', () => {
5
- it('should have healthCheckTests table defined', () => {
6
- expect(healthCheckTests).toBeDefined();
7
- });
8
-
9
- it('should export HealthCheckTest type', () => {
10
- const healthCheckTest: HealthCheckTest = {
11
- id: 'test-uuid',
12
- testKey: 'test-key',
13
- testValue: 'test-value',
14
- createdAt: new Date(),
15
- };
16
- expect(healthCheckTest).toBeDefined();
17
- expect(healthCheckTest.testKey).toBe('test-key');
18
- });
19
-
20
- it('should allow HealthCheckTest with null testValue', () => {
21
- const healthCheckTest: HealthCheckTest = {
22
- id: 'test-uuid',
23
- testKey: 'test-key',
24
- testValue: null,
25
- createdAt: new Date(),
26
- };
27
- expect(healthCheckTest).toBeDefined();
28
- expect(healthCheckTest.testKey).toBe('test-key');
29
- expect(healthCheckTest.testValue).toBeNull();
30
- });
31
- });
@@ -1,46 +0,0 @@
1
- import { describe, it, expect } from 'vitest';
2
- import { users, type User, type NewUser } from '../users';
3
-
4
- describe('users schema', () => {
5
- it('should have users table defined', () => {
6
- expect(users).toBeDefined();
7
- });
8
-
9
- it('should export User type', () => {
10
- const user: User = {
11
- id: 'test-id',
12
- email: 'test@example.com',
13
- firstName: 'Test',
14
- lastName: 'User',
15
- imageUrl: 'https://example.com/image.jpg',
16
- clerkOrgId: 'org-123',
17
- createdAt: new Date(),
18
- updatedAt: new Date(),
19
- };
20
- expect(user).toBeDefined();
21
- expect(user.id).toBe('test-id');
22
- });
23
-
24
- it('should export NewUser type', () => {
25
- const newUser: NewUser = {
26
- id: 'test-id',
27
- email: 'test@example.com',
28
- firstName: 'Test',
29
- lastName: 'User',
30
- imageUrl: 'https://example.com/image.jpg',
31
- clerkOrgId: 'org-123',
32
- };
33
- expect(newUser).toBeDefined();
34
- expect(newUser.email).toBe('test@example.com');
35
- });
36
-
37
- it('should allow NewUser without optional fields', () => {
38
- const newUser: NewUser = {
39
- id: 'test-id',
40
- email: 'test@example.com',
41
- };
42
- expect(newUser).toBeDefined();
43
- expect(newUser.id).toBe('test-id');
44
- expect(newUser.email).toBe('test@example.com');
45
- });
46
- });
@@ -1,87 +0,0 @@
1
- import { describe, it, expect, beforeEach } from 'vitest';
2
- import { useUIStore } from '../ui-store';
3
-
4
- describe('useUIStore', () => {
5
- beforeEach(() => {
6
- // Reset store state before each test
7
- useUIStore.setState({ sidebarOpen: false });
8
- });
9
-
10
- it('should have initial state with sidebar closed', () => {
11
- const state = useUIStore.getState();
12
- expect(state.sidebarOpen).toBe(false);
13
- });
14
-
15
- it('should toggle sidebar from closed to open', () => {
16
- const { toggleSidebar } = useUIStore.getState();
17
- toggleSidebar();
18
-
19
- const state = useUIStore.getState();
20
- expect(state.sidebarOpen).toBe(true);
21
- });
22
-
23
- it('should toggle sidebar from open to closed', () => {
24
- useUIStore.setState({ sidebarOpen: true });
25
- const { toggleSidebar } = useUIStore.getState();
26
- toggleSidebar();
27
-
28
- const state = useUIStore.getState();
29
- expect(state.sidebarOpen).toBe(false);
30
- });
31
-
32
- it('should toggle sidebar multiple times', () => {
33
- const { toggleSidebar } = useUIStore.getState();
34
-
35
- toggleSidebar();
36
- expect(useUIStore.getState().sidebarOpen).toBe(true);
37
-
38
- toggleSidebar();
39
- expect(useUIStore.getState().sidebarOpen).toBe(false);
40
-
41
- toggleSidebar();
42
- expect(useUIStore.getState().sidebarOpen).toBe(true);
43
-
44
- toggleSidebar();
45
- expect(useUIStore.getState().sidebarOpen).toBe(false);
46
- });
47
-
48
- it('should provide toggleSidebar function', () => {
49
- const state = useUIStore.getState();
50
- expect(state.toggleSidebar).toBeDefined();
51
- expect(typeof state.toggleSidebar).toBe('function');
52
- });
53
-
54
- it('should maintain state consistency across multiple store accesses', () => {
55
- const state1 = useUIStore.getState();
56
- const state2 = useUIStore.getState();
57
-
58
- expect(state1.sidebarOpen).toBe(state2.sidebarOpen);
59
- expect(state1.toggleSidebar).toBe(state2.toggleSidebar);
60
- });
61
-
62
- it('should allow direct state setting', () => {
63
- useUIStore.setState({ sidebarOpen: true });
64
-
65
- const state = useUIStore.getState();
66
- expect(state.sidebarOpen).toBe(true);
67
- });
68
-
69
- it('should handle rapid state changes', () => {
70
- const { toggleSidebar } = useUIStore.getState();
71
-
72
- for (let i = 0; i < 10; i++) {
73
- toggleSidebar();
74
- }
75
-
76
- const state = useUIStore.getState();
77
- expect(state.sidebarOpen).toBe(false); // 10 toggles from false = false
78
- });
79
-
80
- it('should reset to initial state when explicitly set', () => {
81
- useUIStore.setState({ sidebarOpen: true });
82
- expect(useUIStore.getState().sidebarOpen).toBe(true);
83
-
84
- useUIStore.setState({ sidebarOpen: false });
85
- expect(useUIStore.getState().sidebarOpen).toBe(false);
86
- });
87
- });