diff --git a/Cargo.toml b/Cargo.toml
index d404bc02..eb602e1b 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -52,6 +52,7 @@ strum = { git = "https://github.com/SeaQL/strum.git", branch = "sea-orm", versio
"sea-orm",
] }
serde_json = { version = "^1", optional = true }
+uuid = { version = "0.8", features = ["serde", "v4"] }
[dev-dependencies]
async-std = { version = "^1.9", features = ["attributes"] }
diff --git a/tests/common/bakery_chain/bakery_chain_erd.drawio b/tests/common/bakery_chain/bakery_chain_erd.drawio
index 10084d0a..32ff22d6 100644
--- a/tests/common/bakery_chain/bakery_chain_erd.drawio
+++ b/tests/common/bakery_chain/bakery_chain_erd.drawio
@@ -1 +1 @@
-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
\ No newline at end of file
+7Zxfc5s4EMA/jWfuHprhP/gxdpJr75K7TtJO26eOArKtCyAfyLXdT3+rIIyNRGIHA3czmslkrLUQQr9dsbusGdnTZPNbhpaLOxrheGQZ0WZkX40sa+x48J8LtoXADAy7kMwzEglZJXggP7EQGkK6IhHODzoySmNGlofCkKYpDtmBDGUZXR92m9H48KxLNMeS4CFEsSz9QiK2KKSBa1Ty95jMF+WZTUN8k6CysxDkCxTR9YEIb9gNTZmY4kecJSjFKYNv7lD2hLORe71gjF/p5ci6gb8Z730xp3QeY7Qk+UVIExCHOXS5maGExHyd9waaiIHgdPb1yJ5mlLLiU7KZ4pizKjEUc7pp+Ha3Dhkf94gDniab/NuTE/4+SYPxl8W7p8X273dilB8oXon1nVz+cX3/DWTT95cf/hQrxbbl8jNYopE9WbAkBoEJH3OW0Sc8pTHNQJLSFHpOZiSOayIUk3kKzRDmCwtgT37gjBEAeym+SEgU8dNM1gvC8MMShfyca1BjkGV0lUaYX4rBh4dlF6ppW2VbTLK8JBgdbxrXytwRAEvBNMEs20IXcYDlCIUQVvJu7AnButI52xeyxZ6+lXqIhA7Nd2NXaOCDoHMKKVdGhUCTthKifE2SGBUY9taFr1u4IHF0i7Z0xaebMxQ+la3JgmbkJ/RHFViUlatseQc9HviRYswM59DnY7m2Zk10hzYHHW9RzsrZ0DhGy5w8Cm72JEHZnKQTyhiYUdFJUps99qYD7TPgtu0a7kCB23QUuC3D64q3J/Hm/WHfMT7ASsyLPURlm8caZA4WRtL5LZ7xi3Eqyb24Pi6isLCz+HmbXIB94vTZFhli6HGnVUtKxJ7pTuAPlmlqXLgjF+Y0hbZZteGPd8/YlKYwTUSe+WBQiTXmanEA1zoW7gv2IiMXiC3vOMB2Z/bsS3xTlOCC8APLgIMG3AKwOzjgQAL8yDfsXGNtgTUYGmtgSVhpFmms7bCa5tBczbHENQRz1VhbYXWGxhrIt9llRmeEfS98zeJ+exNTxDTpNqT9oUlbilgWPSncZB0fnRofuf4x8ZGpoL3bAM6PW74P6/joBHtuQv5CfKQC3J052zo+6hKwKj7qF7Cjjo+I9rlagVVFSP2ClTOV2pNuS1UZIPWLVU5ITgGrdq/au1f19LMbKNwrVwHb8jpzr+S4SbtXp5izd7J7pQLcnTXL2UntXp0RsMq96hWwJ+ezlhkJBeE7QCQ/OdSAjwescrN6BezLO/Sj+oGwxno8VqWf1SvXcmD93OisXFWZ6H7tVU5YxQTAwGEMJ5puK7qq7HOvdAM5OprHK4bT77MMi5vuhNIYo1STbuM4G0OTHsuJyRxnhMetle/8y+fPH65+1aTbkLaHJu3Id2KJKI7muExx4PiRrq8rgbRWe1WTOI0ueTUsNK/vE5Ruy4yHJIVFzLZfd4dB4xunCrhE86rMcBStrWgVU+Xza8QiRDldZSF+iZTI6MH85vglpAUKGek+QkOBcCfMcIwY+XE4ZRVYcY6PXLGrTIpjuRdirmUuxTFq6lFcrTiw0hBpLFcey62PVSyINBYwRNu9bsL8Gqftl/XHuxOND2p54UMxZKXLu8Vtod6yQ9Kfepc7HJfdED7xcyttWX/1qtIWDyKGU1rbM+qK5tf3tGOV1pHHCupjNSjt2dRKvj/+xQukJN3SieIG5W5MFJtebZ/wyicA+7pqKXS1uzrlQL5J6kTxCV5QYS4nJYpVgLtzghoe0+o0UxusqvRwv1gVD2lXOWxn2l5bgVWlhXsF68v2yigro1Od928LWJkg7td05VSTTiSei64qTdwr3UDx3C5GIY6+I1bY8BVi+BNJ5MoLDfoE0KqMca+gPdlxvq3MWEdLraMl6VedtqqsRhnZ+11FS55cpK6jpROs2mtIML4QLakAd+d9yffmUFUkp6EeD1UVK/UK1ZMTpbqU5oyAVTFTv4DllOU/K5QywrZ6bz4XZWXg1O/mLN98aZGZhpnZZvX8QRN+G2FV8NSvIcvJj2lTVks71K0dauXjB6VD3dnPAD05j6kd6lNMuuHh53/GoZb56jr1MwIe3rmWIyb9Po3WWAd3qQPFz3cpw8Wb84xPHKXm+3a+wzvTnvwDIonoOauH8Iawr4IY/7xXBAetqgaONzoogSu3qVeriZyG92T0Vk0U1Jw0e/zWWqL6SE59pI4ricq3TvStYuYJKrarztw1eq/OdI5VTb/BvdeqebpqDrT7/c9Us3yp1uuq6Q+smvU33DhvrsCsj+T2XH8ZyFmublXzjWo28A29fI/f6zf0gcuDrfpe57+1ol1Wzfrbis9Uz25KiaLDd1N3U88+PlXxnxP89890aNrCAs6olf6xWuk3/Himtw2z/oZsu65LR2tlfSTnSK18XW+gWb1fvehevRTfvv4X
\ No newline at end of file
diff --git a/tests/common/bakery_chain/bakery_chain_erd.jpg b/tests/common/bakery_chain/bakery_chain_erd.jpg
index f44da9aa..8bf98b10 100644
Binary files a/tests/common/bakery_chain/bakery_chain_erd.jpg and b/tests/common/bakery_chain/bakery_chain_erd.jpg differ
diff --git a/tests/common/bakery_chain/cake.rs b/tests/common/bakery_chain/cake.rs
index 1e134de5..efc55fe6 100644
--- a/tests/common/bakery_chain/cake.rs
+++ b/tests/common/bakery_chain/cake.rs
@@ -17,6 +17,7 @@ pub struct Model {
pub price: Decimal,
pub bakery_id: Option,
pub gluten_free: bool,
+ pub serial: String,
}
#[derive(Copy, Clone, Debug, EnumIter, DeriveColumn)]
@@ -26,6 +27,7 @@ pub enum Column {
Price,
BakeryId,
GlutenFree,
+ Serial,
}
#[derive(Copy, Clone, Debug, EnumIter, DerivePrimaryKey)]
@@ -55,6 +57,7 @@ impl ColumnTrait for Column {
Self::Price => ColumnType::Decimal(Some((19, 4))).def(),
Self::BakeryId => ColumnType::Integer.def(),
Self::GlutenFree => ColumnType::Boolean.def(),
+ Self::Serial => ColumnType::String(None).def(),
}
}
}
diff --git a/tests/common/setup/schema.rs b/tests/common/setup/schema.rs
index ed122566..f98caf61 100644
--- a/tests/common/setup/schema.rs
+++ b/tests/common/setup/schema.rs
@@ -205,6 +205,7 @@ pub async fn create_cake_table(db: &DbConn) -> Result {
.on_update(ForeignKeyAction::Cascade),
)
.col(ColumnDef::new(cake::Column::GlutenFree).boolean())
+ .col(ColumnDef::new(cake::Column::Serial).string())
.to_owned();
create_table(db, &stmt).await
diff --git a/tests/crud/create_cake.rs b/tests/crud/create_cake.rs
index 675b9c14..91491560 100644
--- a/tests/crud/create_cake.rs
+++ b/tests/crud/create_cake.rs
@@ -1,5 +1,6 @@
pub use super::*;
use rust_decimal_macros::dec;
+use uuid::Uuid;
pub async fn test_create_cake(db: &DbConn) {
let seaside_bakery = bakery::ActiveModel {
@@ -21,11 +22,13 @@ pub async fn test_create_cake(db: &DbConn) {
.exec(db)
.await
.expect("could not insert baker");
+ let uuid = Uuid::new_v4();
let mud_cake = cake::ActiveModel {
name: Set("Mud Cake".to_owned()),
price: Set(dec!(10.25)),
gluten_free: Set(false),
+ serial: Set(uuid.to_string()),
bakery_id: Set(Some(bakery_insert_res.last_insert_id as i32)),
..Default::default()
};
@@ -65,6 +68,7 @@ pub async fn test_create_cake(db: &DbConn) {
.name,
"SeaSide Bakery"
);
+ assert_eq!(cake_model.serial, uuid.to_string());
let related_bakers: Vec = cake_model
.find_related(Baker)
diff --git a/tests/crud/create_lineitem.rs b/tests/crud/create_lineitem.rs
index b4d9fc7e..61c79a65 100644
--- a/tests/crud/create_lineitem.rs
+++ b/tests/crud/create_lineitem.rs
@@ -1,6 +1,7 @@
pub use super::*;
use chrono::offset::Utc;
use rust_decimal_macros::dec;
+use uuid::Uuid;
pub async fn test_create_lineitem(db: &DbConn) {
// Bakery
@@ -30,6 +31,7 @@ pub async fn test_create_lineitem(db: &DbConn) {
name: Set("Mud Cake".to_owned()),
price: Set(dec!(10.25)),
gluten_free: Set(false),
+ serial: Set(Uuid::new_v4().to_string()),
bakery_id: Set(Some(bakery_insert_res.last_insert_id as i32)),
..Default::default()
};
diff --git a/tests/crud/create_order.rs b/tests/crud/create_order.rs
index 84896d43..487c51f9 100644
--- a/tests/crud/create_order.rs
+++ b/tests/crud/create_order.rs
@@ -1,6 +1,7 @@
pub use super::*;
use chrono::offset::Utc;
use rust_decimal_macros::dec;
+use uuid::Uuid;
pub async fn test_create_order(db: &DbConn) {
// Bakery
@@ -30,6 +31,7 @@ pub async fn test_create_order(db: &DbConn) {
name: Set("Mud Cake".to_owned()),
price: Set(dec!(10.25)),
gluten_free: Set(false),
+ serial: Set(Uuid::new_v4().to_string()),
bakery_id: Set(Some(bakery_insert_res.last_insert_id as i32)),
..Default::default()
};
diff --git a/tests/crud/deletes.rs b/tests/crud/deletes.rs
index 08ccada5..d0bf3277 100644
--- a/tests/crud/deletes.rs
+++ b/tests/crud/deletes.rs
@@ -1,5 +1,6 @@
pub use super::*;
use rust_decimal_macros::dec;
+use uuid::Uuid;
pub async fn test_delete_cake(db: &DbConn) {
let initial_cakes = Cake::find().all(db).await.unwrap().len();
@@ -18,6 +19,7 @@ pub async fn test_delete_cake(db: &DbConn) {
name: Set("Mud Cake".to_owned()),
price: Set(dec!(10.25)),
gluten_free: Set(false),
+ serial: Set(Uuid::new_v4().to_string()),
bakery_id: Set(Some(bakery_insert_res.last_insert_id as i32)),
..Default::default()
};
diff --git a/tests/crud/updates.rs b/tests/crud/updates.rs
index 5c78f3ec..497f9982 100644
--- a/tests/crud/updates.rs
+++ b/tests/crud/updates.rs
@@ -1,5 +1,6 @@
pub use super::*;
use rust_decimal_macros::dec;
+use uuid::Uuid;
pub async fn test_update_cake(db: &DbConn) {
let seaside_bakery = bakery::ActiveModel {
@@ -16,6 +17,7 @@ pub async fn test_update_cake(db: &DbConn) {
name: Set("Mud Cake".to_owned()),
price: Set(dec!(10.25)),
gluten_free: Set(false),
+ serial: Set(Uuid::new_v4().to_string()),
bakery_id: Set(Some(bakery_insert_res.last_insert_id as i32)),
..Default::default()
};