discourse-calendar/spec/lib/event_parser_spec.rb

43 lines
1.4 KiB
Ruby
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# frozen_string_literal: true
require "rails_helper"
describe DiscoursePostEvent::EventParser do
subject { DiscoursePostEvent::EventParser }
it 'works with no event' do
events = subject.extract_events('this could be a nice event')
expect(events.length).to eq(0)
end
it 'finds one event' do
events = subject.extract_events('[wrap=event start="foo" end="bar"]\n[/wrap]')
expect(events.length).to eq(1)
end
it 'finds multiple events' do
events = subject.extract_events('[wrap=event start="foo" end="bar"]\n[/wrap] baz [wrap=event start="foo" end="bar"]\n[/wrap]')
expect(events.length).to eq(2)
end
it 'parses options' do
events = subject.extract_events('[wrap=event start="foo" end="bar"]\n[/wrap]')
expect(events[0][:start]).to eq("foo")
expect(events[0][:end]).to eq("bar")
end
it 'works with escaped string' do
events = subject.extract_events("I am going to get that fixed.\n\n[wrap=event start=\"bar\"]\n[/wrap]\n\n[wrap=event start=\"foo\"]\n[/wrap]")
expect(events[0][:start]).to eq("bar")
expect(events[1][:start]).to eq("foo")
end
it 'doesnt parse invalid options' do
events = subject.extract_events("I am going to get that fixed.\n\n[wrap=event start=\"foo\" something=\"bar\"]\n[/wrap]")
expect(events[0][:something]).to be(nil)
events = subject.extract_events("I am going to get that fixed.\n\n[wrap=event something=\"bar\"]\n[/wrap]")
expect(events).to eq([])
end
end