diff --git a/script.test.js b/script.test.js new file mode 100644 index 0000000..d6836ab --- /dev/null +++ b/script.test.js @@ -0,0 +1,40 @@ +import { JSDOM } from "jsdom"; +import { describe, it, expect } from "jest"; +import script from "./script.js"; + +const dom = new JSDOM(` + + + + QR Code Generator + + + + +
+ + + + +`); + +// Use globalThis to access global variables +globalThis.document = dom.window.document; +globalThis.window = dom.window; + +describe("generateQR function", () => { + it("should alert user when input is empty", () => { + const inputField = dom.window.document.getElementById("text"); + inputField.value = ""; + dom.window.document.getElementById("generateButton").click(); + expect(dom.window.alert).toHaveBeenCalledTimes(1); + expect(dom.window.alert).toHaveBeenCalledWith("Please enter text or URL"); + }); + + it("should throw error when input is not a string", () => { + const inputField = dom.window.document.getElementById("text"); + inputField.value = 123; + dom.window.document.getElementById("generateButton").click(); + expect(dom.window.console.error).toHaveBeenCalledTimes(1); + }); +}); \ No newline at end of file