chore: Significantly restructure folder layout
This moves the various projects from "type-based" folders (such as "services" or "tools") into more appropriate semantic folders (such as "nix", "ops" or "web"). Deprecated projects (nixcon-demo & gotest) which only existed for testing/demonstration purposes have been removed. (Note: *all* builds are broken with this commit)
This commit is contained in:
parent
e52eed3cd4
commit
03bfe08e1d
110 changed files with 1 additions and 998 deletions
95
ops/journaldriver/src/tests.rs
Normal file
95
ops/journaldriver/src/tests.rs
Normal file
|
|
@ -0,0 +1,95 @@
|
|||
use super::*;
|
||||
use serde_json::to_string;
|
||||
|
||||
#[test]
|
||||
fn test_text_entry_serialization() {
|
||||
let entry = LogEntry {
|
||||
labels: Value::Null,
|
||||
timestamp: None,
|
||||
payload: Payload::TextPayload {
|
||||
text_payload: "test entry".into(),
|
||||
},
|
||||
severity: None,
|
||||
};
|
||||
|
||||
let expected = "{\"labels\":null,\"textPayload\":\"test entry\"}";
|
||||
let result = to_string(&entry).expect("serialization failed");
|
||||
|
||||
assert_eq!(expected, result, "Plain text payload should serialize correctly")
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_json_entry_serialization() {
|
||||
let entry = LogEntry {
|
||||
labels: Value::Null,
|
||||
timestamp: None,
|
||||
payload: Payload::JsonPayload {
|
||||
json_payload: json!({
|
||||
"message": "JSON test"
|
||||
})
|
||||
},
|
||||
severity: None,
|
||||
};
|
||||
|
||||
let expected = "{\"labels\":null,\"jsonPayload\":{\"message\":\"JSON test\"}}";
|
||||
let result = to_string(&entry).expect("serialization failed");
|
||||
|
||||
assert_eq!(expected, result, "JSOn payload should serialize correctly")
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_plain_text_payload() {
|
||||
let message = "plain text payload".into();
|
||||
let payload = message_to_payload(Some(message));
|
||||
let expected = Payload::TextPayload {
|
||||
text_payload: "plain text payload".into(),
|
||||
};
|
||||
|
||||
assert_eq!(expected, payload, "Plain text payload should be detected correctly");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_empty_payload() {
|
||||
let payload = message_to_payload(None);
|
||||
let expected = Payload::TextPayload {
|
||||
text_payload: "empty log entry".into(),
|
||||
};
|
||||
|
||||
assert_eq!(expected, payload, "Empty payload should be handled correctly");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_json_payload() {
|
||||
let message = "{\"someKey\":\"someValue\", \"otherKey\": 42}".into();
|
||||
let payload = message_to_payload(Some(message));
|
||||
let expected = Payload::JsonPayload {
|
||||
json_payload: json!({
|
||||
"someKey": "someValue",
|
||||
"otherKey": 42
|
||||
})
|
||||
};
|
||||
|
||||
assert_eq!(expected, payload, "JSON payload should be detected correctly");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_json_no_object() {
|
||||
// This message can be parsed as valid JSON, but it is not an
|
||||
// object - it should be returned as a plain-text payload.
|
||||
let message = "42".into();
|
||||
let payload = message_to_payload(Some(message));
|
||||
let expected = Payload::TextPayload {
|
||||
text_payload: "42".into(),
|
||||
};
|
||||
|
||||
assert_eq!(expected, payload, "Non-object JSON payload should be plain text");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_parse_microseconds() {
|
||||
let input: String = "1529175149291187".into();
|
||||
let expected: DateTime<Utc> = "2018-06-16T18:52:29.291187Z"
|
||||
.to_string().parse().unwrap();
|
||||
|
||||
assert_eq!(Some(expected), parse_microseconds(input));
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue