feat: add resolveImageUrl helper for salon-images public URLs
This commit is contained in:
27
src/lib/resolveImageUrl.test.ts
Normal file
27
src/lib/resolveImageUrl.test.ts
Normal file
@@ -0,0 +1,27 @@
|
||||
import { describe, it, expect, vi } from 'vitest'
|
||||
|
||||
const getPublicUrlMock = vi.fn()
|
||||
const fromMock = vi.fn((bucketId: string) => {
|
||||
fromMock.mock.calls.push([bucketId])
|
||||
return { getPublicUrl: getPublicUrlMock }
|
||||
})
|
||||
|
||||
vi.mock('./supabase', () => ({
|
||||
supabase: { storage: { from: (bucketId: string) => fromMock(bucketId) } },
|
||||
}))
|
||||
|
||||
import { resolveImageUrl } from './resolveImageUrl'
|
||||
|
||||
describe('resolveImageUrl', () => {
|
||||
it('resolves a storage-relative path to a public URL via the salon-images bucket', () => {
|
||||
getPublicUrlMock.mockReturnValue({
|
||||
data: { publicUrl: 'https://example.supabase.co/storage/v1/object/public/salon-images/products/edge-control.jpg' },
|
||||
})
|
||||
|
||||
const url = resolveImageUrl('products/edge-control.jpg')
|
||||
|
||||
expect(fromMock).toHaveBeenCalledWith('salon-images')
|
||||
expect(getPublicUrlMock).toHaveBeenCalledWith('products/edge-control.jpg')
|
||||
expect(url).toBe('https://example.supabase.co/storage/v1/object/public/salon-images/products/edge-control.jpg')
|
||||
})
|
||||
})
|
||||
5
src/lib/resolveImageUrl.ts
Normal file
5
src/lib/resolveImageUrl.ts
Normal file
@@ -0,0 +1,5 @@
|
||||
import { supabase } from './supabase'
|
||||
|
||||
export function resolveImageUrl(path: string): string {
|
||||
return supabase.storage.from('salon-images').getPublicUrl(path).data.publicUrl
|
||||
}
|
||||
Reference in New Issue
Block a user