mirror of
https://github.com/elicpeter/nyx.git
synced 2026-06-21 20:18:06 +02:00
refactor(dynamic): enhance event recording across brokers, improve SQL migration handling for frameworks, update runtime dependency management, and add test coverage
This commit is contained in:
parent
9bf085ee48
commit
0903231189
9 changed files with 225 additions and 9 deletions
|
|
@ -79,6 +79,28 @@ fn make_spec(lang: Lang, queue: &str, handler: &str, fixture: &str) -> HarnessSp
|
|||
}
|
||||
}
|
||||
|
||||
fn make_spec_with_adapter(
|
||||
lang: Lang,
|
||||
queue: &str,
|
||||
handler: &str,
|
||||
fixture: &str,
|
||||
adapter: &str,
|
||||
) -> HarnessSpec {
|
||||
let mut spec = make_spec(lang, queue, handler, fixture);
|
||||
spec.framework = Some(FrameworkBinding {
|
||||
adapter: adapter.to_owned(),
|
||||
kind: EntryKind::MessageHandler {
|
||||
queue: queue.to_owned(),
|
||||
message_schema: None,
|
||||
},
|
||||
route: None,
|
||||
request_params: vec![],
|
||||
response_writer: None,
|
||||
middleware: vec![],
|
||||
});
|
||||
spec
|
||||
}
|
||||
|
||||
// ── Supported-set assertions ──────────────────────────────────────────────────
|
||||
|
||||
#[test]
|
||||
|
|
@ -205,6 +227,62 @@ fn message_handler_go_uses_nyx_handlers_registry() {
|
|||
assert!(h.source.contains("nyxRecordBrokerPublish"));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn message_handler_remaining_brokers_emit_delivery_and_ack_events() {
|
||||
let cases = [
|
||||
(
|
||||
Lang::Python,
|
||||
"pubsub_python",
|
||||
"projects/p/subscriptions/s",
|
||||
"callback",
|
||||
"pubsub-python",
|
||||
"NYX_PUBSUB_LOG",
|
||||
),
|
||||
(
|
||||
Lang::Python,
|
||||
"rabbit_python",
|
||||
"work",
|
||||
"on_message",
|
||||
"rabbit-python",
|
||||
"NYX_RABBIT_LOG",
|
||||
),
|
||||
(
|
||||
Lang::Java,
|
||||
"rabbit_java",
|
||||
"work",
|
||||
"onMessage",
|
||||
"rabbit-java",
|
||||
"NYX_RABBIT_LOG",
|
||||
),
|
||||
(
|
||||
Lang::Go,
|
||||
"nats_go",
|
||||
"events",
|
||||
"OnMessage",
|
||||
"nats-go",
|
||||
"NYX_NATS_LOG",
|
||||
),
|
||||
];
|
||||
for (lang, fixture, queue, handler, adapter, log_env) in cases {
|
||||
let spec = make_spec_with_adapter(lang, queue, handler, entry_file(fixture), adapter);
|
||||
let h = lang::emit(&spec).expect("emit ok");
|
||||
assert!(
|
||||
h.source.contains(log_env),
|
||||
"{adapter} harness must write the broker log env var",
|
||||
);
|
||||
assert!(
|
||||
h.source.contains("\"deliver\"") || h.source.contains("'deliver'"),
|
||||
"{adapter} harness must record delivery events: {}",
|
||||
h.source
|
||||
);
|
||||
assert!(
|
||||
h.source.contains("\"ack\"") || h.source.contains("'ack'"),
|
||||
"{adapter} harness must record ack events: {}",
|
||||
h.source
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
// ── Framework-adapter assertions ──────────────────────────────────────────────
|
||||
|
||||
fn ts_language_for(lang: Lang) -> tree_sitter::Language {
|
||||
|
|
|
|||
|
|
@ -909,6 +909,7 @@ fn migration_python_harness_carries_sentinel_and_handler() {
|
|||
assert!(h.source.contains("__NYX_MIGRATION__"));
|
||||
assert!(h.source.contains("\"upgrade\""));
|
||||
assert!(h.source.contains("__nyx_stub_sql_record"));
|
||||
assert!(h.source.contains("MigrationContext.configure"));
|
||||
assert!(h.source.contains("NYX_SQL_ENDPOINT"));
|
||||
}
|
||||
|
||||
|
|
@ -924,6 +925,8 @@ fn migration_js_harness_carries_sentinel_and_handler() {
|
|||
assert!(h.source.contains("__NYX_MIGRATION__"));
|
||||
assert!(h.source.contains("\"up\""));
|
||||
assert!(h.source.contains("__nyx_stub_sql_record"));
|
||||
assert!(h.source.contains("require('sequelize')"));
|
||||
assert!(h.source.contains("getQueryInterface"));
|
||||
assert!(h.source.contains("global.__nyx_prisma"));
|
||||
assert!(h.source.contains("node:sqlite"));
|
||||
assert!(h.source.contains("NYX_SQL_ENDPOINT"));
|
||||
|
|
@ -941,6 +944,7 @@ fn migration_ruby_harness_carries_sentinel_and_handler() {
|
|||
assert!(h.source.contains("__NYX_MIGRATION__"));
|
||||
assert!(h.source.contains("AddIndex"));
|
||||
assert!(h.source.contains("__nyx_stub_sql_record"));
|
||||
assert!(h.source.contains("ActiveRecord::Base.establish_connection"));
|
||||
assert!(h.source.contains("SQLite3::Database"));
|
||||
assert!(h.source.contains("NYX_SQL_ENDPOINT"));
|
||||
}
|
||||
|
|
@ -957,6 +961,7 @@ fn migration_php_harness_carries_sentinel_and_handler() {
|
|||
assert!(h.source.contains("__NYX_MIGRATION__"));
|
||||
assert!(h.source.contains("AddUsers"));
|
||||
assert!(h.source.contains("__nyx_stub_sql_record"));
|
||||
assert!(h.source.contains("vendor/autoload.php"));
|
||||
assert!(h.source.contains("new SQLite3"));
|
||||
assert!(h.source.contains("NYX_SQL_ENDPOINT"));
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue