timezone.module.spec.tsβ’2.15 kB
import { describe, it, expect, beforeEach, afterEach } from 'vitest'
import { TimezoneModule } from './timezone.module'
import { TimezoneController } from './timezone.controller'
import { TimezoneService } from './timezone.service'
describe('TimezoneModule', () => {
let originalEnv: Record<string, string | undefined>
beforeEach(() => {
// Save original env
originalEnv = { ...process.env }
})
afterEach(() => {
// Restore environment
process.env = originalEnv
})
describe('forRoot', () => {
it('should register controller in development mode', () => {
process.env.NODE_ENV = 'development'
const module = TimezoneModule.forRoot()
expect(module.module).toBe(TimezoneModule)
expect(module.controllers).toEqual([TimezoneController])
expect(module.providers).toEqual([TimezoneService])
expect(module.exports).toEqual([TimezoneService])
})
it('should default to development mode when NODE_ENV is not set', () => {
delete process.env.NODE_ENV
const module = TimezoneModule.forRoot()
expect(module.controllers).toEqual([TimezoneController])
expect(module.providers).toEqual([TimezoneService])
})
it('should not register controller in production mode', () => {
process.env.NODE_ENV = 'production'
const module = TimezoneModule.forRoot()
expect(module.module).toBe(TimezoneModule)
expect(module.controllers).toEqual([])
expect(module.providers).toEqual([TimezoneService])
expect(module.exports).toEqual([TimezoneService])
})
it('should always provide TimezoneService regardless of environment', () => {
// Test development
process.env.NODE_ENV = 'development'
const devModule = TimezoneModule.forRoot()
expect(devModule.providers).toEqual([TimezoneService])
expect(devModule.exports).toEqual([TimezoneService])
// Test production
process.env.NODE_ENV = 'production'
const prodModule = TimezoneModule.forRoot()
expect(prodModule.providers).toEqual([TimezoneService])
expect(prodModule.exports).toEqual([TimezoneService])
})
})
})