What Deserves a Test
Test behavior people depend on, not implementation.
A test asserting that a function returns a particular dictionary breaks every time you refactor, and it caught nothing. A test asserting that a stranger cannot edit someone else's post keeps working through any refactor, and it is the one you actually care about.
The question to ask of any test: if I rewrote this function completely but kept its behavior, would this test still pass? If no, it is testing the wrong thing.
The priority order, for a project of this size.
Security properties first: who can see what, who can change what.
Then the money paths, or whatever your equivalent is: the operations where being wrong is expensive.
Then the awkward edge cases you had to think about: empty, missing, zero, duplicate.
Then the happy path, which is the one you would have checked by hand anyway.
Most tutorials do that list backwards.
Mark this lesson complete
Signed in, your progress follows you to every device.