react-icon-cloud
Version: 
A React component for rendering an interactive img or word cloud on canvas
70 lines (64 loc) • 1.48 kB
text/typescript
// make real network requests
import 'isomorphic-fetch'
import {fetchSimpleIcons} from './fetch_simple_icons'
export const slugs = [
  'amazonaws',
  'android',
  'androidstudio',
  'antdesign',
  'azuredevops',
  'css3',
  'cypress',
  'dart',
  'docker',
  'express',
  'figma',
  'firebase',
  'flutter',
  'git',
  'github',
  'gitlab',
  'html5',
  'java',
  'javascript',
  'jest',
  'jira',
  'mui',
  'mysql',
  'nextdotjs',
  'nginx',
  'nodedotjs',
  'npm',
  'postgresql',
  'prisma',
  'react',
  'reactquery',
  'redux',
  'sonarqube',
  'testinglibrary',
  'typescript',
  'vercel',
  'visualstudiocode',
]
describe('fetchIcons', () => {
  it('returns correctly formed icons', async () => {
    const icons = await fetchSimpleIcons({slugs})
    expect(Object.keys(icons.simpleIcons)).toHaveLength(slugs.length)
    for (const icon of Object.values(icons.simpleIcons)) {
      expect(icon.slug).toBeTruthy()
      expect(typeof icon.slug).toBe('string')
      expect(icon.slug).not.toBe('')
      expect(icon.path).toBeTruthy()
      expect(typeof icon.path).toBe('string')
      expect(icon.path).not.toBe('')
      expect(icon.hex).toBeTruthy()
      expect(typeof icon.hex).toBe('string')
      expect(icon.hex).not.toBe('')
      const hexValues = Object.values(icons.simpleIcons).map((icon) => icon.hex)
      const allBlackHex = hexValues.every(
        (hex) => hex === '#000' || hex === '#000000'
      )
      expect(allBlackHex).toBe(false)
    }
  })
})