[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.

at main 42 lines 2.3 kB view raw
1import { describe, expect, it } from 'vitest' 2import { getFileIcon } from '../../../../app/utils/file-icons' 3 4describe('getFileIcon', () => { 5 it('returns correct icons for exact filename matches', () => { 6 expect(getFileIcon('package.json')).toBe('vscode-icons-file-type-npm') 7 expect(getFileIcon('Dockerfile')).toBe('vscode-icons-file-type-docker') 8 expect(getFileIcon('.gitignore')).toBe('vscode-icons-file-type-git') 9 expect(getFileIcon('eslint.config.js')).toBe('vscode-icons-file-type-eslint') 10 expect(getFileIcon('vitest.config.ts')).toBe('vscode-icons-file-type-vitest') 11 expect(getFileIcon('.env')).toBe('vscode-icons-file-type-dotenv') 12 }) 13 14 it('returns correct icons for compound extensions', () => { 15 expect(getFileIcon('types.d.ts')).toBe('vscode-icons-file-type-typescriptdef') 16 expect(getFileIcon('utils.test.ts')).toBe('vscode-icons-file-type-testts') 17 expect(getFileIcon('utils.spec.js')).toBe('vscode-icons-file-type-testjs') 18 expect(getFileIcon('Button.stories.tsx')).toBe('vscode-icons-file-type-storybook') 19 }) 20 21 it('returns correct icons for simple extensions', () => { 22 expect(getFileIcon('index.js')).toBe('vscode-icons-file-type-js-official') 23 expect(getFileIcon('main.ts')).toBe('vscode-icons-file-type-typescript-official') 24 expect(getFileIcon('App.vue')).toBe('vscode-icons-file-type-vue') 25 expect(getFileIcon('data.json')).toBe('vscode-icons-file-type-json') 26 expect(getFileIcon('build.sh')).toBe('vscode-icons-file-type-shell') 27 expect(getFileIcon('script.py')).toBe('vscode-icons-file-type-python') 28 expect(getFileIcon('lib.rs')).toBe('vscode-icons-file-type-rust') 29 expect(getFileIcon('logo.png')).toBe('vscode-icons-file-type-image') 30 expect(getFileIcon('archive.tar')).toBe('vscode-icons-file-type-zip') 31 }) 32 33 it('returns default icon for unknown files', () => { 34 expect(getFileIcon('file.xyz')).toBe('vscode-icons-default-file') 35 expect(getFileIcon('unknownfile')).toBe('vscode-icons-default-file') 36 }) 37 38 it('prefers exact filename over extension, and compound over simple', () => { 39 expect(getFileIcon('package.json')).toBe('vscode-icons-file-type-npm') 40 expect(getFileIcon('foo.test.ts')).toBe('vscode-icons-file-type-testts') 41 }) 42})