mirror of
https://github.com/standardnotes/app.git
synced 2026-01-11 19:56:41 +00:00
69 lines
3 KiB
TypeScript
69 lines
3 KiB
TypeScript
import { IconsController } from './IconsController'
|
|
|
|
describe('IconsController', () => {
|
|
let iconsController: IconsController
|
|
|
|
beforeEach(() => {
|
|
iconsController = new IconsController()
|
|
})
|
|
|
|
describe('getIconForFileType', () => {
|
|
it('should return correct icon type for supported mimetypes', () => {
|
|
const iconTypeForPdf = iconsController.getIconForFileType('application/pdf')
|
|
expect(iconTypeForPdf).toBe('file-pdf')
|
|
|
|
const iconTypeForDoc = iconsController.getIconForFileType('application/msword')
|
|
const iconTypeForDocx = iconsController.getIconForFileType(
|
|
'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
|
|
)
|
|
expect(iconTypeForDoc).toBe('file-doc')
|
|
expect(iconTypeForDocx).toBe('file-doc')
|
|
|
|
const iconTypeForPpt = iconsController.getIconForFileType('application/vnd.ms-powerpoint')
|
|
const iconTypeForPptx = iconsController.getIconForFileType(
|
|
'application/vnd.openxmlformats-officedocument.presentationml.presentation',
|
|
)
|
|
expect(iconTypeForPpt).toBe('file-ppt')
|
|
expect(iconTypeForPptx).toBe('file-ppt')
|
|
|
|
const iconTypeForXls = iconsController.getIconForFileType('application/vnd.ms-excel')
|
|
const iconTypeForXlsx = iconsController.getIconForFileType(
|
|
'application/vnd.openxmlformats-officedocument.spreadsheetml.spreadsheet',
|
|
)
|
|
expect(iconTypeForXls).toBe('file-xls')
|
|
expect(iconTypeForXlsx).toBe('file-xls')
|
|
|
|
const iconTypeForJpg = iconsController.getIconForFileType('image/jpeg')
|
|
const iconTypeForPng = iconsController.getIconForFileType('image/png')
|
|
expect(iconTypeForJpg).toBe('file-image')
|
|
expect(iconTypeForPng).toBe('file-image')
|
|
|
|
const iconTypeForMpeg = iconsController.getIconForFileType('video/mpeg')
|
|
const iconTypeForMp4 = iconsController.getIconForFileType('video/mp4')
|
|
expect(iconTypeForMpeg).toBe('file-mov')
|
|
expect(iconTypeForMp4).toBe('file-mov')
|
|
|
|
const iconTypeForWav = iconsController.getIconForFileType('audio/wav')
|
|
const iconTypeForMp3 = iconsController.getIconForFileType('audio/mp3')
|
|
expect(iconTypeForWav).toBe('file-music')
|
|
expect(iconTypeForMp3).toBe('file-music')
|
|
|
|
const iconTypeForZip = iconsController.getIconForFileType('application/zip')
|
|
const iconTypeForRar = iconsController.getIconForFileType('application/vnd.rar')
|
|
const iconTypeForTar = iconsController.getIconForFileType('application/x-tar')
|
|
const iconTypeFor7z = iconsController.getIconForFileType('application/x-7z-compressed')
|
|
expect(iconTypeForZip).toBe('file-zip')
|
|
expect(iconTypeForRar).toBe('file-zip')
|
|
expect(iconTypeForTar).toBe('file-zip')
|
|
expect(iconTypeFor7z).toBe('file-zip')
|
|
})
|
|
|
|
it('should return fallback icon type for unsupported mimetypes', () => {
|
|
const iconForBin = iconsController.getIconForFileType('application/octet-stream')
|
|
expect(iconForBin).toBe('file-other')
|
|
|
|
const iconForNoType = iconsController.getIconForFileType('')
|
|
expect(iconForNoType).toBe('file-other')
|
|
})
|
|
})
|
|
})
|