While I am generally of the opinion that we don't need injected problems on applications that are already target rich enough as is, today I went for three versions of a well-known test target problem, namely the ToDo MVC app.
Theoretically this is where a group of developers show how great they are at using modern javascript frameworks. There is a spec defining the scope, and the scope includes requirement for having this work on Modern browser (latest: Chrome, Firefox, Opera, Safari, IE11/Edge).
So I randomly sampled one today - the Elm version, https://todomvc.com/examples/elm/.
I took that one since it looked similar to in styles to what playwright uses as their demo, https://demo.playwright.dev/todomvc/, while the latest react version already has the extra light styles updated to something that you are more likely to be able to read.
I also took that one since it looked similar to the version flying around as target of testing with intentionally injected bugs, https://todolist.james.am/.
My idea was simple:
- start with app, to explore the features
- loop to documenting with test automation
- switch over implementations to see if automation is portable over various versions of the app
- Select all does not work
- edit mode cannot be escaped with esc
- unsaved new item not removed on refresh
- edit to empty leaves the item while it should be removed
- edit to empty messes the layout and I should not see it since 4) should be true
- the colors are annoyingly light, there is no word-wrap and reorder, but there never has been
Looking at the bugs seeded version, there's plenty more to complain:
- Typos, so many typos: need's in placeholder, active uncapitalized, toodo in instructions
- "Clear" is visible even when there are no completed items to clear
- "Clear" does not clear, because it is really "Clear completed"
- Counter has off by one error
- Placeholder text vanishes as you add an item, but returns on refresh
- Sideways a as icon for "mark all us complete" is not the visual I would expect, nor is the A with ~ on top for deleting - on chrome, after using it enough, but the state normalized on forced refresh.
- Select all does not unselect all on second click
- Whitespace trim is not in place if one edits items with whitespace, only when items are shown
- <!-- STUPID APP --> in comments is probably intentionally added for fun
- ToDo: Remove this eventually tooltip is probably added for fun as well
- Errors on missing resources on console are probably added for fun too
- "Clear" is missing the counter after it the spec asks for
- The annoyingly light colors where seeing the UI and instructions is hard
- None of these allow for reordering items and it feels like an omission even if intentional
- None of these support word wrapping