vue-watermark-hook.spec.ts 1.1 KB

12345678910111213141516171819202122232425262728
  1. import { describe, expect, it } from 'vitest'
  2. import { ref } from 'vue'
  3. import { useViewerWatermark } from '../packages/components/vue3/src/package/components/FileViewer/hooks/useViewerWatermark'
  4. import type { FileViewerWatermarkOptions } from '../packages/core/src'
  5. describe('Vue FileViewer watermark hook', () => {
  6. it('maps core watermark presentation state into Vue refs without local style rules', () => {
  7. const watermark = ref<boolean | FileViewerWatermarkOptions | undefined>({
  8. text: 'Internal Preview',
  9. gapX: 300
  10. })
  11. const state = useViewerWatermark(() => watermark.value)
  12. expect(state.normalizedWatermark.value).toMatchObject({
  13. enabled: true,
  14. text: 'Internal Preview',
  15. gapX: 300
  16. })
  17. expect(state.watermarkStyle.value?.backgroundImage).toContain('data:image/svg+xml')
  18. expect(state.watermarkInlineStyle.value).toContain('background-image:')
  19. watermark.value = false
  20. expect(state.normalizedWatermark.value).toBeNull()
  21. expect(state.watermarkStyle.value).toBeUndefined()
  22. expect(state.watermarkInlineStyle.value).toBe('')
  23. })
  24. })