# frozen_string_literal: true describe GitHubLinkInlineMacro do it 'should create a GitHub link with the caption being the target' do input = <<~INPUT github:foo-dogsquared/foobarbazxyz[] INPUT expected = <<~RESULT foo-dogsquared/foobarbazxyz RESULT actual = (Asciidoctor.convert input).tr_s '\n', '\n' (expect actual).to include expected.chomp end it 'should create a GitHub link to an account' do input = 'github:foo-dogsquared[]' expected = <<~RESULT foo-dogsquared RESULT actual = (Asciidoctor.convert input).tr_s '\n', '\n' (expect actual).to include expected.chomp end it 'should create a GitHub link with only the repo as the caption' do input = 'github:foo-dogsquared/foobarbazxyz[opts=repo]' expected = <<~RESULT foobarbazxyz RESULT actual = (Asciidoctor.convert input).tr_s '\n', '\n' (expect actual).to include expected.chomp end it 'should create a GitHub link with replaced caption' do input = 'github:foo-dogsquared/foobarbazxyz[my XYZ project]' expected = <<~RESULT my XYZ project RESULT actual = (Asciidoctor.convert input).tr_s '\n', '\n' (expect actual).to include expected.chomp end it 'should create a GitHub link to Vale v2.3.0 README' do input = 'github:errata-ai/vale[path=README.md, rev=v2.3.0]' expected = <<~RESULT errata-ai/vale@v2.3.0 RESULT actual = (Asciidoctor.convert input).tr_s '\n', '\n' (expect actual).to include expected.chomp end it 'should create a GitHub link to Vale v2.3.0 README with replaced caption' do input = 'github:errata-ai/vale[Vale v2.3.0 README, path=README.md, rev=v2.3.0]' expected = <<~RESULT Vale v2.3.0 README RESULT actual = (Asciidoctor.convert input).tr_s '\n', '\n' (expect actual).to include expected.chomp end it %(should create a GitHub link to one of Neovim's issues) do input = 'github:neovim/neovim[issue=614]' expected = <<~RESULT neovim/neovim#614 RESULT actual = (Asciidoctor.convert input).tr_s '\n', '\n' (expect actual).to include expected.chomp end it %(should create a GitHub link to one of Neovim's issues with a replaced caption) do input = <<~INPUT github:neovim/neovim[Neovim will not open large files properly, issue=614] INPUT expected = <<~RESULT Neovim will not open large files properly RESULT actual = (Asciidoctor.convert input).tr_s '\n', '\n' (expect actual).to include expected.chomp end it %(should still link to one of Neovim's issues) do input = <<~INPUT github:neovim/neovim[Neovim will not open large files properly, issue=614, rev=master] INPUT expected = <<~RESULT Neovim will not open large files properly RESULT actual = (Asciidoctor.convert input).tr_s '\n', '\n' (expect actual).to include expected.chomp end end