spb/cancerindex
Public
TypeScript 97.2%
SQL 1.5%
CSS 0.6%
JavaScript 0.5%
1import { describe, expect, it } from 'vitest';2import { classifyRef } from '../src/lib/resolve.js';34describe('classifyRef', () => {5 it('recognises CancerIndex public ids per namespace', () => {6 expect(classifyRef('CI-CAN-00000042', 'CAN')).toBe('id');7 expect(classifyRef('CI-GENE-00000001', 'GENE')).toBe('id');8 // an id from another namespace is not accepted as this entity's id9 expect(classifyRef('CI-GENE-00000001', 'CAN')).toBe('slug');10 });11 it('never treats bare integers as entity ids', () => {12 expect(classifyRef('42', 'CAN')).toBe('slug');13 expect(classifyRef('42', 'PUB')).toBe('pmid'); // PMIDs are the only numeric public references14 });15 it('classifies slugs, symbols and registry ids', () => {16 expect(classifyRef('lung-adenocarcinoma', 'CAN')).toBe('slug');17 expect(classifyRef('BRAF', 'GENE')).toBe('symbol');18 expect(classifyRef('NCT01234567', 'TRIAL')).toBe('nct');19 expect(classifyRef('nct01234567', 'TRIAL')).toBe('nct');20 expect(classifyRef('NCT123', 'TRIAL')).toBe('slug');21 });22});23