update grid4 & heroledger models
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
use heromodels::db::Collection;
|
||||
use heromodels::db::Db;
|
||||
use heromodels::db::hero::OurDB;
|
||||
use heromodels::models::biz::{BusinessType, Company, CompanyStatus, Payment, PaymentStatus};
|
||||
use heromodels_core::Model;
|
||||
@@ -197,12 +198,18 @@ fn test_payment_database_persistence() {
|
||||
);
|
||||
|
||||
// Save payment
|
||||
let (payment_id, saved_payment) = db.set(&payment).expect("Failed to save payment");
|
||||
let (payment_id, saved_payment) = db
|
||||
.collection::<Payment>()
|
||||
.expect("open payment collection")
|
||||
.set(&payment)
|
||||
.expect("Failed to save payment");
|
||||
assert!(payment_id > 0);
|
||||
assert_eq!(saved_payment.payment_intent_id, "pi_db_test");
|
||||
|
||||
// Retrieve payment
|
||||
let retrieved_payment: Payment = db
|
||||
.collection::<Payment>()
|
||||
.expect("open payment collection")
|
||||
.get_by_id(payment_id)
|
||||
.expect("Failed to get payment")
|
||||
.unwrap();
|
||||
@@ -224,20 +231,34 @@ fn test_payment_status_transitions() {
|
||||
1360.0,
|
||||
);
|
||||
|
||||
let (payment_id, mut payment) = db.set(&payment).expect("Failed to save payment");
|
||||
let (payment_id, mut payment) = db
|
||||
.collection::<Payment>()
|
||||
.expect("open payment collection")
|
||||
.set(&payment)
|
||||
.expect("Failed to save payment");
|
||||
|
||||
// Test pending -> completed
|
||||
payment = payment.complete_payment(Some("cus_transition_test".to_string()));
|
||||
let (_, mut payment) = db.set(&payment).expect("Failed to update payment");
|
||||
let (_, mut payment) = db
|
||||
.collection::<Payment>()
|
||||
.expect("open payment collection")
|
||||
.set(&payment)
|
||||
.expect("Failed to update payment");
|
||||
assert!(payment.is_completed());
|
||||
|
||||
// Test completed -> refunded
|
||||
payment = payment.refund_payment();
|
||||
let (_, payment) = db.set(&payment).expect("Failed to update payment");
|
||||
let (_, payment) = db
|
||||
.collection::<Payment>()
|
||||
.expect("open payment collection")
|
||||
.set(&payment)
|
||||
.expect("Failed to update payment");
|
||||
assert!(payment.is_refunded());
|
||||
|
||||
// Verify final state in database
|
||||
let final_payment: Payment = db
|
||||
.collection::<Payment>()
|
||||
.expect("open payment collection")
|
||||
.get_by_id(payment_id)
|
||||
.expect("Failed to get payment")
|
||||
.unwrap();
|
||||
@@ -270,15 +291,18 @@ fn test_company_payment_integration() {
|
||||
let db = create_test_db();
|
||||
|
||||
// Create company with default PendingPayment status
|
||||
let company = Company::new(
|
||||
"Integration Test Corp".to_string(),
|
||||
"ITC-001".to_string(),
|
||||
chrono::Utc::now().timestamp(),
|
||||
)
|
||||
.email("test@integration.com".to_string())
|
||||
.business_type(BusinessType::Starter);
|
||||
let company = Company::new()
|
||||
.name("Integration Test Corp")
|
||||
.registration_number("ITC-001")
|
||||
.incorporation_date(chrono::Utc::now().timestamp())
|
||||
.email("test@integration.com")
|
||||
.business_type(BusinessType::Starter);
|
||||
|
||||
let (company_id, company) = db.set(&company).expect("Failed to save company");
|
||||
let (company_id, company) = db
|
||||
.collection::<Company>()
|
||||
.expect("open company collection")
|
||||
.set(&company)
|
||||
.expect("Failed to save company");
|
||||
assert_eq!(company.status, CompanyStatus::PendingPayment);
|
||||
|
||||
// Create payment for the company
|
||||
@@ -291,18 +315,28 @@ fn test_company_payment_integration() {
|
||||
305.0,
|
||||
);
|
||||
|
||||
let (_payment_id, payment) = db.set(&payment).expect("Failed to save payment");
|
||||
let (_payment_id, payment) = db
|
||||
.collection::<Payment>()
|
||||
.expect("open payment collection")
|
||||
.set(&payment)
|
||||
.expect("Failed to save payment");
|
||||
assert_eq!(payment.company_id, company_id);
|
||||
|
||||
// Complete payment
|
||||
let completed_payment = payment.complete_payment(Some("cus_integration_test".to_string()));
|
||||
let (_, completed_payment) = db
|
||||
.collection::<Payment>()
|
||||
.expect("open payment collection")
|
||||
.set(&completed_payment)
|
||||
.expect("Failed to update payment");
|
||||
|
||||
// Update company status to Active
|
||||
let active_company = company.status(CompanyStatus::Active);
|
||||
let (_, active_company) = db.set(&active_company).expect("Failed to update company");
|
||||
let (_, active_company) = db
|
||||
.collection::<Company>()
|
||||
.expect("open company collection")
|
||||
.set(&active_company)
|
||||
.expect("Failed to update company");
|
||||
|
||||
// Verify final states
|
||||
assert!(completed_payment.is_completed());
|
||||
|
Reference in New Issue
Block a user