Testing Button Selector Generation in Bourbon
This test suite validates the button selector functionality in the Bourbon Sass library, focusing on different button states and CSS selector generation. The tests ensure proper expansion of button selectors for various states including plain, active, focus, and hover conditions.
Test Coverage Overview
Implementation Analysis
Technical Details
Best Practices Demonstrated
thoughtbot/bourbon
spec/bourbon/library/buttons_spec.rb
require "spec_helper"
describe "buttons" do
before(:all) do
ParserSupport.parse_file("library/buttons")
@buttons_list = %w(
button
[type='button']
[type='reset']
[type='submit']
)
end
context "expands plain buttons" do
it "finds selectors" do
list = @buttons_list.join(", ")
ruleset = "content: #{list};"
expect(".all-buttons").to have_ruleset(ruleset)
end
end
context "expands active buttons" do
it "finds selectors" do
list = @buttons_list.map { |input| "#{input}:active" }
list = list.join(", ")
ruleset = "content: #{list};"
expect(".all-buttons-active").to have_ruleset(ruleset)
end
end
context "expands focus buttons" do
it "finds selectors" do
list = @buttons_list.map { |input| "#{input}:focus" }
list = list.join(", ")
ruleset = "content: #{list};"
expect(".all-buttons-focus").to have_ruleset(ruleset)
end
end
context "expands hover buttons" do
it "finds selectors" do
list = @buttons_list.map { |input| "#{input}:hover" }
list = list.join(", ")
ruleset = "content: #{list};"
expect(".all-buttons-hover").to have_ruleset(ruleset)
end
end
end