31 lines
1.2 KiB
TypeScript
31 lines
1.2 KiB
TypeScript
import { describe, expect, it } from 'vitest'
|
|
import { createStorageProvider } from '@/lib/storage/factory'
|
|
import { StorageConfigError, StorageProviderNotImplementedError } from '@/lib/storage/errors'
|
|
|
|
describe('storage factory', () => {
|
|
it('creates local provider when STORAGE_TYPE=local', () => {
|
|
const provider = createStorageProvider({ storageType: 'local' })
|
|
expect(provider.kind).toBe('local')
|
|
})
|
|
|
|
it('creates minio provider when STORAGE_TYPE=minio', () => {
|
|
process.env.MINIO_ENDPOINT = 'http://127.0.0.1:9000'
|
|
process.env.MINIO_REGION = 'us-east-1'
|
|
process.env.MINIO_BUCKET = 'waoowaoo'
|
|
process.env.MINIO_ACCESS_KEY = 'minioadmin'
|
|
process.env.MINIO_SECRET_KEY = 'minioadmin'
|
|
process.env.MINIO_FORCE_PATH_STYLE = 'true'
|
|
|
|
const provider = createStorageProvider({ storageType: 'minio' })
|
|
expect(provider.kind).toBe('minio')
|
|
})
|
|
|
|
it('throws explicit not-implemented error when STORAGE_TYPE=cos', () => {
|
|
expect(() => createStorageProvider({ storageType: 'cos' })).toThrow(StorageProviderNotImplementedError)
|
|
})
|
|
|
|
it('throws config error on unknown storage type', () => {
|
|
expect(() => createStorageProvider({ storageType: 'unknown' })).toThrow(StorageConfigError)
|
|
})
|
|
})
|