@@ -8,7 +8,7 @@ use serde::Serialize;
88
99const FACTS_PATH : & str = "etc/rhsm/facts/bootc.json" ;
1010
11- #[ derive( Serialize ) ]
11+ #[ derive( Serialize , PartialEq , Debug , Default ) ]
1212struct RhsmFacts {
1313 #[ serde( rename = "bootc.booted.image" ) ]
1414 booted_image : String ,
@@ -47,7 +47,7 @@ impl From<crate::spec::HostStatus> for RhsmFacts {
4747 let version = imagestatus. version . as_ref ( ) . cloned ( ) . unwrap_or_default ( ) ;
4848 let digest = imagestatus. image_digest . clone ( ) ;
4949
50- ( image, digest , version )
50+ ( image, version , digest )
5151 } )
5252 } )
5353 . unwrap_or_default ( ) ;
@@ -61,7 +61,7 @@ impl From<crate::spec::HostStatus> for RhsmFacts {
6161 let version = imagestatus. version . as_ref ( ) . cloned ( ) . unwrap_or_default ( ) ;
6262 let digest = imagestatus. image_digest . clone ( ) ;
6363
64- ( image, digest , version )
64+ ( image, version , digest )
6565 } )
6666 } )
6767 . unwrap_or_default ( ) ;
@@ -75,7 +75,7 @@ impl From<crate::spec::HostStatus> for RhsmFacts {
7575 let version = imagestatus. version . as_ref ( ) . cloned ( ) . unwrap_or_default ( ) ;
7676 let digest = imagestatus. image_digest . clone ( ) ;
7777
78- ( image, digest , version )
78+ ( image, version , digest )
7979 } )
8080 } )
8181 . unwrap_or_default ( ) ;
@@ -89,7 +89,7 @@ impl From<crate::spec::HostStatus> for RhsmFacts {
8989 let version = imagestatus. version . as_ref ( ) . cloned ( ) . unwrap_or_default ( ) ;
9090 let digest = imagestatus. image_digest . clone ( ) ;
9191
92- ( image, digest , version )
92+ ( image, version , digest )
9393 } )
9494 } )
9595 . unwrap_or_default ( ) ;
@@ -126,3 +126,32 @@ pub(crate) async fn publish_facts(root: &Dir) -> Result<()> {
126126 serde_json:: to_writer_pretty ( & mut bootc_facts_file, & facts) ?;
127127 Ok ( ( ) )
128128}
129+
130+ #[ cfg( test) ]
131+ mod tests {
132+ use super :: * ;
133+
134+ use crate :: spec:: Host ;
135+
136+ #[ test]
137+ fn test_rhsm_facts_from_host ( ) {
138+ let host: Host = serde_yaml:: from_str ( include_str ! ( "fixtures/spec-staged-booted.yaml" ) )
139+ . expect ( "No spec found" ) ;
140+ let facts = RhsmFacts :: from ( host. status ) ;
141+
142+ assert_eq ! (
143+ facts,
144+ RhsmFacts {
145+ booted_image: "quay.io/example/someimage:latest" . into( ) ,
146+ booted_version: "nightly" . into( ) ,
147+ booted_digest:
148+ "sha256:736b359467c9437c1ac915acaae952aad854e07eb4a16a94999a48af08c83c34" . into( ) ,
149+ staged_image: "quay.io/example/someimage:latest" . into( ) ,
150+ staged_version: "nightly" . into( ) ,
151+ staged_digest:
152+ "sha256:16dc2b6256b4ff0d2ec18d2dbfb06d117904010c8cf9732cdb022818cf7a7566" . into( ) ,
153+ ..Default :: default ( )
154+ }
155+ ) ;
156+ }
157+ }
0 commit comments