react-native-qrcode-svg
Version:
A QR Code generator for React Native based on react-native-svg and javascript-qrcode.
64 lines (58 loc) • 1.6 kB
JavaScript
import React from 'react'
import QRCode from '../index'
import renderer from 'react-test-renderer'
describe('QRCode', () => {
it('renders correctly', () => {
const tree = renderer.create(
<QRCode />
).toJSON()
expect(tree).toMatchSnapshot()
})
it('renders with logo correctly', () => {
const tree = renderer.create(
<QRCode
logo={{ uri: 'fakeUri' }}
/>
).toJSON()
expect(tree).toMatchSnapshot()
})
// Let's simulate too big data passed to QRCode and check if onError Callback
// Called properly
it('calls onError in case of issue with code generating', () => {
const onErrorMock = jest.fn()
// Let's try to render with too big amount of data that should
// throw an exception
renderer.create(
<QRCode
value={(new Array(1000000)).join('123')}
onError={onErrorMock}
/>
)
expect(onErrorMock.mock.calls.length).toBe(1)
})
it('does not call onError in case if value is fine', () => {
const onErrorMock = jest.fn()
renderer.create(
<QRCode
value='123'
onError={onErrorMock}
/>
)
expect(onErrorMock.mock.calls.length).toBe(0)
})
it('renders with segmented value', () => {
const onErrorMock = jest.fn()
const segs = [
{ data: [1, 2, 3], mode: 'byte' },
{ data: 'ABCDEF', mode: 'alphanumeric' }
]
const tree = renderer.create(
<QRCode
value={segs}
onError={onErrorMock}
/>
).toJSON()
expect(onErrorMock.mock.calls.length).toBe(0)
expect(tree).toMatchSnapshot()
})
})