File tree 1 file changed +36
-0
lines changed
packages/tracker-core/src/databases
1 file changed +36
-0
lines changed Original file line number Diff line number Diff line change @@ -102,3 +102,39 @@ impl From<(r2d2::Error, Driver)> for Error {
102
102
}
103
103
}
104
104
}
105
+
106
+ #[ cfg( test) ]
107
+ mod tests {
108
+ use r2d2_mysql:: mysql;
109
+
110
+ use crate :: databases:: error:: Error ;
111
+
112
+ #[ test]
113
+ fn it_should_build_a_database_error_from_a_rusqlite_error ( ) {
114
+ let err: Error = r2d2_sqlite:: rusqlite:: Error :: InvalidQuery . into ( ) ;
115
+
116
+ assert ! ( matches!( err, Error :: InvalidQuery { .. } ) ) ;
117
+ }
118
+
119
+ #[ test]
120
+ fn it_should_build_an_specific_database_error_from_a_no_rows_returned_rusqlite_error ( ) {
121
+ let err: Error = r2d2_sqlite:: rusqlite:: Error :: QueryReturnedNoRows . into ( ) ;
122
+
123
+ assert ! ( matches!( err, Error :: QueryReturnedNoRows { .. } ) ) ;
124
+ }
125
+
126
+ #[ test]
127
+ fn it_should_build_a_database_error_from_a_mysql_error ( ) {
128
+ let url_err = mysql:: error:: UrlError :: BadUrl ;
129
+ let err: Error = r2d2_mysql:: mysql:: Error :: UrlError ( url_err) . into ( ) ;
130
+
131
+ assert ! ( matches!( err, Error :: InvalidQuery { .. } ) ) ;
132
+ }
133
+
134
+ #[ test]
135
+ fn it_should_build_a_database_error_from_a_mysql_url_error ( ) {
136
+ let err: Error = mysql:: error:: UrlError :: BadUrl . into ( ) ;
137
+
138
+ assert ! ( matches!( err, Error :: ConnectionError { .. } ) ) ;
139
+ }
140
+ }
You can’t perform that action at this time.
0 commit comments