[READ-ONLY] a fast, modern browser for the npm registry
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

test: move CLI tests (#493)

authored by

James Garbutt and committed by
GitHub
881b349c 3acb1beb

+6 -78
-72
test/unit/check-name.spec.ts
··· 1 - import { describe, it, expect } from 'vitest' 2 - import { 3 - normalizePackageName, 4 - levenshteinDistance, 5 - isValidNewPackageName, 6 - } from '../../app/utils/package-name' 7 - 8 - describe('package-name utilities', () => { 9 - describe('normalizePackageName', () => { 10 - it('normalizes simple names', () => { 11 - expect(normalizePackageName('lodash')).toBe('lodash') 12 - expect(normalizePackageName('my-package')).toBe('mypackage') 13 - expect(normalizePackageName('my_package')).toBe('mypackage') 14 - expect(normalizePackageName('my.package')).toBe('mypackage') 15 - }) 16 - 17 - it('removes js/node suffixes', () => { 18 - expect(normalizePackageName('lodash-js')).toBe('lodash') 19 - expect(normalizePackageName('lodashjs')).toBe('lodash') 20 - expect(normalizePackageName('lodash-node')).toBe('lodash') 21 - }) 22 - 23 - it('removes js/node prefixes', () => { 24 - expect(normalizePackageName('js-yaml')).toBe('yaml') 25 - expect(normalizePackageName('node-fetch')).toBe('fetch') 26 - }) 27 - 28 - it('handles scoped packages', () => { 29 - expect(normalizePackageName('@scope/my-package')).toBe('mypackage') 30 - expect(normalizePackageName('@vue/core')).toBe('core') 31 - }) 32 - 33 - it('handles edge cases', () => { 34 - expect(normalizePackageName('js')).toBe('') 35 - expect(normalizePackageName('node')).toBe('') 36 - }) 37 - }) 38 - 39 - describe('levenshteinDistance', () => { 40 - it('returns 0 for identical strings', () => { 41 - expect(levenshteinDistance('hello', 'hello')).toBe(0) 42 - }) 43 - 44 - it('returns correct distance for single character changes', () => { 45 - expect(levenshteinDistance('hello', 'hallo')).toBe(1) 46 - expect(levenshteinDistance('hello', 'hell')).toBe(1) 47 - expect(levenshteinDistance('hello', 'helloo')).toBe(1) 48 - }) 49 - 50 - it('handles empty strings', () => { 51 - expect(levenshteinDistance('', '')).toBe(0) 52 - expect(levenshteinDistance('hello', '')).toBe(5) 53 - expect(levenshteinDistance('', 'hello')).toBe(5) 54 - }) 55 - }) 56 - 57 - describe('isValidNewPackageName', () => { 58 - it('validates correct package names', () => { 59 - expect(isValidNewPackageName('my-package')).toBe(true) 60 - expect(isValidNewPackageName('my_package')).toBe(true) 61 - expect(isValidNewPackageName('@scope/package')).toBe(true) 62 - }) 63 - 64 - it('rejects invalid package names', () => { 65 - expect(isValidNewPackageName('.hidden')).toBe(false) 66 - expect(isValidNewPackageName('-invalid')).toBe(false) 67 - expect(isValidNewPackageName('UPPERCASE')).toBe(false) 68 - expect(isValidNewPackageName('has spaces')).toBe(false) 69 - expect(isValidNewPackageName('')).toBe(false) 70 - }) 71 - }) 72 - })
+1 -1
test/unit/cli-schemas.spec.ts test/unit/cli/schemas.spec.ts
··· 21 21 PackageInitParamsSchema, 22 22 safeParse, 23 23 validateOperationParams, 24 - } from '../../cli/src/schemas.ts' 24 + } from '../../../cli/src/schemas.ts' 25 25 26 26 describe('PackageNameSchema', () => { 27 27 it('accepts valid package names', () => {
+1 -1
test/unit/cli-server.spec.ts test/unit/cli/server.spec.ts
··· 1 1 import { describe, expect, it } from 'vitest' 2 - import { createConnectorApp } from '../../cli/src/server.ts' 2 + import { createConnectorApp } from '../../../cli/src/server.ts' 3 3 4 4 const TEST_TOKEN = 'test-token-123' 5 5
+1 -1
test/unit/cli-validation.spec.ts test/unit/cli/npm-client.spec.ts
··· 4 4 validateOrgName, 5 5 validateScopeTeam, 6 6 validatePackageName, 7 - } from '../../cli/src/npm-client.ts' 7 + } from '../../../cli/src/npm-client.ts' 8 8 9 9 describe('validateUsername', () => { 10 10 it('accepts valid usernames', () => {
+1 -1
test/unit/package-name.spec.ts test/unit/app/utils/package-name.spec.ts
··· 3 3 checkPackageExists, 4 4 findSimilarPackages, 5 5 normalizePackageName, 6 - } from '../../app/utils/package-name' 6 + } from '../../../../app/utils/package-name' 7 7 8 8 describe('normalizePackageName', () => { 9 9 it.each([
+1 -1
test/unit/server/utils/dependency-analysis.spec.ts
··· 8 8 const { analyzeDependencyTree } = await import('../../../../server/utils/dependency-analysis') 9 9 10 10 // Mock the dependency resolver 11 - vi.mock('../../server/utils/dependency-resolver', () => ({ 11 + vi.mock('../../../../server/utils/dependency-resolver', () => ({ 12 12 resolveDependencyTree: vi.fn(), 13 13 })) 14 14
+1 -1
vitest.config.ts
··· 16 16 }, 17 17 test: { 18 18 name: 'unit', 19 - include: ['test/unit/*.{test,spec}.ts'], 19 + include: ['test/unit/**/*.{test,spec}.ts'], 20 20 environment: 'node', 21 21 }, 22 22 },