mirror of
https://github.com/vlang/v.git
synced 2025-09-10 16:00:31 -04:00
52 lines
893 B
V
52 lines
893 B
V
// vtest flaky: true
|
|
// vtest retry: 3
|
|
import db.sqlite
|
|
|
|
struct User {
|
|
id int @[primary; sql: serial]
|
|
name string
|
|
}
|
|
|
|
fn get_users_in(mut db sqlite.DB, names []string) ![]User {
|
|
return sql db {
|
|
select from User where name in names
|
|
}!
|
|
}
|
|
|
|
fn get_users_not_in(mut db sqlite.DB, names []string) ![]User {
|
|
return sql db {
|
|
select from User where name !in names
|
|
}!
|
|
}
|
|
|
|
fn test_orm_mut_db() {
|
|
mut db := sqlite.connect(':memory:') or { panic(err) }
|
|
|
|
sql db {
|
|
create table User
|
|
}!
|
|
|
|
first_user := User{
|
|
name: 'first'
|
|
}
|
|
second_user := User{
|
|
name: 'second'
|
|
}
|
|
|
|
sql db {
|
|
insert first_user into User
|
|
insert second_user into User
|
|
}!
|
|
|
|
in_users := get_users_in(mut db, ['first'])!
|
|
|
|
assert in_users.len == 1
|
|
|
|
not_in_users := get_users_not_in(mut db, ['second'])!
|
|
|
|
assert not_in_users.len == 1
|
|
|
|
all_users := get_users_in(mut db, ['first', 'second'])!
|
|
assert all_users.len == 2
|
|
}
|