Re-arrange spec/helpers/gitlab_markdown_helper_spec a bit
This commit is contained in:
parent
f76df89058
commit
b41eb34503
1 changed files with 111 additions and 111 deletions
|
@ -130,6 +130,116 @@ describe GitlabMarkdownHelper do
|
|||
expect(gfm(":+1:")).to match(/<img/)
|
||||
end
|
||||
end
|
||||
|
||||
context 'parse_tasks: true' do
|
||||
before(:all) do
|
||||
@source_text_asterisk = <<-EOT.strip_heredoc
|
||||
* [ ] valid unchecked task
|
||||
* [x] valid lowercase checked task
|
||||
* [X] valid uppercase checked task
|
||||
* [ ] valid unchecked nested task
|
||||
* [x] valid checked nested task
|
||||
|
||||
[ ] not an unchecked task - no list item
|
||||
[x] not a checked task - no list item
|
||||
|
||||
* [ ] not an unchecked task - too many spaces
|
||||
* [x ] not a checked task - too many spaces
|
||||
* [] not an unchecked task - no spaces
|
||||
* Not a task [ ] - not at beginning
|
||||
EOT
|
||||
|
||||
@source_text_dash = <<-EOT.strip_heredoc
|
||||
- [ ] valid unchecked task
|
||||
- [x] valid lowercase checked task
|
||||
- [X] valid uppercase checked task
|
||||
- [ ] valid unchecked nested task
|
||||
- [x] valid checked nested task
|
||||
EOT
|
||||
end
|
||||
|
||||
it 'should render checkboxes at beginning of asterisk list items' do
|
||||
rendered_text = markdown(@source_text_asterisk, parse_tasks: true)
|
||||
|
||||
expect(rendered_text).to match(/<input.*checkbox.*valid unchecked task/)
|
||||
expect(rendered_text).to match(
|
||||
/<input.*checkbox.*valid lowercase checked task/
|
||||
)
|
||||
expect(rendered_text).to match(
|
||||
/<input.*checkbox.*valid uppercase checked task/
|
||||
)
|
||||
end
|
||||
|
||||
it 'should render checkboxes at beginning of dash list items' do
|
||||
rendered_text = markdown(@source_text_dash, parse_tasks: true)
|
||||
|
||||
expect(rendered_text).to match(/<input.*checkbox.*valid unchecked task/)
|
||||
expect(rendered_text).to match(
|
||||
/<input.*checkbox.*valid lowercase checked task/
|
||||
)
|
||||
expect(rendered_text).to match(
|
||||
/<input.*checkbox.*valid uppercase checked task/
|
||||
)
|
||||
end
|
||||
|
||||
it 'should render checkboxes for nested tasks' do
|
||||
rendered_text = markdown(@source_text_asterisk, parse_tasks: true)
|
||||
|
||||
expect(rendered_text).to match(
|
||||
/<input.*checkbox.*valid unchecked nested task/
|
||||
)
|
||||
expect(rendered_text).to match(
|
||||
/<input.*checkbox.*valid checked nested task/
|
||||
)
|
||||
end
|
||||
|
||||
it 'should not be confused by whitespace before bullets' do
|
||||
rendered_text_asterisk = markdown(@source_text_asterisk,
|
||||
parse_tasks: true)
|
||||
rendered_text_dash = markdown(@source_text_dash, parse_tasks: true)
|
||||
|
||||
expect(rendered_text_asterisk).to match(
|
||||
/<input.*checkbox.*valid unchecked nested task/
|
||||
)
|
||||
expect(rendered_text_asterisk).to match(
|
||||
/<input.*checkbox.*valid checked nested task/
|
||||
)
|
||||
expect(rendered_text_dash).to match(
|
||||
/<input.*checkbox.*valid unchecked nested task/
|
||||
)
|
||||
expect(rendered_text_dash).to match(
|
||||
/<input.*checkbox.*valid checked nested task/
|
||||
)
|
||||
end
|
||||
|
||||
it 'should not render checkboxes outside of list items' do
|
||||
rendered_text = markdown(@source_text_asterisk, parse_tasks: true)
|
||||
|
||||
expect(rendered_text).not_to match(
|
||||
/<input.*checkbox.*not an unchecked task - no list item/
|
||||
)
|
||||
expect(rendered_text).not_to match(
|
||||
/<input.*checkbox.*not a checked task - no list item/
|
||||
)
|
||||
end
|
||||
|
||||
it 'should not render checkboxes with invalid formatting' do
|
||||
rendered_text = markdown(@source_text_asterisk, parse_tasks: true)
|
||||
|
||||
expect(rendered_text).not_to match(
|
||||
/<input.*checkbox.*not an unchecked task - too many spaces/
|
||||
)
|
||||
expect(rendered_text).not_to match(
|
||||
/<input.*checkbox.*not a checked task - too many spaces/
|
||||
)
|
||||
expect(rendered_text).not_to match(
|
||||
/<input.*checkbox.*not an unchecked task - no spaces/
|
||||
)
|
||||
expect(rendered_text).not_to match(
|
||||
/Not a task.*<input.*checkbox.*not at beginning/
|
||||
)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
describe "#link_to_gfm" do
|
||||
|
@ -425,7 +535,7 @@ describe GitlabMarkdownHelper do
|
|||
end
|
||||
end
|
||||
|
||||
describe "#render_wiki_content" do
|
||||
describe '#render_wiki_content' do
|
||||
before do
|
||||
@wiki = double('WikiPage')
|
||||
allow(@wiki).to receive(:content).and_return('wiki content')
|
||||
|
@ -448,114 +558,4 @@ describe GitlabMarkdownHelper do
|
|||
helper.render_wiki_content(@wiki)
|
||||
end
|
||||
end
|
||||
|
||||
describe '#gfm_with_tasks' do
|
||||
before(:all) do
|
||||
@source_text_asterisk = <<EOT.gsub(/^\s{8}/, '')
|
||||
* [ ] valid unchecked task
|
||||
* [x] valid lowercase checked task
|
||||
* [X] valid uppercase checked task
|
||||
* [ ] valid unchecked nested task
|
||||
* [x] valid checked nested task
|
||||
|
||||
[ ] not an unchecked task - no list item
|
||||
[x] not a checked task - no list item
|
||||
|
||||
* [ ] not an unchecked task - too many spaces
|
||||
* [x ] not a checked task - too many spaces
|
||||
* [] not an unchecked task - no spaces
|
||||
* Not a task [ ] - not at beginning
|
||||
EOT
|
||||
|
||||
@source_text_dash = <<EOT.gsub(/^\s{8}/, '')
|
||||
- [ ] valid unchecked task
|
||||
- [x] valid lowercase checked task
|
||||
- [X] valid uppercase checked task
|
||||
- [ ] valid unchecked nested task
|
||||
- [x] valid checked nested task
|
||||
EOT
|
||||
end
|
||||
|
||||
it 'should render checkboxes at beginning of asterisk list items' do
|
||||
rendered_text = markdown(@source_text_asterisk, parse_tasks: true)
|
||||
|
||||
expect(rendered_text).to match(/<input.*checkbox.*valid unchecked task/)
|
||||
expect(rendered_text).to match(
|
||||
/<input.*checkbox.*valid lowercase checked task/
|
||||
)
|
||||
expect(rendered_text).to match(
|
||||
/<input.*checkbox.*valid uppercase checked task/
|
||||
)
|
||||
end
|
||||
|
||||
it 'should render checkboxes at beginning of dash list items' do
|
||||
rendered_text = markdown(@source_text_dash, parse_tasks: true)
|
||||
|
||||
expect(rendered_text).to match(/<input.*checkbox.*valid unchecked task/)
|
||||
expect(rendered_text).to match(
|
||||
/<input.*checkbox.*valid lowercase checked task/
|
||||
)
|
||||
expect(rendered_text).to match(
|
||||
/<input.*checkbox.*valid uppercase checked task/
|
||||
)
|
||||
end
|
||||
|
||||
it 'should render checkboxes for nested tasks' do
|
||||
rendered_text = markdown(@source_text_asterisk, parse_tasks: true)
|
||||
|
||||
expect(rendered_text).to match(
|
||||
/<input.*checkbox.*valid unchecked nested task/
|
||||
)
|
||||
expect(rendered_text).to match(
|
||||
/<input.*checkbox.*valid checked nested task/
|
||||
)
|
||||
end
|
||||
|
||||
it 'should not be confused by whitespace before bullets' do
|
||||
rendered_text_asterisk = markdown(@source_text_asterisk,
|
||||
parse_tasks: true)
|
||||
rendered_text_dash = markdown(@source_text_dash, parse_tasks: true)
|
||||
|
||||
expect(rendered_text_asterisk).to match(
|
||||
/<input.*checkbox.*valid unchecked nested task/
|
||||
)
|
||||
expect(rendered_text_asterisk).to match(
|
||||
/<input.*checkbox.*valid checked nested task/
|
||||
)
|
||||
expect(rendered_text_dash).to match(
|
||||
/<input.*checkbox.*valid unchecked nested task/
|
||||
)
|
||||
expect(rendered_text_dash).to match(
|
||||
/<input.*checkbox.*valid checked nested task/
|
||||
)
|
||||
end
|
||||
|
||||
it 'should not render checkboxes outside of list items' do
|
||||
rendered_text = markdown(@source_text_asterisk, parse_tasks: true)
|
||||
|
||||
expect(rendered_text).not_to match(
|
||||
/<input.*checkbox.*not an unchecked task - no list item/
|
||||
)
|
||||
expect(rendered_text).not_to match(
|
||||
/<input.*checkbox.*not a checked task - no list item/
|
||||
)
|
||||
end
|
||||
|
||||
it 'should not render checkboxes with invalid formatting' do
|
||||
rendered_text = markdown(@source_text_asterisk, parse_tasks: true)
|
||||
|
||||
expect(rendered_text).not_to match(
|
||||
/<input.*checkbox.*not an unchecked task - too many spaces/
|
||||
)
|
||||
expect(rendered_text).not_to match(
|
||||
/<input.*checkbox.*not a checked task - too many spaces/
|
||||
)
|
||||
expect(rendered_text).not_to match(
|
||||
/<input.*checkbox.*not an unchecked task - no spaces/
|
||||
)
|
||||
expect(rendered_text).not_to match(
|
||||
/Not a task.*<input.*checkbox.*not at beginning/
|
||||
)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in a new issue