Settings are checked when they are set, not only when used.
6#[tokio::test(flavor = "multi_thread")] 7async fn jev_model_refuses_aliases_when_set() { 8 let mock = MockJev::start(|_| Reply::json(200, noul(0.5))).await; 9 let (_pg, client) = jev_instance(&mock).await; 10 11 for alias in ["jev-latest", "jev-preview", "jev-stable"] { 12 let err = client 13 .batch_execute(&format!("SET jev.model = '{alias}'")) 14 .await 15 .expect_err("an alias is refused"); 16 let db = err.as_db_error().expect("an ERROR"); 17 assert_eq!(db.code(), &tokio_postgres::error::SqlState::INVALID_PARAMETER_VALUE, "{alias}"); 18 assert!(db.message().contains("jev.model"), "{}", db.message()); 19 assert!(db.detail().unwrap_or_default().contains(alias), "{:?}", db.detail()); 20 } 21 client.batch_execute("SET jev.model = 'jev-1.14.0'").await.expect("a versioned id is accepted"); 22 let shown: String = client.query_one("SHOW jev.model", &[]).await.unwrap().get(0); 23 assert_eq!(shown, "jev-1.14.0"); 24}