diff --git a/script.test.js b/script.test.js new file mode 100644 index 0000000..52c77d1 --- /dev/null +++ b/script.test.js @@ -0,0 +1,39 @@ +import { JSDOM } from 'jsdom'; +import { expect } from 'expect'; +import { generateQR } from './script.js'; + +describe('generateQR function', () => { + let dom; + + beforeEach(() => { + dom = new JSDOM(` + + + + +
+ + + + + `); + globalThis.document = dom.window.document; + }); + + afterEach(() => { + globalThis.document = undefined; + }); + + it('should alert when input is empty', () => { + generateQR(); + const alertMessage = globalThis.alert; + expect(alertMessage).toBe('Please enter text or URL'); + }); + + it('should throw an error when input is not a string', () => { + const inputElement = globalThis.document.getElementById('text'); + inputElement.value = 123; + globalThis.document.getElementById('text').value = 123; + expect(() => generateQR()).toThrowError('Input must be a string'); + }); +}); \ No newline at end of file