diff --git a/frontend/src/components/QrCode/FigureQrCode.spec.js b/frontend/src/components/QrCode/FigureQrCode.spec.js
index 715a5d5d5..0c0b7bf3a 100644
--- a/frontend/src/components/QrCode/FigureQrCode.spec.js
+++ b/frontend/src/components/QrCode/FigureQrCode.spec.js
@@ -6,12 +6,15 @@ const localVue = global.localVue
const propsData = {
link: '',
}
+const mocks = {
+ $t: jest.fn((t) => t),
+}
describe('FigureQrCode', () => {
let wrapper
const Wrapper = () => {
- return mount(FigureQrCode, { localVue, propsData })
+ return mount(FigureQrCode, { localVue, mocks, propsData })
}
describe('mount', () => {
@@ -19,12 +22,55 @@ describe('FigureQrCode', () => {
wrapper = Wrapper()
})
- it('renders the Div Element ".figure-qr-code"', () => {
- expect(wrapper.find('div.figure-qr-code').exists()).toBeTruthy()
+ afterEach(() => {
+ jest.clearAllMocks()
})
- it('renders the Div Element "q-r-canvas"', () => {
- expect(wrapper.find('q-r-canvas'))
+ 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')
+ })
})
})
})
diff --git a/frontend/src/components/QrCode/FigureQrCode.vue b/frontend/src/components/QrCode/FigureQrCode.vue
index 00f1b54b9..40b1098dc 100644
--- a/frontend/src/components/QrCode/FigureQrCode.vue
+++ b/frontend/src/components/QrCode/FigureQrCode.vue
@@ -1,7 +1,18 @@
@@ -37,6 +48,13 @@ export default {
}
}
},
+ methods: {
+ downloadImg() {
+ const canvas = this.$refs.canvas.$el
+ const image = canvas.toDataURL('image/png')
+ this.$refs.download.href = image
+ },
+ },
}