browserslist/queries/
unreleased_x_browsers.rs

1use super::{Distrib, QueryResult};
2use crate::{error::Error, opts::Opts};
3use browserslist_data::caniuse::get_browser_stat;
4
5pub(super) fn unreleased_x_browsers(name: &str, opts: &Opts) -> QueryResult {
6    let (name, version_list) = get_browser_stat(name, opts.mobile_to_desktop)
7        .ok_or_else(|| Error::BrowserNotFound(name.to_string()))?;
8    let distribs = version_list
9        .iter()
10        .filter(|version| !version.released)
11        .map(|version| Distrib::new(name, version.version()))
12        .collect();
13    Ok(distribs)
14}
15
16#[cfg(test)]
17mod tests {
18    use super::*;
19    use crate::test::run_compare;
20    use test_case::test_case;
21
22    #[test_case("unreleased edge versions"; "basic")]
23    #[test_case("Unreleased Chrome Versions"; "case insensitive")]
24    #[test_case("unreleased firefox version"; "support pluralization")]
25    #[test_case("unreleased    safari     versions"; "more spaces")]
26    fn valid(query: &str) {
27        run_compare(query, &Opts::default(), None);
28    }
29}