- Adapt the contributed S3 client behind the neutral storage provider contract - Resolve access credentials lazily for each storage operation - Preserve namespace isolation, CORS setup, pagination, progress, and metadata fallbacks Co-authored-by: Rob Coenen <753704+rcoenen@users.noreply.github.com>
34 lines
1.4 KiB
TypeScript
34 lines
1.4 KiB
TypeScript
import { describe, expect, test } from 'bun:test'
|
|
|
|
import {
|
|
STORAGE_DOCUMENTS_PREFIX,
|
|
STORAGE_NAMESPACE,
|
|
STORAGE_NAMESPACE_MARKER,
|
|
documentFigKey,
|
|
documentIdFromFigKey,
|
|
documentMetaKey,
|
|
documentThumbnailKey
|
|
} from '@/app/integrations/storage/namespace'
|
|
|
|
describe('storage namespace', () => {
|
|
test('uses the fixed open_pencil_storage prefix', () => {
|
|
expect(STORAGE_NAMESPACE).toBe('open_pencil_storage')
|
|
expect(STORAGE_NAMESPACE_MARKER.startsWith(`${STORAGE_NAMESPACE}/`)).toBe(true)
|
|
expect(STORAGE_DOCUMENTS_PREFIX).toBe('open_pencil_storage/canvases/')
|
|
})
|
|
|
|
test('builds document object keys inside the namespace', () => {
|
|
const id = 'abc-123'
|
|
expect(documentFigKey(id)).toBe('open_pencil_storage/canvases/abc-123.fig')
|
|
expect(documentMetaKey(id)).toBe('open_pencil_storage/canvases/abc-123.meta.json')
|
|
expect(documentThumbnailKey(id)).toBe('open_pencil_storage/canvases/abc-123.thumb.jpg')
|
|
})
|
|
|
|
test('parses document IDs from fig keys and ignores foreign keys', () => {
|
|
expect(documentIdFromFigKey('open_pencil_storage/canvases/uuid-1.fig')).toBe('uuid-1')
|
|
expect(documentIdFromFigKey('other_prefix/canvases/uuid-1.fig')).toBeNull()
|
|
expect(documentIdFromFigKey('open_pencil_storage/canvases/nested/uuid-1.fig')).toBeNull()
|
|
expect(documentIdFromFigKey('open_pencil_storage/canvases/uuid-1.meta.json')).toBeNull()
|
|
})
|
|
})
|