• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

kdash-rs / kdash / 3750513782

pending completion
3750513782

push

github

Deepu
fix tests

982 of 4441 branches covered (22.11%)

Branch coverage included in aggregate %.

2731 of 4724 relevant lines covered (57.81%)

8.14 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

80.0
/src/app/storageclass.rs
1
use k8s_openapi::{api::storage::v1::StorageClass, chrono::Utc};
2

3
use super::{models::KubeResource, utils};
4

5
#[derive(Clone, Debug, PartialEq)]
2✔
6
pub struct KubeStorageClass {
7
  pub name: String,
1✔
8
  pub provisioner: String,
1!
9
  pub reclaim_policy: String,
1!
10
  pub volume_binding_mode: String,
1!
11
  pub allow_volume_expansion: bool,
1!
12
  pub age: String,
1!
13
  k8s_obj: StorageClass,
1!
14
}
15

16
impl From<StorageClass> for KubeStorageClass {
17
  fn from(storage_class: StorageClass) -> Self {
4✔
18
    KubeStorageClass {
4✔
19
      name: storage_class.metadata.name.clone().unwrap_or_default(),
4✔
20
      provisioner: storage_class.provisioner.clone(),
4✔
21
      reclaim_policy: storage_class.reclaim_policy.clone().unwrap_or_default(),
4✔
22
      volume_binding_mode: storage_class
4✔
23
        .volume_binding_mode
24
        .clone()
25
        .unwrap_or_default(),
26
      allow_volume_expansion: storage_class.allow_volume_expansion.unwrap_or_default(),
4✔
27
      age: utils::to_age(
4✔
28
        storage_class.metadata.creation_timestamp.as_ref(),
4✔
29
        Utc::now(),
4✔
30
      ),
31
      k8s_obj: utils::sanitize_obj(storage_class),
4✔
32
    }
33
  }
4✔
34
}
35

36
impl KubeResource<StorageClass> for KubeStorageClass {
37
  fn get_k8s_obj(&self) -> &StorageClass {
×
38
    &self.k8s_obj
39
  }
×
40
}
41

42
#[cfg(test)]
43
mod tests {
44
  use k8s_openapi::chrono::Utc;
45

46
  use crate::app::{
47
    storageclass::KubeStorageClass,
48
    test_utils::{convert_resource_from_file, get_time},
49
    utils,
50
  };
51

52
  #[tokio::test]
53
  async fn test_storageclass_from_api() {
3!
54
    let (storage_classes, storage_classes_list): (Vec<KubeStorageClass>, Vec<_>) =
1✔
55
      convert_resource_from_file("storageclass");
1✔
56
    assert_eq!(storage_classes_list.len(), 4);
1!
57
    assert_eq!(
3✔
58
      storage_classes[0],
1✔
59
      KubeStorageClass {
1✔
60
        name: "ebs-performance".into(),
1✔
61
        provisioner: "kubernetes.io/aws-ebs".into(),
1✔
62
        reclaim_policy: "Delete".into(),
1✔
63
        volume_binding_mode: "Immediate".into(),
1✔
64
        allow_volume_expansion: false,
65
        age: utils::to_age(Some(&get_time("2021-12-14T11:08:59Z")), Utc::now()),
1✔
66
        k8s_obj: storage_classes_list[0].clone(),
1!
67
      }
68
    );
2✔
69
  }
3✔
70
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc