import { describe, expect, it } from 'vitest'
import {
  I18nTranslatorError,
  SourceUnavailableError,
  UnknownLocaleError,
  isSourceUnavailableError,
  isUnknownLocaleError,
} from './errors.js'

describe('subtype guards', () => {
  it('isUnknownLocaleError rejects fabricated base instances', () => {
    expect(isUnknownLocaleError(new I18nTranslatorError('UNKNOWN_LOCALE', 'msg'))).toBe(false)
    expect(isUnknownLocaleError(new UnknownLocaleError('en'))).toBe(true)
  })

  it('isSourceUnavailableError rejects fabricated base instances', () => {
    expect(
      isSourceUnavailableError(new I18nTranslatorError('SOURCE_UNAVAILABLE', 'msg')),
    ).toBe(false)
    expect(isSourceUnavailableError(new SourceUnavailableError('product', 'p1'))).toBe(true)
  })
})