diff --git a/src/ts_generator/types/ts_query.rs b/src/ts_generator/types/ts_query.rs index b31797be..2257e9c4 100644 --- a/src/ts_generator/types/ts_query.rs +++ b/src/ts_generator/types/ts_query.rs @@ -112,7 +112,7 @@ impl TsFieldType { ) -> Self { match mysql_field_type.as_str() { "bigint" | "decimal" | "double" | "float" | "int" | "mediumint" | "smallint" | "year" => Self::Number, - "binary" | "bit" | "blob" | "char" | "text" | "varbinary" | "varchar" => Self::String, + "binary" | "bit" | "blob" | "char" | "text" | "varbinary" | "varchar" | "set" => Self::String, "tinyint" => Self::Boolean, "date" | "datetime" | "timestamp" => Self::Date, "enum" => { diff --git a/tests/mysql_sets.rs b/tests/mysql_sets.rs new file mode 100644 index 00000000..d4c0c611 --- /dev/null +++ b/tests/mysql_sets.rs @@ -0,0 +1,67 @@ +#[cfg(test)] +mod sets { + use assert_cmd::prelude::*; + use pretty_assertions::assert_eq; + use std::env; + use std::fs; + use std::io::Write; + use std::process::Command; + use tempfile::tempdir; + + use test_utils::test_utils::TSString; + use test_utils::{run_test, sandbox::TestConfig}; + + #[rustfmt::skip] +run_test!(should_generate_sets_for_mysql, TestConfig::new("mysql", true, None, None), + +//// TS query //// +r#" +const setQuery = sql` + SELECT + set1 + FROM + random +`; +"#, + +//// Generated TS interfaces //// +r#" +export type SetQueryParams = []; + +export interface ISetQueryResult { + set1: string | null; +} + +export interface ISetQueryQuery { + params: SetQueryParams; + result: ISetQueryResult; +} +"#); + + #[rustfmt::skip] +run_test!(should_generate_set_insert_params_for_mysql, TestConfig::new("mysql", true, None, None), + +//// TS query //// +r#" +const setQuery = sql` + INSERT INTO + random (set1) + VALUES + (?) +`; +"#, + +//// Generated TS interfaces //// +r#" +export type SetQueryParams = [[string | null]]; + +export interface ISetQueryResult { + +} + +export interface ISetQueryQuery { + params: SetQueryParams; + result: ISetQueryResult; +} +"#); +}