summaryrefslogtreecommitdiff
path: root/spec/lib/gitlab/kroki_spec.rb
blob: 31d3edd158bdb74aab5932ed697530dc9a47a749 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# frozen_string_literal: true
require 'spec_helper'

RSpec.describe Gitlab::Kroki do
  using RSpec::Parameterized::TableSyntax

  describe '.formats' do
    def default_formats
      %w[bytefield c4plantuml ditaa erd graphviz nomnoml plantuml svgbob umlet vega vegalite wavedrom].freeze
    end

    subject { described_class.formats(Gitlab::CurrentSettings) }

    where(:enabled_formats, :expected_formats) do
      ''           | default_formats
      'blockdiag'  | default_formats + %w[actdiag blockdiag nwdiag packetdiag rackdiag seqdiag]
      'bpmn'       | default_formats + %w[bpmn]
      'excalidraw' | default_formats + %w[excalidraw]
    end

    with_them do
      before do
        kroki_formats =
          if enabled_formats.present?
            { enabled_formats => true }
          else
            {}
          end

        stub_application_setting(kroki_enabled: true, kroki_url: "http://localhost:8000", kroki_formats: kroki_formats)
      end

      it 'returns the expected formats' do
        expect(subject).to match_array(expected_formats)
      end
    end
  end
end