use crate::tests::harness;
use harness::fixtures;
use harness::{
create_test_state, create_test_terminal, create_test_terminal_sized, postgres_connected_state,
render_and_get_buffer_at, render_to_string, test_instant,
};
use std::sync::Arc;
use sabiql_app::model::connection::error::ConnectionErrorInfo;
use sabiql_app::model::connection::setup::ConnectionField;
use sabiql_app::model::shared::focused_pane::FocusedPane;
use sabiql_app::model::shared::input_mode::InputMode;
use sabiql_app::model::shared::text_input::TextInputState;
use sabiql_app::model::sql_editor::completion::{CompletionCandidate, CompletionKind};
use sabiql_app::model::sql_editor::modal::{AdhocSuccessSnapshot, SqlModalTab};
use sabiql_app::policy::json::json_diff::compute_json_diff;
use sabiql_app::policy::write::write_guardrails::{
AdhocRiskDecision, ColumnDiff, GuardrailDecision, RiskLevel, TargetSummary, WriteOperation,
WritePreview,
};
use sabiql_app::ports::outbound::{ConnectionFailureKind, DbOperationError, DdlGenerator};
use sabiql_app::services::AppServices;
use sabiql_domain::{
ColumnAttributes, CommandTag, DatabaseType, FkAction, ForeignKey, Index, IndexAttributes,
IndexType, QuerySource, Table,
};
fn trim_line_endings(output: &str) -> String {
output
.lines()
.map(str::trim_end)
.collect::<Vec<_>>()
.join("\n")
}
mod confirm_dialogs;
mod connection_flow;
mod connection_management;
mod er_diagram;
mod initial_state;
mod inspector;
mod overlays;
mod result_pane;
mod style_assertions;
mod table_explorer;