Files
SkinbaseNova/resources/js/lib/uploadNotices.test.js
Gregor Klevze dc51d65440 feat: forum rich-text editor, emoji picker, mentions, discover nav, feed, uploads, profile
Forum:
- TipTap WYSIWYG editor with full toolbar
- @emoji-mart/react emoji picker (consistent with tweets)
- @mention autocomplete with user search API
- Fix PHP 8.4 parse errors in Blade templates
- Fix thread data display (paginator items)
- Align forum page widths to max-w-5xl

Discover:
- Extract shared _nav.blade.php partial
- Add missing nav links to for-you page
- Add Following link for authenticated users

Feed/Posts:
- Post model, controllers, policies, migrations
- Feed page components (PostComposer, FeedCard, etc)
- Post reactions, comments, saves, reports, sharing
- Scheduled publishing support
- Link preview controller

Profile:
- Profile page components (ProfileHero, ProfileTabs)
- Profile API controller

Uploads:
- Upload wizard enhancements
- Scheduled publish picker
- Studio status bar and readiness checklist
2026-03-03 09:48:31 +01:00

41 lines
1.3 KiB
JavaScript

import { describe, expect, it } from 'vitest'
import { mapUploadErrorNotice, mapUploadResultNotice } from './uploadNotices'
describe('uploadNotices mapping', () => {
it('maps duplicate_hash reason to a clear error message', () => {
const notice = mapUploadErrorNotice({
response: {
status: 409,
data: {
reason: 'duplicate_hash',
message: 'Duplicate upload is not allowed. This file already exists.',
},
},
}, 'Upload failed.')
expect(notice.type).toBe('error')
expect(notice.reason).toBe('duplicate_hash')
expect(notice.message).toBe('This file already exists in Skinbase. Please upload a different file.')
})
it('keeps success messages as success', () => {
const notice = mapUploadResultNotice({
type: 'success',
message: 'Artwork published successfully.',
})
expect(notice.type).toBe('success')
expect(notice.message).toBe('Artwork published successfully.')
})
it('normalizes warning messages for queued processing', () => {
const notice = mapUploadResultNotice({
level: 'warning',
message: 'Upload received. Processing is queued.',
})
expect(notice.type).toBe('warning')
expect(notice.message).toBe('Upload received. Processing is queued.')
})
})