Files
ubicloud/spec/serializers/kubernetes_cluster_spec.rb
2025-07-02 10:34:03 +02:00

58 lines
2.4 KiB
Ruby

# frozen_string_literal: true
require_relative "../spec_helper"
RSpec.describe Serializers::KubernetesCluster do
before do
allow(Config).to receive(:kubernetes_service_project_id).and_return(Project.create(name: "UbicloudKubernetesService").id)
end
describe ".serialize_internal" do
it "serializes a KubernetesCluster without the detailed option" do
project = Project.create(name: "default")
subnet = PrivateSubnet.create(net6: "0::0", net4: "127.0.0.1", name: "x", location_id: Location::HETZNER_FSN1_ID, project_id: Config.kubernetes_service_project_id)
kc = Prog::Kubernetes::KubernetesClusterNexus.assemble(name: "cluster", project_id: project.id, location_id: Location::HETZNER_FSN1_ID, version: "v1.32", private_subnet_id: subnet.id).subject
kn = KubernetesNodepool.create(name: "nodepool", node_count: 2, kubernetes_cluster_id: kc.id, target_node_size: "standard-2")
vm = create_vm
kn.add_vm(vm)
expected_result = {
id: kc.ubid,
name: "cluster",
location: "eu-central-h1",
display_state: "creating",
cp_node_count: 3,
node_size: "standard-2",
version: "v1.32"
}
expect(described_class.serialize_internal(kc)).to eq(expected_result)
end
it "serializes a KubernetesNodepool without the detailed option" do
project = Project.create(name: "default")
subnet = PrivateSubnet.create(net6: "0::0", net4: "127.0.0.1", name: "x", location_id: Location::HETZNER_FSN1_ID, project_id: Config.kubernetes_service_project_id)
kc = Prog::Kubernetes::KubernetesClusterNexus.assemble(name: "cluster", project_id: project.id, location_id: Location::HETZNER_FSN1_ID, version: "v1.32", private_subnet_id: subnet.id).subject
kn = KubernetesNodepool.create(name: "nodepool", node_count: 2, kubernetes_cluster_id: kc.id, target_node_size: "standard-2")
cp_vm = create_vm
kc.add_cp_vm(cp_vm)
kn.add_vm(create_vm)
expected_result = {
id: kc.ubid,
name: "cluster",
location: "eu-central-h1",
display_state: "creating",
cp_node_count: 3,
node_size: "standard-2",
version: "v1.32",
cp_vms: Serializers::Vm.serialize([cp_vm]),
nodepools: Serializers::KubernetesNodepool.serialize([kn], {detailed: true})
}
expect(described_class.serialize_internal(kc, {detailed: true})).to eq(expected_result)
end
end
end