(t: &DownlinkTest)
| 291 | } |
| 292 | |
| 293 | async fn run_scheduler_test(t: &DownlinkTest) { |
| 294 | println!("> {}", t.name); |
| 295 | |
| 296 | reset_redis().await.unwrap(); |
| 297 | |
| 298 | integration::set_mock().await; |
| 299 | gateway_backend::set_backend("eu868", Box::new(gateway_backend::mock::Backend {})).await; |
| 300 | |
| 301 | integration::mock::reset().await; |
| 302 | gateway_backend::mock::reset().await; |
| 303 | device_queue::flush_for_dev_eui(&t.dev_eui).await.unwrap(); |
| 304 | device::partial_update( |
| 305 | t.dev_eui, |
| 306 | &device::DeviceChangeset { |
| 307 | device_session: Some( |
| 308 | t.device_session |
| 309 | .as_ref() |
| 310 | .map(fields::DeviceSession::from) |
| 311 | .clone(), |
| 312 | ), |
| 313 | ..Default::default() |
| 314 | }, |
| 315 | ) |
| 316 | .await |
| 317 | .unwrap(); |
| 318 | |
| 319 | for qi in &t.device_queue_items { |
| 320 | let _ = device_queue::enqueue_item(qi.clone()).await.unwrap(); |
| 321 | } |
| 322 | |
| 323 | downlink::scheduler::schedule_device_queue_batch(1) |
| 324 | .await |
| 325 | .unwrap(); |
| 326 | |
| 327 | for assert in &t.assert { |
| 328 | assert().await; |
| 329 | } |
| 330 | } |
no test coverage detected