lemon_bugsnag_rs 0.1.2

A library for interacting with the BugSnag error-reporting and sessions APIs.
Documentation
use serde::Serialize;

use super::{events::Event, notifier::Notifier};

#[derive(Clone, Debug, Serialize)]
#[serde(rename_all = "camelCase")]
pub(crate) struct Payload {
    pub api_key: Option<String>,
    pub payload_version: String,
    pub notifier: Notifier,
    pub events: Vec<Event>,
}

#[cfg(test)]
mod error_payload {
    use crate::test::test_error_utility::get_error_client_builder;

    #[test]
    pub fn payload_version() {
        std::env::set_var("NAB_BUGSNAG_RS_API_KEY", "");
        let mut client_builder = get_error_client_builder();

        let default_payload_version = "5".to_string();

        assert_eq!(default_payload_version, client_builder.payload_version());

        let test_payload_version = "1.0".to_string();
        client_builder.set_payload_version(test_payload_version.as_str());

        assert_eq!(test_payload_version, client_builder.payload_version());
    }

    #[test]
    pub fn api_key() {
        std::env::set_var("NAB_BUGSNAG_RS_API_KEY", "");
        let mut client_builder = get_error_client_builder();

        let test_api_key = "b2d4f6h8".to_string();
        client_builder.set_api_key(test_api_key.as_str());

        assert_eq!(test_api_key, client_builder.api_key().unwrap());

        client_builder.set_api_key(None);

        assert!(client_builder.api_key().is_none());
    }
}