spec/d-mark/parser_spec.rb in d-mark-1.0.0a4 vs spec/d-mark/parser_spec.rb in d-mark-1.0.0b1
- old
+ new
@@ -4,9 +4,35 @@
def element(name, attributes, children)
DMark::ElementNode.new(name, attributes, children)
end
+describe DMark::Parser::ParserError do
+ subject(:error) do
+ begin
+ DMark::Parser.new(content).parse
+ rescue described_class => e
+ break e
+ end
+ end
+
+ let(:content) do
+ "#p Stuff\n\n#p More stuff }"
+ end
+
+ describe '#message' do
+ subject { error.message }
+
+ it { is_expected.to eq('parse error at line 3, col 15: unexpected } -- try escaping it as "%}"') }
+ end
+
+ describe '#fancy_message' do
+ subject { error.fancy_message }
+
+ it { is_expected.to eq("parse error at line 3, col 15: unexpected } -- try escaping it as \"%}\"\n\n#p More stuff }\n\e[31m ↑\e[0m") }
+ end
+end
+
describe 'DMark::Parser#parser' do
it 'parses' do
expect(parse('')).to eq []
expect(parse('#p')).to eq [element('p', {}, [])]
expect(parse('#p hi')).to eq [element('p', {}, ['hi'])]