import { extractJsrPackageName } from './util.ts'; describe('modules/datasource/jsr/util', () => { it('should extract package name', () => { const res = extractJsrPackageName('@scope/package-name'); expect(res).toStrictEqual({ scope: 'scope', name: 'package-name', }); }); it('should return null for invalid name', () => { const res = extractJsrPackageName('@invalid/package/name'); expect(res).toBeNull(); }); it('should extract a scope shorter than the JSR registration minimum', () => { const res = extractJsrPackageName('@db/sqlite'); expect(res).toStrictEqual({ scope: 'db', name: 'sqlite', }); }); it('should return null for an empty scope', () => { const res = extractJsrPackageName('@/packagename'); expect(res).toBeNull(); }); it('should return null for exceed scope max length', () => { const res = extractJsrPackageName(`${'@a'.repeat(101)}/packagename`); expect(res).toBeNull(); }); it('should return null for invalid scope name', () => { const res = extractJsrPackageName('@🦕🦕🦕/package-name'); expect(res).toBeNull(); }); it('should return null for invalid package name starting with @', () => { const res = extractJsrPackageName('@scope/@package-name'); expect(res).toBeNull(); }); it('should return null for exceed package max length', () => { const res = extractJsrPackageName(`@scope/${'a'.repeat(59)}`); expect(res).toBeNull(); }); it('should return null for invalid package name', () => { const res = extractJsrPackageName('@scope/PACKAGE-NAME'); expect(res).toBeNull(); }); it('should return null for invalid package name starting with -', () => { const res = extractJsrPackageName('@scope/-package-name'); expect(res).toBeNull(); }); });