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.')
  })
})
