teqo-backup/tests/unit/socialFeedExclusions.unit.spec.ts
Francisco Solla 0a8b0774d3
Some checks are pending
Deploy / preflight (push) Waiting to run
Deploy / verify (push) Blocked by required conditions
Deploy / deploy staging (teqo-staging) (push) Blocked by required conditions
Deploy / requeue when main advanced (push) Blocked by required conditions
Deploy / deploy production (teqo-1313) (push) Blocked by required conditions
feat(S44): home divulga a Plenária da Vitória (agenda pré-live, embed ao vivo e kill switch)
2026-10-01 17:47:30 -03:00

39 lines
1.7 KiB
TypeScript

import { YOUTUBE_VIDEO_ID_PATTERN } from '@/lib/shareLink'
import { validateExcludedItemId } from '@/utilities/socialFeed/excludedItems'
import { describe, expect, it } from 'vitest'
describe('validateExcludedItemId', () => {
it('accepts a valid 11-char youtube id', () => {
expect(validateExcludedItemId('dQw4w9WgXcQ', { platform: 'youtube' })).toBe(true)
expect(validateExcludedItemId('e2evideo001', { platform: 'youtube' })).toBe(true)
})
it('rejects youtube ids that are not 11 chars', () => {
expect(validateExcludedItemId('e2e-video-excluido-4', { platform: 'youtube' })).toMatch(
/11 caracteres/,
)
expect(validateExcludedItemId('short', { platform: 'youtube' })).toMatch(/11 caracteres/)
})
it('rejects a pasted youtube url as the id', () => {
expect(
validateExcludedItemId('https://youtube.com/watch?v=dQw4w9WgXcQ', { platform: 'youtube' }),
).toMatch(/11 caracteres/)
})
it('only validates for the youtube platform', () => {
expect(validateExcludedItemId('anything-goes', { platform: 'instagram' })).toBe(true)
expect(validateExcludedItemId('', { platform: 'youtube' })).toBe(true)
expect(validateExcludedItemId(null, { platform: 'youtube' })).toBe(true)
expect(validateExcludedItemId(undefined, { platform: 'youtube' })).toBe(true)
})
})
describe('YOUTUBE_VIDEO_ID_PATTERN', () => {
it('matches exactly 11 url-safe chars', () => {
expect(YOUTUBE_VIDEO_ID_PATTERN.test('dQw4w9WgXcQ')).toBe(true)
expect(YOUTUBE_VIDEO_ID_PATTERN.test('e2evideo001')).toBe(true)
expect(YOUTUBE_VIDEO_ID_PATTERN.test('too-short')).toBe(false)
expect(YOUTUBE_VIDEO_ID_PATTERN.test('e2e-video-excluido-4')).toBe(false)
})
})