gradido/frontend/src/components/QrCode/FigureQrCode.spec.js

77 lines
1.8 KiB
JavaScript

import { mount } from '@vue/test-utils'
import FigureQrCode from './FigureQrCode'
const localVue = global.localVue
const propsData = {
link: '',
}
const mocks = {
$t: jest.fn((t) => t),
}
describe('FigureQrCode', () => {
let wrapper
const Wrapper = () => {
return mount(FigureQrCode, { localVue, mocks, propsData })
}
describe('mount', () => {
beforeEach(() => {
wrapper = Wrapper()
})
afterEach(() => {
jest.clearAllMocks()
})
it('has options filled', () => {
expect(wrapper.vm.options).toEqual({
cellSize: 8,
correctLevel: 'H',
data: '',
})
})
it('renders the Div Element ".figure-qr-code"', () => {
expect(wrapper.find('div.figure-qr-code').exists()).toBe(true)
})
it('renders the Div Element "qrbox"', () => {
expect(wrapper.find('div.qrbox').exists()).toBe(true)
})
it('renders the Canvas Element "#qrcanvas"', () => {
const canvas = wrapper.find('#qrcanvas')
expect(canvas.exists()).toBe(true)
const canvasEl = canvas.element
const canvasWidth = canvasEl.width
const canvasHeight = canvasEl.height
expect(canvasWidth).toBeGreaterThan(0)
expect(canvasHeight).toBeGreaterThan(0)
const canvasContext = canvasEl.toDataURL('image/png')
expect(canvasContext).not.toBeNull()
})
it('renders the A Element "#download"', () => {
const downloadLink = wrapper.find('#download')
expect(downloadLink.exists()).toBe(true)
})
describe('Download QR-Code link', () => {
beforeEach(() => {
const downloadLink = wrapper.find('#download')
downloadLink.trigger('click')
})
it('click the A Element "#download" set an href', () => {
expect(wrapper.find('#download').attributes('href')).toEqual('data:image/png;base64,00')
})
})
})
})