108 lines
2.3 KiB
Ruby
108 lines
2.3 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
require_relative "test_helper"
|
|
|
|
module SassC
|
|
class OutputStyleTest < MiniTest::Test
|
|
def input_scss
|
|
input_scss = <<-CSS
|
|
$color: #fff;
|
|
|
|
#main {
|
|
color: $color;
|
|
background-color: #000;
|
|
p {
|
|
width: 10em;
|
|
}
|
|
}
|
|
|
|
.huge {
|
|
font-size: 10em;
|
|
font-weight: bold;
|
|
text-decoration: underline;
|
|
}
|
|
CSS
|
|
end
|
|
|
|
def expected_nested_output
|
|
<<-CSS
|
|
#main {
|
|
color: #fff;
|
|
background-color: #000; }
|
|
#main p {
|
|
width: 10em; }
|
|
|
|
.huge {
|
|
font-size: 10em;
|
|
font-weight: bold;
|
|
text-decoration: underline; }
|
|
CSS
|
|
end
|
|
|
|
def test_nested_output_is_default
|
|
engine = Engine.new(input_scss)
|
|
assert_equal expected_nested_output, engine.render
|
|
end
|
|
|
|
def test_output_style_accepts_strings
|
|
engine = Engine.new(input_scss, style: 'sass_style_nested')
|
|
assert_equal expected_nested_output, engine.render
|
|
end
|
|
|
|
def test_invalid_output_style
|
|
engine = Engine.new(input_scss, style: 'totally_wrong')
|
|
assert_raises(InvalidStyleError) { engine.render }
|
|
end
|
|
|
|
def test_nested_output
|
|
engine = Engine.new(input_scss, style: :sass_style_nested)
|
|
assert_equal expected_nested_output, engine.render
|
|
end
|
|
|
|
def test_expanded_output
|
|
engine = Engine.new(input_scss, style: :sass_style_expanded)
|
|
assert_equal <<-CSS, engine.render
|
|
#main {
|
|
color: #fff;
|
|
background-color: #000;
|
|
}
|
|
|
|
#main p {
|
|
width: 10em;
|
|
}
|
|
|
|
.huge {
|
|
font-size: 10em;
|
|
font-weight: bold;
|
|
text-decoration: underline;
|
|
}
|
|
CSS
|
|
end
|
|
|
|
def test_compact_output
|
|
engine = Engine.new(input_scss, style: :sass_style_compact)
|
|
assert_equal <<-CSS, engine.render
|
|
#main { color: #fff; background-color: #000; }
|
|
|
|
#main p { width: 10em; }
|
|
|
|
.huge { font-size: 10em; font-weight: bold; text-decoration: underline; }
|
|
CSS
|
|
end
|
|
|
|
def test_compressed_output
|
|
engine = Engine.new(input_scss, style: :sass_style_compressed)
|
|
assert_equal <<-CSS, engine.render
|
|
#main{color:#fff;background-color:#000}#main p{width:10em}.huge{font-size:10em;font-weight:bold;text-decoration:underline}
|
|
CSS
|
|
end
|
|
|
|
def test_short_output_style_names
|
|
engine = Engine.new(input_scss, style: :compressed)
|
|
assert_equal <<-CSS, engine.render
|
|
#main{color:#fff;background-color:#000}#main p{width:10em}.huge{font-size:10em;font-weight:bold;text-decoration:underline}
|
|
CSS
|
|
end
|
|
end
|
|
end
|