callbag-jsx
user-event
Our great sponsors
callbag-jsx | user-event | |
---|---|---|
5 | 5 | |
75 | 2,118 | |
- | 1.0% | |
0.0 | 5.6 | |
almost 3 years ago | 10 days ago | |
TypeScript | TypeScript | |
MIT License | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
callbag-jsx
- Show HN: React without the magical anti-patterns
- Show HN: Callbag-JSX, React without the “magic”
-
Callbag JSX: React without the "magic"
To go even one step further: Callbag JSX is basically render JSX + callbag plugins. That is done by some simple rendering plugins, so you can easily integrate any interface, even objects not necessarily complying with the callbag protocol or Observable interface, to work, by writing similar plugins.
user-event
-
How do I test a button that change a state with jest ?
You probably want to be using user-event instead of fireEvent.
-
Mocking setTimeout with Jest
With userEvent it is different. Since version 14.0.0 the APIs always return a Promise. Because of that we need to make the whole test async and await on clicking with userEvent.
-
BDD and TDD testing for React-Node App
I just learned to do TDD by react testing library + jest + user event https://github.com/testing-library/user-event
-
Django, HTMX and Alpine.js: Modern Websites, JavaScript Optional
I just tried running WinDirStat on the `node_modules` folder in a Create-React-App project I had lying around. Total size was 234 MB. Of that, 129MB was JS files. By far the biggest piece was TypeScript, which has 45MB of .js in 6 files making up its parsing and IDE language service implementation.
Beyond that, the breakdown is:
- .ts source files: 25MB
- Sourcemaps: 23MB
- Markdown: 15MB
- JSON: 10MB
It also looks like there's a 12MB Linux binary that was only in there as a publishing accident for the `user-event` library that has since been resolved ( https://github.com/testing-library/user-event/issues/266 ).
Or, take Redux Toolkit, which I maintain. If you look at https://unpkg.com/browse/@reduxjs/[email protected]/ , the published package for our current version, it adds up to about 10MB on disk. But, that's because we ship three separate entry points (RTK core, RTK Query UI-agnostic core, RTK Query with React-specific additions), and for each entry point we compile the code to multiple file formats (CommonJS, ESM legacy, ESM modern, ESM with "dev" and "prod" already built in, UMD dev, UMD production), and each of those has sourcemaps. The actual amount of code that ends up in your bundle is about 20KB min+gz.
So, it's a combination of many things: TS itself is big, libraries typically publish packages containing both the original source code plus multiple build artifacts to run in different environments, and packages also include various metadata and other files as well.
-
Comparing Enzyme with React Testing Library
To get away from testing our code implementation and get closer to testing how the application is actually used, we turn once again to React Testing Library. Instead of creating fake DOM event objects and simulating various change events, we have the ability to mimic how users would actually interact with the application using userEvent's, which are provided by the user-event library.
What are some alternatives?
dark - The lightweight and powerful UI rendering engine without dependencies and written in TypeScript💫 (Browser, Node.js, Android, iOS, Windows, Linux, macOS)
jest-dom - :owl: Custom jest matchers to test the state of the DOM
callbag - 👜 A standard for JS callbacks that enables lightweight observables and iterables
testing-with-enzyme
jsx-dom - Use JSX to create DOM elements.
django-unicorn - The magical reactive component framework for Django ✨
dom - Fusor is a simple JavaScript library that helps declaratively create and update DOM elements
angular-testing-library - 🐙 Simple and complete Angular testing utilities that encourage good testing practices