Sha256: f6d767eb04bf8abc8a81149a90889871564760ccfab84cb030be91a083f4067c

Contents?: true

Size: 1.88 KB

Versions: 1

Compression:

Stored size: 1.88 KB

Contents

require "test_helper"
require "./lib/roger_sassc/middleware"

module RogerSassc
  # Testing the middleware functionality
  # which transforms on a request based .scss to .css
  class TestMiddleware < ::Test::Unit::TestCase
    include FixtureHelper

    def setup
      @app =  proc { [200, {}, ["YAM"]] } # Yet another middleware
      @middleware = Middleware.new @app

      @request = Rack::MockRequest.new(@middleware)
    end

    def test_middleware_can_be_called
      assert(@middleware.respond_to?(:call))
    end

    def test_calls_rest_of_stack_when_not_css
      assert_equal @request.get("/my.js").body, "YAM"
    end

    def test_doesn_t_compile_scss_when_no_scss_file
      @middleware.resolver = mock_resolver("not-excisting.scss", nil)
      assert_equal @request.get("/not-excisting.css").body, "YAM"
    end

    def test_respons_with_css
      path = fixture_path "general.scss"
      expected_css = fixture "output.css"
      @middleware.resolver = mock_resolver("test/fixtures/general.scss", path)
      assert_equal @request.get("/test/fixtures/general.css").body, expected_css
    end

    def test_debug_syntax_error
      path = fixture_path "errors/syntax.scss"
      expected_css = fixture "errors/syntax.css"
      @middleware.resolver = mock_resolver("test/fixtures/errors/syntax.scss", path)
      assert_equal expected_css, @request.get("test/fixtures/errors/syntax.css").body
    end

    def test_debug_import_error
      path = fixture_path "errors/import.scss"
      expected_css = '@import "trololo";'
      @middleware.resolver = mock_resolver("test/fixtures/errors/import.scss", path)
      assert_include @request.get("test/fixtures/errors/import.css").body, expected_css
    end

    private

    def mock_resolver(input_url, file_path)
      resolver = mock
      resolver.expects(:url_to_path).with(equals(input_url), anything).returns(file_path)
      resolver
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
roger_sassc-0.2.1 test/middleware_test.rb