Ctrl K
ComunidadGuías…

tests/app-native-packages-infer.unit.test.ts

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
import { describe, expect, it } from 'vitest'
import { ensureCapacitorCorePlaceholder, toNativePackageMap } from '../supabase/functions/_backend/utils/app_native_packages.ts'
import { matchAppPackagesToAdvisories } from '../supabase/functions/_backend/utils/security_advisory_matching.ts'
import { filterInScopePackages } from '../supabase/functions/_backend/utils/security_advisory_packages.ts'
import { fixtureAdvisoryFeedForTests } from '../supabase/functions/_backend/utils/security_advisory_feed.ts'

describe('toNativePackageMap', () => {
  it('keeps packages with blank versions for unknown matching', () => {
    const map = filterInScopePackages(toNativePackageMap([
      { name: '@capgo/cli', version: '' },
      { name: '@capacitor/core', version: '   ' },
    ]))
    expect(map.get('@capgo/cli')).toBe('')
    expect(map.get('@capacitor/core')).toBe('')
    const items = matchAppPackagesToAdvisories(map, fixtureAdvisoryFeedForTests().advisories)
    expect(items.filter(item => item.package === '@capacitor/core')).toHaveLength(2)
    expect(items.filter(item => item.package === '@capgo/cli')).toHaveLength(1)
    expect(items.every(item => item.status === 'unknown')).toBe(true)
  })

  it('keeps packages when version is not a string', () => {
    const map = filterInScopePackages(toNativePackageMap([
      { name: '@capgo/cli', version: 2 as unknown as string },
    ]))
    expect(map.get('@capgo/cli')).toBe('')
  })

  it('does not overwrite a known version with a later blank duplicate', () => {
    const map = toNativePackageMap([
      { name: '@capacitor/core', version: '6.1.0' },
      { name: '@capacitor/core', version: '' },
    ])
    expect(map.get('@capacitor/core')).toBe('6.1.0')
  })
})

describe('ensureCapacitorCorePlaceholder', () => {
  it('adds blank core when ios is reported without core', () => {
    const map = filterInScopePackages(toNativePackageMap([
      { name: '@capacitor/ios', version: '6.2.0' },
    ]))
    ensureCapacitorCorePlaceholder(map)
    expect(map.get('@capacitor/core')).toBe('')
    const items = matchAppPackagesToAdvisories(map, fixtureAdvisoryFeedForTests().advisories)
    expect(items.some(item => item.package === '@capacitor/core' && item.status === 'unknown')).toBe(true)
  })

  it('adds blank core when android is reported without core', () => {
    const map = filterInScopePackages(toNativePackageMap([
      { name: '@capacitor/android', version: '6.2.0' },
    ]))
    ensureCapacitorCorePlaceholder(map)
    expect(map.get('@capacitor/core')).toBe('')
    const items = matchAppPackagesToAdvisories(map, fixtureAdvisoryFeedForTests().advisories)
    expect(items.some(item => item.package === '@capacitor/core' && item.status === 'unknown')).toBe(true)
  })
})