diff --git a/resources/assets/src/components/Captcha.vue b/resources/assets/src/components/Captcha.vue index d345948f..90fc6513 100644 --- a/resources/assets/src/components/Captcha.vue +++ b/resources/assets/src/components/Captcha.vue @@ -60,7 +60,7 @@ export default { methods: { execute() { return new Promise(resolve => { - if (this.invisible) { + if (this.recaptcha && this.invisible) { this.$refs.recaptcha.$once('verify', resolve) this.$refs.recaptcha.execute() } else { diff --git a/resources/assets/tests/components/Captcha.test.ts b/resources/assets/tests/components/Captcha.test.ts index d744d3cc..0d26f638 100644 --- a/resources/assets/tests/components/Captcha.test.ts +++ b/resources/assets/tests/components/Captcha.test.ts @@ -41,8 +41,13 @@ test('display characters captcha', async () => { blessing.extra = {} const wrapper = mount }>(Captcha) expect(wrapper.find('img').exists()).toBeTrue() - wrapper.find('input').setValue('abc') + const input = wrapper.find('input') + input.setValue('abc') expect(await wrapper.vm.execute()).toBe('abc') + + wrapper.setData({ invisible: true }) + input.setValue('123') + expect(await wrapper.vm.execute()).toBe('123') }) test('refresh captcha', () => {