openpencil/tests/engine/app/integrations/storage/namespace.test.ts
Danila Poyarkov d315547f2b feat(app): register S3-compatible storage
- 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>
2026-07-26 14:26:44 +03:00

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()
})
})