on iko/quotes@origin help sign in
reshape/tests/remove_enum.rs
69 lines 1.3 kB history raw
1mod common;
2use common::Test;
4#[test]
5fn remove_enum() {
6 let mut test = Test::new("Remove enum");
8 test.first_migration(
9 r#"
10 name = "create_enum"
12 [[actions]]
13 type = "create_enum"
14 name = "mood"
15 values = ["happy", "ok", "sad"]
16 "#,
17 );
19 test.second_migration(
20 r#"
21 name = "remove_enum"
23 [[actions]]
24 type = "remove_enum"
25 enum = "mood"
26 "#,
27 );
29 test.after_first(|db| {
30 // Ensure enum was created
31 let enum_exists = !db
32 .query(
33 "
34 SELECT typname
35 FROM pg_catalog.pg_type
36 WHERE typcategory = 'E'
37 AND typname = 'mood'
38 ",
39 &[],
40 )
41 .unwrap()
42 .is_empty();
44 assert!(enum_exists, "expected mood enum to have been created");
45 });
47 test.after_completion(|db| {
48 // Ensure enum was removed after completion
49 let enum_does_not_exist = db
50 .query(
51 "
52 SELECT typname
53 FROM pg_catalog.pg_type
54 WHERE typcategory = 'E'
55 AND typname = 'mood'
56 ",
57 &[],
58 )
59 .unwrap()
60 .is_empty();
62 assert!(
63 enum_does_not_exist,
64 "expected mood enum to have been removed"
65 );
66 });
68 test.run();