teqo-backup/tests/unit/socialFeedExclusions.unit.spec.ts
Francisco Solla 7259193060 S2-FOLLOWUP (#775) — validate do itemId YouTube deixa de ser código morto
O validate de itemId em social-feed-settings lia data.platform (doc inteiro,
sempre undefined) e nunca validava ID de vídeo em produção. Agora lê
siblingData.platform via helper validateExcludedItemId. Stub YouTube ganha
ids de 11 chars e o spec acompanha, destravando o e2e do describe
'Campaign home content section'. Sem migration.
2026-08-24 23:46:57 -03:00

41 lines
1.6 KiB
TypeScript

import {
validateExcludedItemId,
YOUTUBE_VIDEO_ID_PATTERN,
} 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)
})
})