Gilded Rose Kata

Background

The Gilded Rose is a famous kata (or exercise) in OO, testing, and refactoring legacy code. By completing this kata, you will master the proper use of inheritance, by using it to eliminate conditionals in a wide-but-not-deep tree.

Instructions

  1. Watch this video by Sandi Metz.
  2. Fork & clone this repository
  3. npm install
  4. npm test (to insure tests run without problems before refactoring)
  5. Refactor, following the example set by Ms. Metz
  6. Verify the tests still pass
  7. If time allows uncomment the "Conjured Item" tests and extend the solution to turn them green.

Node: do not alter the 40 line if statement. Rewrite it then delete it like in the video.

At 10:28 in the video, Ms. Metz talks about how to create "a seam". Follow this procedure to avoid having to understand the deeply nested conditionals.

Run with Coverage

Use IntelliJ's run with coverage feature:

coverage

Observe the red lines of code and turn them green!

Additional information

Original Descripton of Gilded Rose