diff --git a/script.test.js b/script.test.js new file mode 100644 index 0000000..11676f4 --- /dev/null +++ b/script.test.js @@ -0,0 +1,41 @@ +import { JSDOM } from 'jsdom'; +import { document } from 'jsdom'; + +const { JSDOM } = require('jsdom'); + +const dom = new JSDOM(` + +
+ + + + + + +`); + +global.document = dom.window.document; + +import { generateQR } from './script.js'; + +describe('generateQR function', () => { + it('should alert when input is empty', () => { + document.getElementById('text').value = ''; + document.getElementById('generateButton').click(); + expect(alert).toHaveBeenCalledTimes(1); + expect(alert).toHaveBeenCalledWith('Please enter text or URL'); + }); + + it('should throw an error when input is not a string', () => { + document.getElementById('text').value = 123; + document.getElementById('generateButton').click(); + }, (done) => { + setTimeout(() => { + expect(console.error).toHaveBeenCalledTimes(1); + expect(console.error).toHaveBeenCalledWith( + new Error('Input must be a string'), + ); + done(); + }, 0); + }); +}); \ No newline at end of file