diff options
Diffstat (limited to 'spec/lib/gitlab/tracking/docs/helper_spec.rb')
-rw-r--r-- | spec/lib/gitlab/tracking/docs/helper_spec.rb | 91 |
1 files changed, 91 insertions, 0 deletions
diff --git a/spec/lib/gitlab/tracking/docs/helper_spec.rb b/spec/lib/gitlab/tracking/docs/helper_spec.rb new file mode 100644 index 00000000000..5f7965502f1 --- /dev/null +++ b/spec/lib/gitlab/tracking/docs/helper_spec.rb @@ -0,0 +1,91 @@ +# frozen_string_literal: true + +require 'spec_helper' + +RSpec.describe Gitlab::Tracking::Docs::Helper do + let_it_be(:klass) do + Class.new do + include Gitlab::Tracking::Docs::Helper + end + end + + describe '#auto_generated_comment' do + it 'renders information about missing description' do + expect(klass.new.auto_generated_comment).to match /This documentation is auto generated by a script/ + end + end + + describe '#render_description' do + context 'description is empty' do + it 'renders information about missing description' do + object = double(description: '') + + expect(klass.new.render_description(object)).to eq('Missing description') + end + end + + context 'description is present' do + it 'render description' do + object = double(description: 'some description') + + expect(klass.new.render_description(object)).to eq('some description') + end + end + end + + describe '#render_event_taxonomy' do + it 'render table with event taxonomy' do + attributes = { + category: 'epics', + action: 'promote', + label: nil, + property_description: 'String with issue id', + value_description: 'Integer issue id' + } + object = double(attributes: attributes) + event_taxonomy = <<~MD.chomp + | category | action | label | property | value | + |---|---|---|---|---| + | `epics` | `promote` | `` | `String with issue id` | `Integer issue id` | + MD + + expect(klass.new.render_event_taxonomy(object)).to eq(event_taxonomy) + end + end + + describe '#md_link_to' do + it 'render link in md format' do + expect(klass.new.md_link_to('zelda', 'link')).to eq('[zelda](link)') + end + end + + describe '#render_owner' do + it 'render information about group owning event' do + object = double(product_group: "group::product intelligence") + + expect(klass.new.render_owner(object)).to eq("Owner: `group::product intelligence`") + end + end + + describe '#render_tiers' do + it 'render information about tiers' do + object = double(tiers: %w[bronze silver gold]) + + expect(klass.new.render_tiers(object)).to eq("Tiers: `bronze`, `silver`, `gold`") + end + end + + describe '#render_yaml_definition_path' do + it 'render relative location of yaml definition' do + object = double(yaml_path: 'config/events/button_click.yaml') + + expect(klass.new.render_yaml_definition_path(object)).to eq("YAML definition: `config/events/button_click.yaml`") + end + end + + describe '#backtick' do + it 'wraps string in backticks chars' do + expect(klass.new.backtick('test')).to eql("`test`") + end + end +end |