Initial Dever 0.0.1

This commit is contained in:
Codex committed 2026-11-03 03:32:07 +00:00
commit 81233d098c
1479 files changed
+163782

No files matched your search

@@ -0,0 +1,54 @@
use crate::database::{Binding, Kind, Sql, context::initialization_order};
fn binding(references: &'static [usize]) -> Binding {
Binding {
storage: crate::database::Storage::Global,
component: "demo",
database: None,
table: "unused",
schema: Sql::same(""),
plan: None,
references,
}
}
#[test]
fn postgres_dependencies_precede_children_without_changing_binding_indices() {
let bindings = [
binding(&[0, 1, 2, 2]),
binding(&[2]),
binding(&[]),
binding(&[]),
];
assert_eq!(
initialization_order(&bindings, &[true; 4]).unwrap(),
[2, 1, 0, 3]
);
}
#[test]
fn postgres_cycles_fail_before_initialization_but_self_references_are_valid() {
assert_eq!(
initialization_order(&[binding(&[1]), binding(&[0])], &[true, true])
.unwrap_err()
.kind,
Kind::Migration
);
assert_eq!(
initialization_order(&[binding(&[0])], &[true]).unwrap(),
[0]
);
}
#[test]
fn sqlite_keeps_source_order_and_accepts_forward_and_cyclic_references() {
assert_eq!(
initialization_order(&[binding(&[1]), binding(&[0])], &[false, false]).unwrap(),
[0, 1]
);
let bindings = [binding(&[2]), binding(&[3]), binding(&[]), binding(&[1])];
assert_eq!(
initialization_order(&bindings, &[true, false, true, false]).unwrap(),
[1, 2, 0, 3]
);
}