summaryrefslogtreecommitdiff
path: root/spec/lib/gitlab/kubernetes/cluster_role_binding_spec.rb
blob: e1106f7496af74805c8f1002c654c3229e7f4d2f (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
# frozen_string_literal: true

require 'spec_helper'

describe Gitlab::Kubernetes::ClusterRoleBinding do
  let(:cluster_role_binding) { described_class.new(name, cluster_role_name, subjects) }
  let(:name) { 'cluster-role-binding-name' }
  let(:cluster_role_name) { 'cluster-admin' }

  let(:subjects) { [{ kind: 'ServiceAccount', name: 'sa', namespace: 'ns' }] }

  describe '#generate' do
    let(:role_ref) do
      {
        apiGroup: 'rbac.authorization.k8s.io',
        kind: 'ClusterRole',
        name: cluster_role_name
      }
    end

    let(:resource) do
      ::Kubeclient::Resource.new(
        metadata: { name: name },
        roleRef: role_ref,
        subjects: subjects
      )
    end

    subject { cluster_role_binding.generate }

    it 'builds a Kubeclient Resource' do
      is_expected.to eq(resource)
    end
  end
end