clusters.rb 1.85 KB
Newer Older
1 2
# frozen_string_literal: true

3
FactoryBot.define do
4 5 6
  factory :cluster, class: Clusters::Cluster do
    user
    name 'test-cluster'
7
    cluster_type :project_type
8
    managed true
9

10 11
    factory :cluster_for_group, traits: [:provided_by_gcp, :group]

12 13 14
    trait :instance do
      cluster_type { Clusters::Cluster.cluster_types[:instance_type] }
    end
15 16

    trait :project do
17 18
      cluster_type { Clusters::Cluster.cluster_types[:project_type] }

19
      before(:create) do |cluster, evaluator|
20
        cluster.projects << create(:project) unless cluster.projects.present?
21 22 23
      end
    end

24 25 26 27
    trait :group do
      cluster_type { Clusters::Cluster.cluster_types[:group_type] }

      before(:create) do |cluster, evalutor|
28
        cluster.groups << create(:group) unless cluster.groups.present?
29 30 31
      end
    end

32 33 34
    trait :provided_by_user do
      provider_type :user
      platform_type :kubernetes
35

Kamil Trzcinski's avatar
Kamil Trzcinski committed
36
      platform_kubernetes factory: [:cluster_platform_kubernetes, :configured]
37 38 39 40 41
    end

    trait :provided_by_gcp do
      provider_type :gcp
      platform_type :kubernetes
42

Kamil Trzcinski's avatar
Kamil Trzcinski committed
43 44
      provider_gcp factory: [:cluster_provider_gcp, :created]
      platform_kubernetes factory: [:cluster_platform_kubernetes, :configured]
45 46 47 48
    end

    trait :providing_by_gcp do
      provider_type :gcp
Kamil Trzcinski's avatar
Kamil Trzcinski committed
49
      provider_gcp factory: [:cluster_provider_gcp, :creating]
50
    end
51

52 53 54 55
    trait :rbac_disabled do
      platform_kubernetes factory: [:cluster_platform_kubernetes, :configured, :rbac_disabled]
    end

56 57 58
    trait :disabled do
      enabled false
    end
59 60 61 62

    trait :production_environment do
      sequence(:environment_scope) { |n| "production#{n}/*" }
    end
63 64 65 66

    trait :with_installed_helm do
      application_helm factory: %i(clusters_applications_helm installed)
    end
67 68 69 70

    trait :with_domain do
      domain 'example.com'
    end
71

72
    trait :not_managed do
73 74
      managed false
    end
75 76
  end
end