Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-docs.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcel Amirault <mamirault@gitlab.com>2022-06-27 06:01:18 +0300
committerMarcel Amirault <mamirault@gitlab.com>2022-06-27 06:01:18 +0300
commit1b4bf766f209b95186e06df6c7956494ba7c0c49 (patch)
treeb648a58e659deeaf9088cc6d355d5ebaf9810354
parent5fde05a8226c458535f72227eab9a76d757e9582 (diff)
parent399de3f7fab8b76e186e649c2cca3eedccb3105e (diff)
Merge branch 'eread/fix-mixed-regexp-capture-types-rubocop-offense' into 'main'
Fix Lint/MixedRegexpCaptureTypes RuboCop offense See merge request gitlab-org/gitlab-docs!2818
-rw-r--r--lib/filters/badges.rb4
-rw-r--r--lib/gitlab/docs.rb2
-rw-r--r--spec/gitlab/navigation_spec.rb2
-rw-r--r--spec/lib/filters/badges_spec.rb161
4 files changed, 166 insertions, 3 deletions
diff --git a/lib/filters/badges.rb b/lib/filters/badges.rb
index e14b24e6..2cd0e488 100644
--- a/lib/filters/badges.rb
+++ b/lib/filters/badges.rb
@@ -27,9 +27,9 @@ class BadgesFilter < Nanoc::Filter
BADGES_MARKDOWN_PATTERN = %r{
(?:^|[^`]) # must be start of the line or anything except backtick
- \*\*(\[|\()
+ \*\*(?:\[|\()
(?<tier>CORE|STARTER|PREMIUM|ULTIMATE|FREE|BRONZE|SILVER|GOLD)(?:\s+(?<type>ONLY|SAAS|SELF))
- ?(\]|\))\*\*
+ ?(?:\]|\))\*\*
(?:$|[^`]) # must end of line or anything except backtick
}x.freeze
diff --git a/lib/gitlab/docs.rb b/lib/gitlab/docs.rb
index b078f62c..1a38e371 100644
--- a/lib/gitlab/docs.rb
+++ b/lib/gitlab/docs.rb
@@ -2,6 +2,8 @@
$LOAD_PATH.unshift(__dir__)
+require 'nanoc'
+
module Gitlab
module Docs
autoload :Document, 'docs/document'
diff --git a/spec/gitlab/navigation_spec.rb b/spec/gitlab/navigation_spec.rb
index 36e1b132..425a5428 100644
--- a/spec/gitlab/navigation_spec.rb
+++ b/spec/gitlab/navigation_spec.rb
@@ -1,7 +1,7 @@
# frozen_string_literal: true
require 'spec_helper'
-require 'nanoc'
+
require 'gitlab/navigation'
require 'gitlab/navigation/section'
diff --git a/spec/lib/filters/badges_spec.rb b/spec/lib/filters/badges_spec.rb
new file mode 100644
index 00000000..aefbdefa
--- /dev/null
+++ b/spec/lib/filters/badges_spec.rb
@@ -0,0 +1,161 @@
+require 'spec_helper'
+
+require 'filters/badges'
+
+describe BadgesFilter do
+ describe '#run' do
+ let(:content) { nil }
+
+ subject(:run) { described_class.new.run(content) }
+
+ context 'when <strong>(FREE)</strong> badge' do
+ let(:content) { '<strong>(FREE)</strong>' }
+
+ it 'returns correct HTML' do
+ expect(run).to eq('<span class="badge-trigger free"></span>')
+ end
+ end
+
+ context 'when <strong>(PREMIUM)</strong> badge' do
+ let(:content) { '<strong>(PREMIUM)</strong>' }
+
+ it 'returns correct HTML' do
+ expect(run).to eq('<span class="badge-trigger premium"></span>')
+ end
+ end
+
+ context 'when <strong>(ULTIMATE)</strong> badge' do
+ let(:content) { '<strong>(ULTIMATE)</strong>' }
+
+ it 'returns correct HTML' do
+ expect(run).to eq('<span class="badge-trigger ultimate"></span>')
+ end
+ end
+
+ context 'when <strong>(FREE SELF)</strong> badge' do
+ let(:content) { '<strong>(FREE SELF)</strong>' }
+
+ it 'returns correct HTML' do
+ expect(run).to eq('<span class="badge-trigger free-self"></span>')
+ end
+ end
+
+ context 'when <strong>(PREMIUM SELF)</strong> badge' do
+ let(:content) { '<strong>(PREMIUM SELF)</strong>' }
+
+ it 'returns correct HTML' do
+ expect(run).to eq('<span class="badge-trigger premium-self"></span>')
+ end
+ end
+
+ context 'when <strong>(ULTIMATE SELF)</strong> badge' do
+ let(:content) { '<strong>(ULTIMATE SELF)</strong>' }
+
+ it 'returns correct HTML' do
+ expect(run).to eq('<span class="badge-trigger ultimate-self"></span>')
+ end
+ end
+
+ context 'when <strong>(FREE SAAS)</strong> badge' do
+ let(:content) { '<strong>(FREE SAAS)</strong>' }
+
+ it 'returns correct HTML' do
+ expect(run).to eq('<span class="badge-trigger free-saas"></span>')
+ end
+ end
+
+ context 'when <strong>(PREMIUM SAAS)</strong> badge' do
+ let(:content) { '<strong>(PREMIUM SAAS)</strong>' }
+
+ it 'returns correct HTML' do
+ expect(run).to eq('<span class="badge-trigger premium-saas"></span>')
+ end
+ end
+
+ context 'when <strong>(ULTIMATE SAAS)</strong> badge' do
+ let(:content) { '<strong>(ULTIMATE SAAS)</strong>' }
+
+ it 'returns correct HTML' do
+ expect(run).to eq('<span class="badge-trigger ultimate-saas"></span>')
+ end
+ end
+ end
+
+ describe '#run_from_markdown' do
+ let(:content) { nil }
+
+ subject(:run_from_markdown) { described_class.new.run_from_markdown(content) }
+
+ context 'when **(FREE)** badge' do
+ let(:content) { '**(FREE)**' }
+
+ it 'returns correct HTML' do
+ expect(run_from_markdown).to eq('<span class="badge-trigger free"></span>')
+ end
+ end
+
+ context 'when **(PREMIUM)** badge' do
+ let(:content) { '**(PREMIUM)**' }
+
+ it 'returns correct HTML' do
+ expect(run_from_markdown).to eq('<span class="badge-trigger premium"></span>')
+ end
+ end
+
+ context 'when **(ULTIMATE)** badge' do
+ let(:content) { '**(ULTIMATE)**' }
+
+ it 'returns correct HTML' do
+ expect(run_from_markdown).to eq('<span class="badge-trigger ultimate"></span>')
+ end
+ end
+
+ context 'when **(FREE SELF)** badge' do
+ let(:content) { '**(FREE SELF)**' }
+
+ it 'returns correct HTML' do
+ expect(run_from_markdown).to eq('<span class="badge-trigger free-self"></span>')
+ end
+ end
+
+ context 'when **(PREMIUM SELF)** badge' do
+ let(:content) { '**(PREMIUM SELF)**' }
+
+ it 'returns correct HTML' do
+ expect(run_from_markdown).to eq('<span class="badge-trigger premium-self"></span>')
+ end
+ end
+
+ context 'when **(ULTIMATE SELF)** badge' do
+ let(:content) { '**(ULTIMATE SELF)**' }
+
+ it 'returns correct HTML' do
+ expect(run_from_markdown).to eq('<span class="badge-trigger ultimate-self"></span>')
+ end
+ end
+
+ context 'when **(FREE SAAS)** badge' do
+ let(:content) { '**(FREE SAAS)**' }
+
+ it 'returns correct HTML' do
+ expect(run_from_markdown).to eq('<span class="badge-trigger free-saas"></span>')
+ end
+ end
+
+ context 'when **(PREMIUM SAAS)** badge' do
+ let(:content) { '**(PREMIUM SAAS)**' }
+
+ it 'returns correct HTML' do
+ expect(run_from_markdown).to eq('<span class="badge-trigger premium-saas"></span>')
+ end
+ end
+
+ context 'when **(ULTIMATE SAAS)** badge' do
+ let(:content) { '**(ULTIMATE SAAS)**' }
+
+ it 'returns correct HTML' do
+ expect(run_from_markdown).to eq('<span class="badge-trigger ultimate-saas"></span>')
+ end
+ end
+ end
+end