payload-plugin-cloud-storage
Version:
Remote storage plugin for Payload CMS.
60 lines (48 loc) • 1.54 kB
text/typescript
import readHook from './readHook'
import type { AdapterInterface } from '../adapter.d'
import { mock as mockInterface } from 'jest-mock-extended'
describe('readHook', () => {
let adapter: AdapterInterface<unknown, unknown>
beforeEach(() => {
adapter = mockInterface<AdapterInterface<unknown, unknown>>({
getEndpointUrl: (filename: string): string => {
return `path/${filename}`
}
})
})
it('does not alter if filename missing', async () => {
const initializedHook = readHook(adapter, 'testProperty')
// @ts-expect-error don't need full def
const result = await initializedHook({
doc: {
}
})
expect(result.testProperty).toBeUndefined()
})
it('can add a property to main upload object', async () => {
const initializedHook = readHook(adapter, 'testProperty')
// @ts-expect-error don't need full def
const result = await initializedHook({
doc: {
filename: 'test.file'
}
})
expect(result.testProperty).toBe('path/test.file')
})
it('can return endpoint for sizes', async () => {
const initializedHook = readHook(adapter, 'testProperty')
// @ts-expect-error don't need full def
const result = await initializedHook({
doc: {
filename: 'test.file',
sizes: {
mobile: {
filename: 'resized.file'
}
}
}
})
expect(result.testProperty).toBe('path/test.file')
expect(result.sizes.mobile.testProperty).toBe('path/resized.file')
})
})