I tell stories @zakarcher.com.
My debut book "LOGGERHEADS" it out 👇
https://zakarcher.com/books/loggerheads
- Lists everything this test case needs (no magic).
- Per test resources as simple as calling a function.
- Easy client/server setup w/o changing your app.
- Lists everything this test case needs (no magic).
- Per test resources as simple as calling a function.
- Easy client/server setup w/o changing your app.
Keeps the test's dependencies in the test. Explicit. Introduces no shared state. Performant (reuses and invalidates previous sessions).
github.com/kettanaito/...
Keeps the test's dependencies in the test. Explicit. Introduces no shared state. Performant (reuses and invalidates previous sessions).
github.com/kettanaito/...
The answer: pubsub! And the simplest, built-in pubsub you have on the web is EventTarget:
The answer: pubsub! And the simplest, built-in pubsub you have on the web is EventTarget:
Your test is a clean slate. It has to bring your system to the right state, interact with it, then check the end state. It must never rely on a state of irrelevant systems to work, even if it depends on those systems.
Your test is a clean slate. It has to bring your system to the right state, interact with it, then check the end state. It must never rely on a state of irrelevant systems to work, even if it depends on those systems.
I do that via the `app` fixture that the launcher package I built.
I do that via the `app` fixture that the launcher package I built.
Let's unwrap what makes it so.
Let's unwrap what makes it so.
- Server-side mocking with MSW.
- Act as your users do.
- Type-safe and runtime-safe via TypeScript and Zod.
✨
- Server-side mocking with MSW.
- Act as your users do.
- Type-safe and runtime-safe via TypeScript and Zod.
✨
I'd like to assert the *first* error (about the symbol mismatch). I'm getting something else though once I use type expect.
I'd like to assert the *first* error (about the symbol mismatch). I'm getting something else though once I use type expect.