92 lines
2.6 KiB
Ruby
92 lines
2.6 KiB
Ruby
|
# 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
|