feat: add snjs package
This commit is contained in:
69
packages/snjs/lib/Client/IconsController.spec.ts
Normal file
69
packages/snjs/lib/Client/IconsController.spec.ts
Normal file
@@ -0,0 +1,69 @@
|
||||
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')
|
||||
})
|
||||
})
|
||||
})
|
||||
Reference in New Issue
Block a user