diff --git a/script.test.js b/script.test.js new file mode 100644 index 0000000..19012e5 --- /dev/null +++ b/script.test.js @@ -0,0 +1,47 @@ +import { JSDOM } from 'jsdom'; +import { expect } from 'chai'; +import script from './script.js'; + +const { document } = new JSDOM('').window; + +describe('generateQR function', () => { + beforeEach(() => { + document.body.innerHTML = ` + +
+ + `; + }); + + it('should show alert when inputElement.value is null', () => { + const inputElement = document.getElementById("text"); + inputElement.value = null; + const generateButton = document.getElementById("generateButton"); + generateButton.click(); + expect(document.querySelector('.alert')).to.not.be.null; + }); + + it('should show alert when inputElement.value is undefined', () => { + const inputElement = document.getElementById("text"); + inputElement.value = undefined; + const generateButton = document.getElementById("generateButton"); + generateButton.click(); + expect(document.querySelector('.alert')).to.not.be.null; + }); + + it('should show alert when inputElement.value is empty string', () => { + const inputElement = document.getElementById("text"); + inputElement.value = ""; + const generateButton = document.getElementById("generateButton"); + generateButton.click(); + expect(document.querySelector('.alert')).to.not.be.null; + }); + + it('should throw error when inputElement.value is not a string', () => { + const inputElement = document.getElementById("text"); + inputElement.value = 123; + const generateButton = document.getElementById("generateButton"); + generateButton.click(); + expect(window.console.error).to.have.been.called.with("Input must be a string"); + }); +}); \ No newline at end of file