forked from diesel-rs/diesel
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdatabase_reset.rs
More file actions
64 lines (51 loc) · 1.9 KB
/
Copy pathdatabase_reset.rs
File metadata and controls
64 lines (51 loc) · 1.9 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
use support::{database, project};
#[test]
fn reset_drops_the_database() {
let p = project("reset_drops_the_database")
.folder("migrations")
.build();
let db = database(&p.database_url()).create();
db.execute("CREATE TABLE posts ( id INTEGER )");
assert!(db.table_exists("posts"));
let result = p.command("database")
.arg("reset")
.run();
assert!(result.is_success(), "Result was unsuccessful {:?}", result);
assert!(!db.table_exists("posts"));
}
#[test]
fn reset_runs_database_setup() {
let p = project("reset_runs_database_setup")
.folder("migrations")
.build();
let db = database(&p.database_url()).create();
db.execute("CREATE TABLE posts ( id INTEGER )");
db.execute("CREATE TABLE users ( id INTEGER )");
p.create_migration("12345_create_users_table",
"CREATE TABLE users ( id INTEGER )",
"DROP TABLE users");
assert!(db.table_exists("posts"));
assert!(db.table_exists("users"));
let result = p.command("database")
.arg("reset")
.run();
assert!(result.is_success(), "Result was unsuccessful {:?}", result);
assert!(!db.table_exists("posts"));
assert!(db.table_exists("users"));
assert!(db.table_exists("__diesel_schema_migrations"));
}
#[test]
#[cfg(feature = "postgres")]
fn reset_handles_postgres_urls_with_username_and_password() {
let p = project("handles_postgres_urls")
.folder("migrations")
.build();
let db = database(&p.database_url()).create();
db.execute("DROP ROLE IF EXISTS foo");
db.execute("CREATE ROLE foo WITH LOGIN SUPERUSER PASSWORD 'password'");
let result = p.command("database")
.arg("reset")
.env("DATABASE_URL", &format!("postgres://foo:password@localhost/{}", p.name))
.run();
assert!(result.is_success(), "Result was unsuccessful {:?}", result.stdout());
}