Class: LabelsMiddlewareTest

Inherits:
Minitest::Test
  • Object
show all
Defined in:
lib/kube/cluster/middleware/labels.rb

Constant Summary collapse

Middleware =
Kube::Cluster::Middleware

Instance Method Summary collapse

Instance Method Details

#test_adds_standard_labelsObject



72
73
74
75
76
77
78
79
80
# File 'lib/kube/cluster/middleware/labels.rb', line 72

def test_adds_standard_labels
  m = manifest(Kube::Cluster["ConfigMap"].new { .name = "test" })

  Middleware::Labels.new(app: "web", managed_by: "kube_cluster").call(m)
  labels = m.resources.first.to_h.dig(:metadata, :labels)

  assert_equal "web", labels[:"app.kubernetes.io/name"]
  assert_equal "kube_cluster", labels[:"app.kubernetes.io/managed-by"]
end

#test_converts_values_to_stringsObject



138
139
140
141
142
143
144
145
# File 'lib/kube/cluster/middleware/labels.rb', line 138

def test_converts_values_to_strings
  m = manifest(Kube::Cluster["ConfigMap"].new { .name = "test" })

  Middleware::Labels.new(version: 2).call(m)
  labels = m.resources.first.to_h.dig(:metadata, :labels)

  assert_equal "2", labels[:"app.kubernetes.io/version"]
end

#test_maps_all_standard_keysObject



82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
# File 'lib/kube/cluster/middleware/labels.rb', line 82

def test_maps_all_standard_keys
  m = manifest(Kube::Cluster["ConfigMap"].new { .name = "test" })

  Middleware::Labels.new(
    app: "web",
    instance: "my-release",
    version: "1.0.0",
    component: "frontend",
    part_of: "platform",
    managed_by: "kube_cluster",
  ).call(m)

  labels = m.resources.first.to_h.dig(:metadata, :labels)

  assert_equal "web",           labels[:"app.kubernetes.io/name"]
  assert_equal "my-release",    labels[:"app.kubernetes.io/instance"]
  assert_equal "1.0.0",         labels[:"app.kubernetes.io/version"]
  assert_equal "frontend",      labels[:"app.kubernetes.io/component"]
  assert_equal "platform",      labels[:"app.kubernetes.io/part-of"]
  assert_equal "kube_cluster",  labels[:"app.kubernetes.io/managed-by"]
end

#test_passes_through_non_standard_keysObject



129
130
131
132
133
134
135
136
# File 'lib/kube/cluster/middleware/labels.rb', line 129

def test_passes_through_non_standard_keys
  m = manifest(Kube::Cluster["ConfigMap"].new { .name = "test" })

  Middleware::Labels.new(:"team.io/name" => "platform").call(m)
  labels = m.resources.first.to_h.dig(:metadata, :labels)

  assert_equal "platform", labels[:"team.io/name"]
end

#test_preserves_existing_labelsObject



116
117
118
119
120
121
122
123
124
125
126
127
# File 'lib/kube/cluster/middleware/labels.rb', line 116

def test_preserves_existing_labels
  m = manifest(Kube::Cluster["ConfigMap"].new {
    .name = "test"
    .labels = { custom: "value" }
  })

  Middleware::Labels.new(app: "web").call(m)
  labels = m.resources.first.to_h.dig(:metadata, :labels)

  assert_equal "value", labels[:custom]
  assert_equal "web", labels[:"app.kubernetes.io/name"]
end

#test_resource_labels_override_middleware_defaultsObject



104
105
106
107
108
109
110
111
112
113
114
# File 'lib/kube/cluster/middleware/labels.rb', line 104

def test_resource_labels_override_middleware_defaults
  m = manifest(Kube::Cluster["ConfigMap"].new {
    .name = "test"
    .labels = { "app.kubernetes.io/name": "override" }
  })

  Middleware::Labels.new(app: "default").call(m)
  labels = m.resources.first.to_h.dig(:metadata, :labels)

  assert_equal "override", labels[:"app.kubernetes.io/name"]
end