Challenge 1: Your First Spec File — Solution # string_formatter.rb class StringFormatter def shout(text) "#{text.upcase}!" end end # spec/string_formatter_spec.rb require_relative "../string_formatter" describe StringFormatter do it "uppercases a normal string and adds an exclamation mark" do formatter = StringFormatter.new expect(formatter.shout("hello")).to eq("HELLO!") end it "still works correctly on an already-uppercase string" do formatter = StringFormatter.new expect(formatter.shout("READY")).to eq("READY!") end end # Run with: rspec spec/string_formatter_spec.rb =begin Expected RSpec output: StringFormatter uppercases a normal string and adds an exclamation mark still works correctly on an already-uppercase string Finished in 0.00XXX seconds 2 examples, 0 failures Notes: - describe StringFormatter do groups both examples under one heading in the test output. - Each it block creates its own StringFormatter instance and uses expect(...).to eq(...) to assert the exact expected string. - The second example specifically checks that .upcase behaves correctly even when the input is already uppercase — a small edge case worth confirming rather than assuming. =end