File tree 3 files changed +39
-15
lines changed
3 files changed +39
-15
lines changed Original file line number Diff line number Diff line change @@ -210,12 +210,8 @@ impl<'a> FakeRelease<'a> {
210
210
self
211
211
}
212
212
213
- pub ( crate ) fn features ( mut self , opt_features : Option < HashMap < String , Vec < String > > > ) -> Self {
214
- if let Some ( features) = opt_features {
215
- self . package . features = features;
216
- } else {
217
- self . package . features = HashMap :: new ( ) ;
218
- }
213
+ pub ( crate ) fn features ( mut self , features : HashMap < String , Vec < String > > ) -> Self {
214
+ self . package . features = features;
219
215
self
220
216
}
221
217
Original file line number Diff line number Diff line change @@ -751,8 +751,7 @@ mod tests {
751
751
env. fake_release ( )
752
752
. name ( "library" )
753
753
. version ( "0.1.0" )
754
- . binary ( false )
755
- . features ( None )
754
+ . features ( HashMap :: new ( ) )
756
755
. create ( ) ?;
757
756
758
757
let page = kuchiki:: parse_html ( ) . one (
@@ -776,8 +775,7 @@ mod tests {
776
775
env. fake_release ( )
777
776
. name ( "library" )
778
777
. version ( "0.1.0" )
779
- . binary ( false )
780
- . features ( Some ( features) )
778
+ . features ( features)
781
779
. create ( ) ?;
782
780
783
781
let page = kuchiki:: parse_html ( ) . one (
@@ -801,8 +799,7 @@ mod tests {
801
799
env. fake_release ( )
802
800
. name ( "library" )
803
801
. version ( "0.1.0" )
804
- . binary ( false )
805
- . features ( Some ( features) )
802
+ . features ( features)
806
803
. create ( ) ?;
807
804
808
805
let page = kuchiki:: parse_html ( ) . one (
@@ -819,4 +816,29 @@ mod tests {
819
816
Ok ( ( ) )
820
817
} ) ;
821
818
}
819
+
820
+ #[ test]
821
+ fn feature_flags_report_null ( ) {
822
+ wrapper ( |env| {
823
+ let id = env
824
+ . fake_release ( )
825
+ . name ( "library" )
826
+ . version ( "0.1.0" )
827
+ . features ( HashMap :: new ( ) )
828
+ . create ( ) ?;
829
+
830
+ env. db ( )
831
+ . conn ( )
832
+ . query ( "UPDATE releases SET features = NULL WHERE id = $1" , & [ & id] ) ?;
833
+
834
+ let page = kuchiki:: parse_html ( ) . one (
835
+ env. frontend ( )
836
+ . get ( "/crate/library/0.1.0/features" )
837
+ . send ( ) ?
838
+ . text ( ) ?,
839
+ ) ;
840
+ assert ! ( page. select_first( r#"p[data-id="null-features"]"# ) . is_ok( ) ) ;
841
+ Ok ( ( ) )
842
+ } ) ;
843
+ }
822
844
}
Original file line number Diff line number Diff line change 34
34
</ a >
35
35
</ li >
36
36
{%- endfor -%}
37
+ {%- elif metadata.features is iterable -%}
38
+ < li class ="pure-menu-item ">
39
+ < span style ="font-size: 13px; "> This release does not have any feature flags.</ span >
40
+ </ li >
37
41
{%- else -%}
38
42
< li class ="pure-menu-item ">
39
- < span style ="font-size: 13px; "> Feature flags are not available for this version .</ span >
43
+ < span style ="font-size: 13px; "> Feature flags data are not available for this release .</ span >
40
44
</ li >
41
45
{%- endif -%}
42
46
</ ul >
@@ -52,7 +56,7 @@ <h1>{{ metadata.name }}</h1>
52
56
{%- else -%}
53
57
0
54
58
{%- endif -%}
55
- </ b > of them being enabled by < b > default</ b > .</ p >
59
+ </ b > of them enabled by < b > default</ b > .</ p >
56
60
{%- for feature in metadata.features -%}
57
61
< h3 id ="{{ feature.name }} "> {{ feature.name }}</ h3 >
58
62
< ul class ="pure-menu-list ">
@@ -67,8 +71,10 @@ <h3 id="{{ feature.name }}">{{ feature.name }}</h3>
67
71
{%- endif -%}
68
72
</ ul >
69
73
{%- endfor -%}
74
+ {%- elif metadata.features is iterable -%}
75
+ < p data-id ="empty-features "> This release does not have any feature flags.</ p >
70
76
{%- else -%}
71
- < p data-id ="empty -features "> Feature flags are not available for this release.</ p >
77
+ < p data-id ="null -features "> Feature flags data are not available for this release.</ p >
72
78
{%- endif -%}
73
79
</ div >
74
80
</ div >
You can’t perform that action at this time.
0 commit comments