[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: add tests for file-icons utils (#891)

authored by

James Garbutt and committed by
GitHub
1f9a9f59 c4755ed4

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