import { describe, expect, it } from 'vitest' import { useSequenceUtils } from '../../composables/useSequenceUtils' const { findSequenceProblems } = useSequenceUtils() describe('useSequenceUtils findSequenceProblems', () => { it('should name each invalid character once in upper case when the sequence has characters outside the alphabet', () => { expect(findSequenceProblems('ATGxXZ', 'dna').invalidCharacters).toEqual(['X', 'Z']) }) it('should not report whitespace as invalid when the sequence is formatted', () => { expect(findSequenceProblems('ATG CA\nTT', 'dna').invalidCharacters).toEqual([]) }) it('should count N bases as ambiguous when the sequence is DNA', () => { expect(findSequenceProblems('ATNnG', 'dna').ambiguousBases).toBe(2) }) it('should not count N as ambiguous when the sequence is protein', () => { expect(findSequenceProblems('MNNK', 'protein').ambiguousBases).toBe(0) }) }) describe('useSequenceUtils detectSequenceType', () => { it('should detect DNA when a DNA sequence is split across lines', () => { expect(useSequenceUtils().detectSequenceType('ACGT\nACGT')).toBe('dna') }) })