/* * Copyright (C) 2026 Mateusz GruszczyƄski @linuxiarz.pl * Source-Available Code / Dual-Licensed. * * Free for non-commercial and evaluation use under terms of BSL/GPLv3. * Commercial or production use requires a valid paid license. * See LICENSE file in repository root for details. */ use super::*; #[test] fn boolean_projections_are_normalized_for_sqlx_any() { // MySQL BOOLEAN is TINYINT(1), which sqlx::Any 0.8 cannot map directly. for (query, expected_casts) in [ (Query::RESOURCE_EDITOR_SETTINGS_SELECT, 1), (Query::EDITOR_PREFERENCES_SELECT_PAD, 4), (Query::EDITOR_PREFERENCES_SELECT_NOTE, 4), (Query::AUTH_USER_BY_EXTERNAL_ID, 1), (Query::AUTH_USER_BY_SESSION, 1), (Query::AUTH_USER_BY_NICKNAME, 1), (Query::AUTH_USER_BY_EMAIL, 1), (Query::AUTH_USER_BY_SHARE_IDENTIFIER, 1), (Query::USER_LIST_WORKSPACES, 6), (Query::USER_LIST_PADS, 6), (Query::PAD_PUBLIC_PAGE_DISABLED, 1), (Query::NOTE_PUBLIC_PAGE_DISABLED, 1), (Query::Q001, 1), (Query::Q003, 1), (Query::Q004, 1), (Query::Q011, 1), (Query::Q021, 1), (Query::Q033, 1), (Query::Q036, 1), (Query::Q038, 1), (Query::Q046, 1), (Query::Q044, 1), (Query::Q045, 1), (Query::Q048, 1), (Query::Q049, 1), ] { let sql = get(query); assert_eq!( sql.matches("AS SIGNED").count(), expected_casts, "MySQL boolean projection is not normalized in {query:?}: {sql}" ); } }