@@ -1012,12 +1012,12 @@ func TestGetObservationsAsTimeseries(t *testing.T) {
10121012 }
10131013}
10141014
1015- func TestGetLatestObservation (t * testing.T ) {
1015+ func TestGetLatestObservations (t * testing.T ) {
10161016 pivotTime := time .Now ().Truncate (time .Minute )
10171017
10181018 // Create a site to attach the observations to
10191019 siteResp , err := dc .CreateLocation (t .Context (), & pb.CreateLocationRequest {
1020- LocationName : "test_get_latest_observation_site " ,
1020+ LocationName : "test_get_latest_observations_site_1 " ,
10211021 GeometryWkt : "POINT(-20.25 57.5)" ,
10221022 EffectiveCapacityWatts : 1000000 ,
10231023 Metadata : & structpb.Struct {},
@@ -1029,7 +1029,7 @@ func TestGetLatestObservation(t *testing.T) {
10291029
10301030 // Create an observer to make the observations
10311031 obsResp , err := dc .CreateObserver (t .Context (), & pb.CreateObserverRequest {
1032- Name : "test_get_latest_observation_observer " ,
1032+ Name : "test_get_latest_observations_observer " ,
10331033 })
10341034 require .NoError (t , err )
10351035
@@ -1053,56 +1053,60 @@ func TestGetLatestObservation(t *testing.T) {
10531053 require .NoError (t , err )
10541054
10551055 testcases := []struct {
1056- name string
1057- req * pb.GetLatestObservationRequest
1058- expectedFraction float32
1056+ name string
1057+ req * pb.GetLatestObservationsRequest
1058+ expectedFractions [] float32
10591059 }{
10601060 {
1061- name : "Should get latest observation " ,
1062- req : & pb.GetLatestObservationRequest {
1063- LocationUuid : siteResp .LocationUuid ,
1064- EnergySource : pb .EnergySource_ENERGY_SOURCE_SOLAR ,
1065- ObserverName : obsResp .ObserverName ,
1061+ name : "Should get latest observations " ,
1062+ req : & pb.GetLatestObservationsRequest {
1063+ LocationUuids : [] string { siteResp .LocationUuid } ,
1064+ EnergySource : pb .EnergySource_ENERGY_SOURCE_SOLAR ,
1065+ ObserverName : obsResp .ObserverName ,
10661066 },
1067- expectedFraction : 0.5 ,
1067+ expectedFractions : [] float32 { 0.5 } ,
10681068 },
10691069 {
10701070 name : "Should get earlier observation before cutoff" ,
1071- req : & pb.GetLatestObservationRequest {
1072- LocationUuid : siteResp .LocationUuid ,
1071+ req : & pb.GetLatestObservationsRequest {
1072+ LocationUuids : [] string { siteResp .LocationUuid } ,
10731073 EnergySource : pb .EnergySource_ENERGY_SOURCE_SOLAR ,
10741074 ObserverName : obsResp .ObserverName ,
10751075 PivotTimestampUtc : timestamppb .New (pivotTime .Add (- time .Hour * 1 ).Add (- time .Second )),
10761076 },
1077- expectedFraction : 0.3 ,
1077+ expectedFractions : [] float32 { 0.3 } ,
10781078 },
10791079 {
1080- name : "Shouldn't fetch for non-existent observer" ,
1081- req : & pb.GetLatestObservationRequest {
1082- LocationUuid : siteResp .LocationUuid ,
1083- EnergySource : pb .EnergySource_ENERGY_SOURCE_SOLAR ,
1084- ObserverName : "non_existent_observer" ,
1080+ name : "Should fetch no rows for non-existent observer" ,
1081+ req : & pb.GetLatestObservationsRequest {
1082+ LocationUuids : [] string { siteResp .LocationUuid } ,
1083+ EnergySource : pb .EnergySource_ENERGY_SOURCE_SOLAR ,
1084+ ObserverName : "non_existent_observer" ,
10851085 },
10861086 },
10871087 {
1088- name : "Shouldn't fetch for non-existent location" ,
1089- req : & pb.GetLatestObservationRequest {
1090- LocationUuid : "non_existent_location" ,
1091- EnergySource : pb .EnergySource_ENERGY_SOURCE_SOLAR ,
1092- ObserverName : obsResp .ObserverName ,
1088+ name : "Should fetch no rows for non-existent location" ,
1089+ req : & pb.GetLatestObservationsRequest {
1090+ LocationUuids : [] string { uuid . New (). String ()} ,
1091+ EnergySource : pb .EnergySource_ENERGY_SOURCE_SOLAR ,
1092+ ObserverName : obsResp .ObserverName ,
10931093 },
10941094 },
10951095 }
10961096
10971097 for _ , tc := range testcases {
10981098 t .Run (tc .name , func (t * testing.T ) {
1099- resp , err := dc .GetLatestObservation (t .Context (), tc .req )
1099+ resp , err := dc .GetLatestObservations (t .Context (), tc .req )
11001100 if strings .Contains (tc .name , "Shouldn't" ) {
11011101 require .Error (t , err )
11021102 } else {
11031103 require .NoError (t , err )
11041104 require .NotNil (t , resp )
1105- require .Equal (t , tc .expectedFraction , resp .ValueFraction )
1105+
1106+ for i , obs := range resp .Observations {
1107+ t .Log (obs )
1108+ require .Equal (t , tc .expectedFractions [i ], obs .ValueFraction )
1109+ }
11061110 }
11071111 })
11081112 }
0 commit comments