huskies: merge 566_story_gateway_ui_bot_configuration_page

This commit is contained in:
dave
2026-04-15 14:07:04 +00:00
parent 70fecafd41
commit c28c86dbc6
+63
View File
@@ -1971,4 +1971,67 @@ enabled = false
let resp = cli.delete("/gateway/agents/no-such-id").send().await;
assert_eq!(resp.0.status(), StatusCode::NOT_FOUND);
}
// ── Bot configuration helper tests ──────────────────────────────────
#[test]
fn toml_string_plain() {
assert_eq!(toml_string("hello"), "\"hello\"");
}
#[test]
fn toml_string_escapes_quotes_and_backslashes() {
assert_eq!(toml_string(r#"say "hi""#), r#""say \"hi\"""#);
assert_eq!(toml_string(r"a\b"), r#""a\\b""#);
}
#[test]
fn write_and_read_matrix_bot_config_round_trips() {
let tmp = tempfile::tempdir().unwrap();
let payload = BotConfigPayload {
transport: "matrix".into(),
homeserver: Some("https://matrix.example.com".into()),
username: Some("@bot:example.com".into()),
password: Some("s3cr3t".into()),
slack_bot_token: None,
slack_signing_secret: None,
};
write_bot_config(tmp.path(), &payload).expect("write should succeed");
let read = read_bot_config_raw(tmp.path());
assert_eq!(read.transport, "matrix");
assert_eq!(
read.homeserver.as_deref(),
Some("https://matrix.example.com")
);
assert_eq!(read.username.as_deref(), Some("@bot:example.com"));
assert_eq!(read.password.as_deref(), Some("s3cr3t"));
}
#[test]
fn write_and_read_slack_bot_config_round_trips() {
let tmp = tempfile::tempdir().unwrap();
let payload = BotConfigPayload {
transport: "slack".into(),
homeserver: None,
username: None,
password: None,
slack_bot_token: Some("xoxb-abc123".into()),
slack_signing_secret: Some("sig-secret".into()),
};
write_bot_config(tmp.path(), &payload).expect("write should succeed");
let read = read_bot_config_raw(tmp.path());
assert_eq!(read.transport, "slack");
assert_eq!(read.slack_bot_token.as_deref(), Some("xoxb-abc123"));
assert_eq!(read.slack_signing_secret.as_deref(), Some("sig-secret"));
}
#[test]
fn read_bot_config_raw_returns_default_when_file_absent() {
let tmp = tempfile::tempdir().unwrap();
let read = read_bot_config_raw(tmp.path());
assert_eq!(read.transport, "");
assert!(read.homeserver.is_none());
}
}