File: error_test.rb

package info (click to toggle)
ruby-haml 6.3.0-1
  • links: PTS, VCS
  • area: main
  • in suites: sid, trixie
  • size: 2,004 kB
  • sloc: ruby: 9,908; sh: 23; makefile: 11
file content (62 lines) | stat: -rw-r--r-- 1,460 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
describe Haml::Engine do
  describe 'Error' do
    it 'raises an error when Haml::Parser is used independently' do
      assert_raises(Haml::Error) do
        Haml::Parser.new({}).call("%body\n  %div\n        %p")
      end
    end
  end

  describe 'SyntaxError' do
    it 'raises on runtime' do
      code = Haml::Engine.new.call("  %a")
      assert_raises(Haml::SyntaxError) do
        eval code
      end
    end

    it 'returns error with lines before error' do
      code = Haml::Engine.new.call("\n\n  %a")
      begin
        eval code
      rescue Haml::SyntaxError => e
        assert_equal(2, e.line)
      end
    end

    describe 'Haml v1 syntax' do
      it 'returns an error with proper line number' do
        code = Haml::Engine.new.call(<<-HAML.unindent)
          %span
          - if true
            %div{ data: {
              hello: 'world',
            } }
        HAML
        begin
          eval code
        rescue Haml::SyntaxError => e
          assert_equal(3, e.line)
        end
      end
    end
  end

  describe 'FilterNotFound' do
    it 'raises on runtime' do
      code = Haml::Engine.new.call(":k0kubun")
      assert_raises(Haml::FilterNotFound) do
        eval code
      end
    end

    it 'returns error with lines before error' do
      code = Haml::Engine.new.call("\n\n:k0kubun")
      begin
        eval code
      rescue Haml::FilterNotFound => e
        assert_equal(2, e.line)
      end
    end
  end
end