fingerprintjs

Форк
0
/
canvas.test.ts 
37 строк · 1.1 Кб
1
import { getBrowserMajorVersion, isSafari } from '../../tests/utils'
2
import getCanvasFingerprint, { ImageStatus } from './canvas'
3

4
describe('Sources', () => {
5
  describe('canvas', () => {
6
    it('returns expected value', async () => {
7
      const { winding, text, geometry } = await getCanvasFingerprint()
8

9
      expect(winding).toBeTrue()
10

11
      if (shouldSkip()) {
12
        expect(text).toBe(ImageStatus.Skipped)
13
        expect(geometry).toBe(ImageStatus.Skipped)
14
      } else {
15
        expect(isDataURL(geometry)).toBeTrue()
16
        expect(isDataURL(text)).toBeTrue()
17

18
        expect(geometry.length).toBeGreaterThan(1000)
19
        expect(text.length).toBeGreaterThan(1000)
20
      }
21
    })
22

23
    it('returns stable values', async () => {
24
      const first = await getCanvasFingerprint()
25
      const second = await getCanvasFingerprint()
26
      expect(second).toEqual(first)
27
    })
28
  })
29
})
30

31
function shouldSkip() {
32
  return isSafari() && (getBrowserMajorVersion() ?? 0) >= 17
33
}
34

35
function isDataURL(url: string) {
36
  return /^data:image\/png;base64,([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/.test(url)
37
}
38

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.