diff --git a/mithril.test.js b/mithril.test.js new file mode 100644 index 0000000..ebc74e3 --- /dev/null +++ b/mithril.test.js @@ -0,0 +1,33 @@ +import 'jest-dom/extend-expect' +import m from 'mithril' +import {getQueriesForElement, fireEvent, wait} from 'dom-testing-library' + +const Counter = () => { + let count = 0 + return { + view: () => + m( + 'button', + { + onclick: () => { + count++ + }, + }, + count, + ), + } +} + +// tests: +test('counter increments', async () => { + const div = document.createElement('div') + m.mount(div, Counter) + + const {getByText} = getQueriesForElement(div) + const counter = getByText('0') + fireEvent.click(counter) + await wait(() => expect(counter).toHaveTextContent('1')) + + fireEvent.click(counter) + await wait(() => expect(counter).toHaveTextContent('2')) +}) diff --git a/package-lock.json b/package-lock.json index 83e91f7..17de7fd 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5710,6 +5710,11 @@ "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", "dev": true }, + "mithril": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/mithril/-/mithril-1.1.6.tgz", + "integrity": "sha512-fWcUrQTCqu8M916rj1MFGlHaPh65rznPu6U/N2U9g81H89klDCIptSK5bnkNkC+jyi3sJIXjyGhSQjUnR8jzZA==" + }, "mixin-deep": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz", diff --git a/package.json b/package.json index 108c7dc..a4d5920 100644 --- a/package.json +++ b/package.json @@ -21,6 +21,7 @@ "hyperapp": "^1.2.9", "jquery": "^3.3.1", "knockout": "^3.4.2", + "mithril": "^1.1.6", "preact": "^8.3.1", "react": "^16.5.1", "stimulus": "^1.1.0",