Prepare production branch: remove test files and add Dockerfile

- Remove all test files (__tests__, *.test.*, *.spec.*)
- Remove Jest configuration files (jest.config.js, jest.setup.js)
- Remove test-related scripts from package.json
- Remove Jest dependencies from package.json
- Add production Dockerfile for standalone Next.js app
- Update tsconfig.json exclusions

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Claude Assistant
2025-09-22 14:38:19 +00:00
parent 19d29032ae
commit 5542a9d6a7
11 changed files with 58 additions and 502 deletions

View File

@@ -1,137 +0,0 @@
import {
userRegistrationSchema,
userLoginSchema,
chatMessageSchema,
prayerRequestSchema,
bookmarkSchema,
searchSchema,
chapterSchema
} from '@/lib/validation'
describe('Validation Schemas', () => {
describe('userRegistrationSchema', () => {
it('should validate correct user registration data', () => {
const validData = {
email: 'test@example.com',
password: 'Password123',
name: 'Test User'
}
const result = userRegistrationSchema.safeParse(validData)
expect(result.success).toBe(true)
})
it('should reject invalid email', () => {
const invalidData = {
email: 'invalid-email',
password: 'Password123',
name: 'Test User'
}
const result = userRegistrationSchema.safeParse(invalidData)
expect(result.success).toBe(false)
})
it('should reject weak password', () => {
const invalidData = {
email: 'test@example.com',
password: 'weak',
name: 'Test User'
}
const result = userRegistrationSchema.safeParse(invalidData)
expect(result.success).toBe(false)
})
})
describe('chatMessageSchema', () => {
it('should validate correct chat message data', () => {
const validData = {
messages: [
{ role: 'user', content: 'Hello' },
{ role: 'assistant', content: 'Hi there!' }
]
}
const result = chatMessageSchema.safeParse(validData)
expect(result.success).toBe(true)
})
it('should reject empty messages array', () => {
const invalidData = {
messages: []
}
const result = chatMessageSchema.safeParse(invalidData)
expect(result.success).toBe(false)
})
})
describe('prayerRequestSchema', () => {
it('should validate correct prayer request', () => {
const validData = {
content: 'Please pray for my family during this difficult time.',
isAnonymous: true
}
const result = prayerRequestSchema.safeParse(validData)
expect(result.success).toBe(true)
})
it('should reject too short prayer request', () => {
const invalidData = {
content: 'Short',
isAnonymous: true
}
const result = prayerRequestSchema.safeParse(invalidData)
expect(result.success).toBe(false)
})
})
describe('searchSchema', () => {
it('should validate correct search parameters', () => {
const validData = {
q: 'love',
limit: 10
}
const result = searchSchema.safeParse(validData)
expect(result.success).toBe(true)
})
it('should apply default limit', () => {
const validData = {
q: 'love'
}
const result = searchSchema.safeParse(validData)
expect(result.success).toBe(true)
if (result.success) {
expect(result.data.limit).toBe(10)
}
})
})
describe('chapterSchema', () => {
it('should validate correct chapter parameters', () => {
const validData = {
book: 1,
chapter: 1
}
const result = chapterSchema.safeParse(validData)
expect(result.success).toBe(true)
})
it('should reject invalid book ID', () => {
const invalidData = {
book: 0,
chapter: 1
}
const result = chapterSchema.safeParse(invalidData)
expect(result.success).toBe(false)
})
})
})